/*
  根据传入的类型返回正则表达式,如果类型不存在则返回空。
*/

function regex(type)
{
  /*验证是否数字     /^[4|1|2|3|5|6|7|8|9]\d+$/;  */ 
  if (type == 'int') return /^\d+$/;
  /*验证是否是大于0的整数*/
  
  if(type=='sum') return  /^[1|2|3|4|5|6|7|8|9]\d{0,10}$/; 

  /*email校验*/
  if (type == 'email') return /^\w+@\w+\.\w+/;

  /*15位身份证*/
  if (type == 'cert15') return /^\d{15}$/;

  /*18位身份证*/
  if (type == 'cert18') return /^\d{17}[0-9Xx]{1}$/;

  /* 只能输入ASCII字符(非空)*/
  if (type == 'ascii') return /^\w+$/;

  /* 日期校验 yyyy-mm-dd*/
  if (type == 'date(yyyy-mm-dd)') return /^\d{4}-[01]{1}\d{1}-[0123]{1}\d{1}$/;

  /* 日期校验 yyyy/mm/dd*/
  if (type == 'date(yyyy/mm/dd)') return /^\d{4}\/[01]{1}\d{1}\/[0123]{1}\d{1}$/;

  /* 浮点数精度定义*/
  if (type == 'float(2)') return /^\d+\.{0,1}\d{0,2}$/;

  /* 邮编 */
  if (type == 'postcode') return /^\d{6}$/;

  /* 移动电话 */
  if (type == 'mobphone') return /^[1][3][0|1|2|3|5|6|7|8|9]\d{8}$/;

  /* 固定电话 */
  if (type == 'phone') return /^[1|2|3|4|5|6|7|8|9]\d{6,7}$/;

  /* 电话地区号 */
  if (type == 'areacode') return /^[0][1|2|3|4|5|6|7|8|9]\d{1,2}$/;

  /* 日期校验 yyyy-mm*/
  if (type == 'billingcycl') return /^\d{4}-[01]{1}\d{1}$/;

  return '';
}
/*
    校验是否输入正确的业务号码
    v1 业务号码 v2 网别
*/
function validate(v1,v2){
  v2 = v2.trim();
  v1 = v1.trim();
    var pat = new Array();
    pat["A"] = /^[1][3][0|1|2|3]\d{8}$/;
    pat["P"] = /^\d+\d{8}$/;
    pat["E"] = /^\S+$/;
    pat["G"] = /^[1][3][0|1|2]\d{8}$/;
    pat["C"] = /^[1][3][3]\d{8}$/;
	pat["M"] = /^[1][3][0|1|2|3]\d{8}$/;

    var ret = pat[v1].exec(v2);
    if(!ret) return false;
    return true;
}

/*
    用正则表达式去掉字符串前后的空格
*/
String.prototype.trim = function()
{
    return this.replace(/(^\s*)|(\s*$)/g, "");
}

/*
    验证证件类型和证件号码是否合法
    type: 证件类型
    num:  证件号码
*/
function check_certnum(type,num)
{
    if(num.value.length == 0) return true;
    if(type.value == null || type.value == "")
    {
        alert("证件类型不能为空");
        type.focus();
        return false;
    }

    //十五位身份证验证
    if(type.value == '10')
    {
        if (num.value.length != 15){
                alert("身份证输入错误必须输入15位有效数字!");
                num.value = "";
                num.focus();
                return false;
        }
        var thePat=/[0-9]{15}/;
        var gotIt = thePat.test(num.value);
        if (!gotIt)
            {
                alert("身份证输入错误");
                num.value = "";
                num.focus();
                return false;
            }
    }

    //十八位身份证验证
    if(type.value == '11')
    {
        if (num.value.length != 18){
                alert("身份证输入错误必须输入18位有效数字!");
                num.value = "";
                num.focus();
                return false;
        }
        var thePat=/[0-9]{17}[0-9Xx]{1}/;
        var gotIt = thePat.test(num.value);
        if (!gotIt)
            {
                alert("身份证输入错误");
                num.value = "";
                num.focus();
                return false;
            }
    }
    return true;
}
function checkmoney(para,Desc)
{
	var pat1 = /^\d+\.\d{2}$/;
	var pat2= /^\d+\.\d{1}$/;
	var pat3= /^\d+$/;
  var ret1 = pat1.test(para.value);
  var ret2 = pat2.test(para.value);
  var ret3 = pat3.test(para.value);
  if (ret1||ret2||ret3) {
    return true;
  } else {
      alert(Desc);
    //清空数据
    para.value = '';
    //设置焦点
    para.focus();
    return false;
  }
}
/*
    接收Enter键输入, 使焦点指向对象a下一个可见且没有被disable的对象
    a: 页面上的HTML元素名,一般直接写this即可
*/
function keyDown(a)
{
    var key=window.event.keyCode;
    var form;
    form = document.forms[0];
    if (key == 13)
    {
      for (k = 0 ; k < form.length ;k++)
        if (form.elements[k] == a)
          i = k + 1;
      if (i == form.length) return;
      while(form.elements[i].disabled == true
          || form.elements[i].type == 'hidden'
          || form.elements[i].type == 'button') {
        i++;
        if (i == form.length) return;
      }
      form.elements[i].focus();
    }
}

/*
    校验用户两次输入的密码是否相同
    t1: 密码
    t2: 重新输入的密码
*/

function check_pwd(t1,t2) {
    var pat = /^\d{6}$/;
    if(t1.value=="" && t2.value == "") return true;
    var ret = pat.exec(t1.value);
    if(!ret) {
        alert("密码必须是6位数字!");
        t1.value = "";
        t2.value = "";
        t1.focus();
        return false;
    }
    if(t1.value != t2.value) {
        alert("两次输入的密码不同,请重新输入!");
        t1.value = "";
        t2.value = "";
        t1.focus();
        return false;
    }
    return true;
}

/*
  mask函数实现对于定制类型的HTML元素的校验
  参数说明:
    1、ElementName : 页面上的HTML元素名,一般直接写this即可
    2、Type:要校验的类型,系统预定义了一些类型,可以写,也可以自己定义正则表达式。
    3、ErrDesc:错误描述,如果校验不通过显示的提示内容。
  函数使用位置:
    该函数一般在元素的onblur事件中触发
*/
function mask(ElementName,Type,ErrDesc)
{
  //如果该元素没有任何数据,则不需要校验
  if (ElementName.value.length == 0) {
    return true;
  }
  //如果类型没有指定则不做任何限制
  if (Type.length == 0) return true;

  var pat = regex(Type);
  if (pat == '') {
    pat = Type;
  }

  var ret = pat.test(ElementName.value);
  if (ret) {
    return true;
  } else {
    //显示错误描述
    if (ErrDesc == null || ErrDesc == "") {
      alert("该值不合法!");
    } else {
      alert(ErrDesc);
    }
    //清空数据
    ElementName.value = '';
    //设置焦点
    ElementName.focus();
    return false;
  }
}

/*
  非空校验的函数

*/

function IsNull(FormName)
{
  var form;
  if (FormName == "" || FormName == null){
    form = document.forms[0];
  }else{
    form = FormName;
  }
  //遍历form元素
  for (i = 0 ; i < form.length ;i++){
    if (form.elements[i].NullCheck == '1' && form.elements[i].value == '' && form.elements[i].disabled == false){
      if (form.elements[i].ErrDesc == null || form.elements[i].ErrDesc == ''){
        alert("该值不能为空!!");
      }else{
        alert(form.elements[i].ErrDesc);
      }
      form.elements[i].focus();
      return true;
    }
  }
  return false;
}
/*
  用来建立临时数组的对象
*/
function OBJECT_TEMP(a,b,c){
  this.myArray = a;
  this.col = b;
  this.id = c;
}
/*
  根据传入的对象的名称、过滤的列的名称、以及列的值返回一个过滤后的对象
  Obj是数据对象,(不是字符串,请不要用引号或者双引号),如果只知道名称可以通过调用getobjectbyname('对象名称')来获取
*/
function getvalue(Obj,ColName,ColVal)
{
  var a = new Array();
  var b = new Array();

  var irow = 0;
  var flag = 0;

  //创建列数组
  for (var i=0;i<Obj.col.length;i++) {
    a[i] = new Array();
  }

  for (var i=0;i<Obj.col.length;i++) {
    if (Obj.col[i] == ColName.toUpperCase()) {
      flag++;

      for (var j=0;j<Obj.myArray[i].length;j++) {
        if (Obj.myArray[i][j] == ColVal) {
          b[irow] = Obj.id[j];
          for (var k = 0;k<Obj.col.length;k++) {
            a[k][irow] = Obj.myArray[k][j];
          }
          irow++;
        }
      }

      break;
    } else {
      continue;
    }
  }

  if (flag == 0) {
    alert("列名" + ColName + "不存在!");
    return false;
  }

  var temp = new OBJECT_TEMP(a,Obj.col,b);
  return temp;
}


/*
  根据对象来生成下拉列表框中的数据
  type的取值:
    rewrite (把下拉框中的所有数据清理,然后加数据) (默认值)
    append    (如果有重复的自动过滤)

  Obj是数据对象,(不是字符串,请不要用引号或者双引号),如果只知道名称可以通过调用getobjectbyname('对象名称')来获取
  listname是下拉列表框的名称(不是字符串,请不要用引号或者双引号)

*/
function filldata(Obj,listname,datacolumn,displaycolumn,type)
{
  //查找数据列和显示列是否存在
  var idata = 0,idispaly = 0,flag1 = false,flag2 = false;
  for (var i=0;i<Obj.col.length;i++) {
    if (Obj.col[i] == datacolumn.toUpperCase()) {
      idata = i;
      flag1 = true;
    }

    if (Obj.col[i] == displaycolumn.toUpperCase()) {
      idisplay = i;
      flag2 = true;
    }
  }

  if (flag1 == false) {
    alert("数据列" + datacolumn + "不存在");
    return false;
  }

  if (flag2 == false) {
    alert("显示列" + displaycolumn + "不存在");
    return false;
  }

  //判断是否是追加类型
  if (type==null || type=="" || type.toUpperCase()!="APPEND") {
    //清空下拉列表框中的所有数据
    deldata(listname);
  }

  var j = 0;
  var len = 0;
  var flag;


  //从对象中取数据,并填写到下拉列表中
  for (var i=0;i<Obj.id.length;i++) {
    flag = false;
    len = listname.length;
    for (j=0;j<len;j++) {
      if (listname.options[j].id == Obj.id[i]) {
        flag = true;
        break;
      }
    }

    //如果在下拉列表中没有找到,则添加,否则继续
    if (flag == false) {
      listname.length = len + 1;
      listname.options[len].value = Obj.myArray[idata][i];
      listname.options[len].text = Obj.myArray[idisplay][i];
      listname.options[len].id = Obj.id[i];
    }
  }

  return true;
}


/*
  根据下拉框来和对应的数据对象来生成一个新的对象,下拉列表框中有几条数据,将生成几条数据
  listname是下拉列表框的名称(不是字符串,请不要用引号或者双引号)
*/
function createobj(listname)
{
  if (listname.name == null || listname.name == "") {
    alert("请为列表框指定名称(name属性)!");
    return false;
  }

  if (listname.datacolumn == null || listname.datacolumn == "") {
    alert("请为列表框指定数据列(datacolumn属性)!");
    return false;
  }

  if (listname.displaycolumn == null || listname.displaycolumn == "") {
    alert("请为列表框指定显示列(displaycolumn属性)!");
    return false;
  }


  var rtn = eval((listname.name + "_OBJECT").toUpperCase());
  var tt = new rtn;
  var a = new Array();
  var b = new Array();
  var id = 0;
  var irow = 0;
  var count = 0;

  //创建列数组
  for (var i=0;i<tt.col.length;i++) {
    a[i] = new Array();
  }

  //从下拉框中查找ID,然后根据ID到数组中提取数据
  for (var list=0;list<listname.options.length;list++) {
    id = listname.options[list].id;
    if (id == "" || id == null) {
      continue;
    }

    var flag = false;

    //根据ID查找记录号
    for (var i=0;i<tt.id.length;i++) {
      if (tt.id[i] == id) {
        irow = i;
        flag = true;
      }
    }

    //如果没有找到该id,则忽略
    if (flag == false) continue;

    b[count] = id;

    for (var i=0;i<tt.col.length;i++) {
      a[i][count] = tt.myArray[i][irow];
    }

    count++;
  }

  var temp = new OBJECT_TEMP(a,tt.col,b);
  return temp;
}


/*
  根据下拉列表框中被选择的数据(可能是多选的情况)生成一个新的数据对象
  listname是下拉列表框的名称(不是字符串,请不要用引号或者双引号)
*/


function createobjbysel(listname)
{
  if (listname.name == null || listname.name == "") {
    alert("请为列表框指定名称(name属性)!");
    return false;
  }

  if (listname.datacolumn == null || listname.datacolumn == "") {
    alert("请为列表框指定数据列(datacolumn属性)!");
    return false;
  }

  if (listname.displaycolumn == null || listname.displaycolumn == "") {
    alert("请为列表框指定显示列(displaycolumn属性)!");
    return false;
  }


  var rtn = eval((listname.name + "_OBJECT").toUpperCase());
  var tt = new rtn;
  var a = new Array();
  var b = new Array();
  var id = 0;
  var irow = 0;
  var count = 0;

  //创建列数组
  for (var i=0;i<tt.col.length;i++) {
    a[i] = new Array();
  }

  //从下拉框中查找ID,然后根据ID到数组中提取数据
  for (var list=0;list<listname.options.length;list++) {
    if (listname.options[list].selected == true) {
      id = listname.options[list].id;
      if (id == "" || id == null) {
        continue;
      }

      var flag = false;

      //根据ID查找记录号
      for (var i=0;i<tt.id.length;i++) {
        if (tt.id[i] == id) {
          irow = i;
          flag = true;
        }
      }

      //如果没有找到该id,则忽略
      if (flag == false) continue;

      b[count] = id;

      for (var i=0;i<tt.col.length;i++) {
        a[i][count] = tt.myArray[i][irow];
      }

      count++;
    }
  }

  var temp = new OBJECT_TEMP(a,tt.col,b);
  return temp;
}



/*
  根据数据对象和列名获取列的序号。
*/

function getcol(obj,colname)
{
  for (var i=0;i<obj.col.length;i++) {
    if (obj.col[i] == colname.toUpperCase()) {
      return i;
    }
  }

  alert("列" + colname + "不存在!");
  return -1;
}


/*
  根据ID从数据对象中查询对应的记录数
*/

function getrow(obj,idvalue)
{
  if (idvalue == null || idvalue == "") {
    alert("不存在该行!");
    return -1;
  }

  for (var i=0;i<obj.id.length;i++) {
    if (obj.id[i] == idvalue) {
      return i;
    }
  }

  alert("不存在该行!");
  return -1;
}


//返回列表框中被选择的ID
function getid(listname)
{
  for (var i=0;i<listname.options.length;i++) {
    if (listname.options[i].selected == true) {
      return listname.options[i].id;
    }
  }

  return -1;
}

/*
  根据数据对象、ID的值和列名获取数据。
*/
function getvaluebyid(obj,idvalue,colname)
{
  var row = getrow(obj,idvalue);
  if (row == -1) return false;

  var col = getcol(obj,colname);
  if (col == -1) return false;

  return obj.myArray[col][row];
}


//删除下拉列表中的数据
function deldata(listname)
{
  //清空下拉列表框中的所有数据
  for (var i = listname.options.length-1 ; i >= 0 ; i--) {
    listname.options[i] = null;
  }
  listname.length = 0;
}
//根据列表框来获取该列表框的所对应的数据对象,针对下拉框和数据对象绑定的情况
function getobject(listname)
{
  if (listname.name == null || listname.name == "") {
    alert("请为列表框指定名称(name属性)!");
    return false;
  }

  if (listname.datacolumn == null || listname.datacolumn == "") {
    alert("请为列表框指定数据列(datacolumn属性)!");
    return false;
  }

  if (listname.displaycolumn == null || listname.displaycolumn == "") {
    alert("请为列表框指定显示列(displaycolumn属性)!");
    return false;
  }

  try{
    var rtn = eval((listname.name + "_OBJECT").toUpperCase());
    var tt = new rtn;
    return tt;
  }catch(e)
  {
    alert("该列表框没有和数据对象绑定或绑定错误,请检查!");
    return false;
  }
}


/*
  1、这个主要是在创建的不和下拉框绑定的数据对象的时候,要访问这些对象可以使用该方法
  根据数据对象的名称来获取数据对象
  2、如果知道数据对象的名称,也可以通过该方法来得到对应的数据对象
*/
function getobjectbyname(dataname)
{
  if (dataname == null || dataname == "") {
    alert("数据对象的名称不能为空!");
    return false;
  }

  try{
    var rtn = eval((dataname + "_OBJECT").toUpperCase());
    var tt = new rtn;
    return tt;
  }catch(e)
  {
    alert("对不起,您要访问的数据对象不存在!");
    return false;
  }
}



/*
  根据当前选中的数值过滤另外一个下拉框

  curlistname当前选择的列表名
  curfiltercol用来作为过滤值的列名
  listname:被过滤的列表的名称
  filtercolumn:过滤列
  datacol:数据列
  display:显示列
*/

function filterlist(curlistname,curfiltercol,listname,filtercolumn,datacol,display)
{

  //根据当前下拉列表创建对象
  var cur = getobject(curlistname);
  if (cur == false) return false;

  //获取选中行的ID
  var id = getid(curlistname);
  if (id == -1) return false;

  //如果ID为空,则清空被过滤的列表的数据
  if (id == null || id == "") {
    deldata(listname);
    return false;
  }

  //获取数据
  var data = getvaluebyid(cur,id,curfiltercol);
  if (data == false) return false;

  var obj = getobject(listname);
  if (obj == false) return false;

  //根据条件查询满足条件的数据
  var rtn = getvalue(obj,filtercolumn,data);
  if (rtn == false) return false;
  //填写数据到下拉列表中
  var tt = filldata(rtn,listname,datacol,display);
  if (tt == false) return false;
}

//根据指定列、以及指定的列的值来过滤下拉列表
function filterbycol(colname,colvalue,listname,datacol,display)
{

  //查找列表框对象
  var obj = getobject(listname);
  if (obj == false) return false;
  //根据条件查询满足条件的数据
  var rtn = getvalue(obj,colname,colvalue);
  if (rtn == false) return false;
  //填写数据到下拉列表中
  var tt = filldata(rtn,listname,datacol,display);
  if (tt == false) return false;
}

//根据指定列、以及指定的列的值来过滤下拉列表
function  filldatafilter(colname,colvalue,listname,obj,datacol,display)
{
  //根据条件查询满足条件的数据
  var rtn = getvalue(obj,colname,colvalue);
  if (rtn == false) return false;
  //填写数据到下拉列表中
  var tt = filldata(rtn,listname,datacol,display);
  if (tt == false) return false;
}

function _selectAll(obj,self) {
	if (obj) {
		if (obj.length) {
			for (var i=0; i<obj.length; i++) {
				obj[i].checked=self.checked;
			}
		} else {
			obj.checked=self.checked;
		}
	}
}

function parseExcel(obj){
    var exceldata = obj.innerHTML;
    document.all.exceldata.value=exceldata;
    document.forms[0].action="/servlet/ParseExcel";
    document.forms[0].target="_blank";
    document.forms[0].submit();
}

// Function Name:			trim
// Function Description:	去除字符串的首尾的空格
// Creation Date:			2004-7-13 15:30
// Last Modify By:			N/A
// Last Modify Date:		N/A
String.prototype.trim=function(){
	return this.replace(/(^\s*)|(\s*$)/g, "");
}

// Function Name:			ltrim
// Function Description:	去除字符串的左侧的空格
// Creation Date:			2004-7-13 9:58
// Last Modify By:			N/A
// Last Modify Date:		N/A
String.prototype.ltrim=function()
{
	return this.replace(/(^\s*)/g, "");
}

// Function Name:			rtrim
// Function Description:	去除字符串的右侧的空格
// Creation Date:			2004-7-13 15:31
// Last Modify By:			N/A
// Last Modify Date:		N/A
String.prototype.rtrim=function()
{
	return this.replace(/(\s*$)/g, "");
}

// Function Name:			len
// Function Description:	返回字符串的实际长度, 一个汉字算2个长度
// Creation Date:			2004-7-13 9:58
// Last Modify By:			N/A
// Last Modify Date:		N/A
String.prototype.len=function()
{
	var str=this;
	return str.replace(/[^\x00-\xff]/g, "**").length
}

// Function Name:			isValidDate
// Function Description:	判断输入是否是有效的短日期格式 - "YYYY-MM-DD"
// Creation Date:			2004-7-13 9:58
// Last Modify By:			N/A
// Last Modify Date:		N/A
String.prototype.isValidDate=function()
{
	var result=this.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
	if(result==null) return false;
	var d=new Date(result[1], result[3]-1, result[4]);
	return (d.getFullYear()==result[1]&&d.getMonth()+1==result[3]&&d.getDate()==result[4]);
}

// Function Name:			isValidTime
// Function Description:	判断输入是否是有效的时间格式 - "HH:MM:SS"
// Creation Date:			2004-7-13 9:58
// Last Modify By:			N/A
// Last Modify Date:		N/A
String.prototype.isValidTime=function()
{
	var resule=this.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/);
	if (result==null) return false;
	if (result[1]>24 || result[3]>60 || result[4]>60) return false;
	return true;
}

// Function Name:			isValidEmail
// Function Description:	判断输入是否是有效的电子邮件
// Creation Date:			2004-7-13 9:59
// Last Modify By:			N/A
// Last Modify Date:		N/A
String.prototype.isValidEmail=function()
{
	var result=this.match(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/);
	if(result==null) return false;
	return true;
}

// Function Name:			isValidDatetime
// Function Description:	判断输入是否是有效的长日期格式 - "YYYY-MM-DD HH:MM:SS"
// Creation Date:			2004-7-13 9:59
// Last Modify By:			N/A
// Last Modify Date:		N/A
String.prototype.isValidDatetime=function()
{
	var result=this.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/);
	if(result==null) return false;
	var d= new Date(result[1], result[3]-1, result[4], result[5], result[6], result[7]);
	return (d.getFullYear()==result[1]&&(d.getMonth()+1)==result[3]&&d.getDate()==result[4]&&d.getHours()==result[5]&&d.getMinutes()==result[6]&&d.getSeconds()==result[7]);
}

// Function Name:			isValidInteger
// Function Description:	判断输入是否是一个整数
// Creation Date:			2004-7-13 10:01
// Last Modify By:			N/A
// Last Modify Date:		N/A
String.prototype.isValidInteger=function()
{
	var result=this.match(/^(-|\+)?\d+$/);
	if(result==null) return false;
	return true;
}

// Function Name:			isValidPositiveInteger
// Function Description:	判断输入是否是一个正整数
// Creation Date:			2004-7-13 10:01
// Last Modify By:			N/A
// Last Modify Date:		N/A
String.prototype.isValidPositiveInteger=function()
{
	var result=this.match(/^\d+$/);
	if(result==null) return false;
	if(parseInt(this)>0) return true;
	return false;
}

// Function Name:			isValidNegativeInteger
// Function Description:	判断输入是否是一个负整数
// Creation Date:			2004-7-13 10:28
// Last Modify By:			N/A
// Last Modify Date:		N/A
String.prototype.isValidNegativeInteger=function()
{
	var result=this.match(/^-\d+$/);
	if(result==null) return false;
	return true;
}

// Function Name:			isValidNumber
// Function Description:	判断输入是否是一个数字
// Creation Date:			2004-7-13 10:01
// Last Modify By:			N/A
// Last Modify Date:		N/A
String.prototype.isValidNumber=function()
{
	return !isNaN(this);
}

// Function Name:			isValidLetters
// Function Description:	判断输入是否是一个由 A-Z / a-z 组成的字符串
// Creation Date:			2004-7-13 10:10
// Last Modify By:			N/A
// Last Modify Date:		N/A
String.prototype.isValidLetters=function()
{
	var result=this.match(/^[a-zA-Z]+$/);
	if(result==null) return false;
	return true;
}

// Function Name:			isValidDigits
// Function Description:	判断输入是否是一个由 0-9 组成的数字
// Creation Date:			2004-7-13 10:10
// Last Modify By:			N/A
// Last Modify Date:		N/A
String.prototype.isValidDigits=function()
{
	var result=this.match(/^[1-9][0-9]+$/);
	if(result==null) return false;
	return true;
}

// Function Name:			isValidAlphanumeric
// Function Description:	判断输入是否是一个由 0-9 / A-Z / a-z 组成的字符串
// Creation Date:			2004-7-13 10:14
// Last Modify By:			N/A
// Last Modify Date:		N/A
String.prototype.isValidAlphanumeric=function()
{
	var result=this.match(/^[a-zA-Z0-9]+$/);
	if(result==null) return false;
	return true;
}

// Function Name:			isValidString
// Function Description:	判断输入是否是一个由 0-9 / A-Z / a-z / . / _ 组成的字符串
// Creation Date:			2004-7-13 10:20
// Last Modify By:			N/A
// Last Modify Date:		N/A
String.prototype.isValidString=function()
{
	var result=this.match(/^[a-zA-Z0-9\s.\-_]+$/);
	if(result==null) return false;
	return true;
}

// Function Name:			isValidPostalcode
// Function Description:	判断输入是否是一个有效的邮政编码
// Creation Date:			2004-7-13 10:22
// Last Modify By:			N/A
// Last Modify Date:		N/A
String.prototype.isValidPostalcode=function()
{
	var result=this.match(/(^[0-9]{6}$)/);
	if(result==null) return false;
	return true;
}

// Function Name:			isValidPhoneNo
// Function Description:	判断输入是否是一个有效的电话号码
// Creation Date:			2004-7-13 10:22
// Last Modify By:			N/A
// Last Modify Date:		N/A
String.prototype.isValidPhoneNo=function()
{
	var result=this.match(/(^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)/);
	if(result==null) return false;
	return true;
}

// Function Name:			isValidMobileNo
// Function Description:	判断输入是否是一个有效的手机号码
// Creation Date:			2004-7-13 10:23
// Last Modify By:			N/A
// Last Modify Date:		N/A
String.prototype.isValidMobileNo=function()
{
	var result=this.match(/(^0{0,1}13[0-9]{9}$)/);
	if(result==null) return false;
	return true;
}

function checkLength(obj, length) {
	if (obj.value.len()>length) {
		alert("您输入的字符超长!");
		obj.focus();
		return false;
	}
	return true;
} 

function notSelected(id) {
	var count=0;
	var obj = document.all[id];
	if (obj) {
		if (obj.length) {
			for (var i=0; i<obj.length; i++) {
				if (obj[i].checked==true) {
					count++;
				}
			}
		} else {
			if (obj.checked==true) {
				count++;
			}
		}
	}
	if (count==0) {
		return true;
	}
	return false;
}