// 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;
}

/*
String.prototype.strlen = function() {
	var len = 0;
	for (var i=0;i<this.length;i++)
	{
		if (this.charCodeAt(i)>255) len+=2; 
		else len++;
	}
	return len;
}
*/








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

function regex(type)
{
  /*验证是否数字*/
  if (type == 'int') return /^\d+$/;

  /*email校验*/
  if (type == 'email') return /^[a-zA-Z]{1}\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+\.\d{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}$/;

  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+$/;
    pat["E"] = /^\S+$/;
    pat["G"] = /^[1][3][0|1]\d{8}$/;
    pat["C"] = /^[1][3][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(num)
{
    if(num.length == 0) return true;
	//十五位身份证验证
	if (num.length == 15)
	{
        var thePat=/[0-9]{15}/;
        var gotIt = thePat.test(num);
        if (!gotIt)
		{
			return false;
		}
		return true;
	}

    //十八位身份证验证
    if(num.length == 18)
    {
        var thePat=/[0-9]{17}[0-9Xx]{1}/;
        var gotIt = thePat.test(num);
        if (!gotIt)
		{
			return false;
		}
		return true;
    }
	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();
    }
}

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

function check_pwd(obj1,obj2) {
    var pat = /^\d{6}$/;
    if(obj1.value=="" && obj2.value == "") return true;
    var ret = pat.test(obj1.value);
    if(!ret) {
        alert("密码必须是6位数字!");
        obj1.value = "";
        obj2.value = "";
        obj1.focus();
        return false;
    }
    if(obj1.value != obj2.value) {
        alert("两次输入的密码不同,请重新输入!");
        obj1.value = "";
        obj2.value = "";
        obj1.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 copyToList(from,to) //from表示:包含可选择项目的select对象名字 to表示:列出可选择项目的select对象名字 //你可以根据你的具体情况修改
{
  fromList = eval('document.forms[0].' + from);
  toList = eval('document.forms[0].' + to);
  if (toList.options.length > 0 && toList.options[0].value == 'temp')
  {
    toList.options.length = 0;
  }
  var sel = false;
  for (i=0;i<fromList.options.length;i++)
  {
    var current = fromList.options[i];
    if (current.selected)
    {
      sel = true;
      if (current.value == 'temp')
      {
        alert ('你不能选择这个项目!');
        return;
      }
      txt = current.text;
      val = current.value;
      toList.options[toList.length] = new Option(txt,val);
      fromList.options[i] = null;
      i--;
    }
  }
  if (!sel) alert ('你还没有选择任何项目');
}


function editchk(chkbox){
    checkbox = eval('document.forms[0].' + chkbox);
    var checkedflag = 0;
    
    if (checkbox == null){
        alert("没有查询到任何记录 无法进行编辑操作!")
        return false;
    }
    if (checkbox.length == null){
        if (checkbox.checked != true){
            alert("没有选择任何记录 无法进行编辑操作!")
            return false;
        }
    }else{
        for (var i = 0 ; i < checkbox.length ; i++){
            if (checkbox[i].checked == true){
                checkedflag++;
            }
        }
        if (checkedflag > 1){
            alert("编辑操作一次只能选择一条记录")
            return false;
        }
        if (checkedflag == 0){
            alert("没有选择任何记录 无法进行编辑操作!")
            return false;
        }
    }  
}

function editchk1(chkbox,msg){
    checkbox = eval('document.forms[0].' + chkbox);
    var checkedflag = 0;
    
    if (checkbox == null){
        alert(msg)
        return false;
    }
    if (checkbox.length == null){
        if (checkbox.checked != true){
            alert(msg)
            return false;
        }
    }else{
        for (var i = 0 ; i < checkbox.length ; i++){
            if (checkbox[i].checked == true){
                checkedflag++;
            }
        }
        if (checkedflag > 1){
            alert("一次只能选择一条记录")
            return false;
        }
        if (checkedflag == 0){
            alert(msg)
            return false;
        }
    }  
}

function delchk1(chkbox,msg){
    checkbox = eval('document.forms[0].' + chkbox);
    var checkedflag = false;
    
    if (checkbox == null){
        alert("没有查询到任何记录!")
        return false;
    }
    if (checkbox.length == null){
        if (checkbox.checked != true){
            alert("没有选择任何记录!")
            return false;
        }
    }else{
        for (var i = 0 ; i < checkbox.length ; i++){
            if (checkbox[i].checked == true){
                checkedflag = true;
            }
        }
        if (checkedflag == false){
            alert("没有选择任何记录!")
            return false;
        }
    }
    rtn = confirm(msg) 	
    if (rtn !="0"){
        return true;
    }else{
        return false;
    }
}


function delchk(chkbox){
    checkbox = eval('document.forms[0].' + chkbox);
    var checkedflag = false;
    
    if (checkbox == null){
        alert("没有查询到任何记录 无法进行删除操作!")
        return false;
    }
    if (checkbox.length == null){
        if (checkbox.checked != true){
            alert("没有选择任何记录 无法进行删除操作!")
            return false;
        }
    }else{
        for (var i = 0 ; i < checkbox.length ; i++){
            if (checkbox[i].checked == true){
                checkedflag = true;
            }
        }
        if (checkedflag == false){
            alert("没有选择任何记录 无法进行删除操作!")
            return false;
        }
    }
    rtn = confirm("是否确认删除记录?") 	
    if (rtn !="0"){
        return true;
    }else{
        return false;
    }
}

function allotchk(chkbox){
    checkbox = eval('document.forms[0].' + chkbox);
    var checkedflag = false;
    
    if (checkbox == null){
        alert("没有查询到任何记录 无法进行分配操作!")
        return false;
    }
    if (checkbox.length == null){
        if (checkbox.checked != true){
            alert("没有选择任何记录 无法进行分配操作!")
            return false;
        }
    }else{
        for (var i = 0 ; i < checkbox.length ; i++){
            if (checkbox[i].checked == true){
                checkedflag = true;
            }
        }
        if (checkedflag == false){
            alert("没有选择任何记录 无法进行分配操作!")
            return false;
        }
    }
}
function canclechk(chkbox){
    checkbox = eval('document.forms[0].' + chkbox);
    var checkedflag = 0;
    
    if (checkbox == null){
        alert("没有查询到任何记录 无法进行冲正!")
        return false;
    }
    if (checkbox.length == null){
        if (checkbox.checked != true){
            alert("没有选择任何记录 无法进行冲正!")
            return false;
        }
    }else{
        for (var i = 0 ; i < checkbox.length ; i++){
            if (checkbox[i].checked == true){
                checkedflag++;
            }
        }
        if (checkedflag > 1){
            alert("一次只能选择一条记录")
            return false;
        }
        if (checkedflag == 0){
            alert("没有选择任何记录 无法进行冲正!")
            return false;
        }
    }  
}
function delchkonly(chkbox){
    checkbox = eval('document.forms[0].' + chkbox);
    var checkedflag = 0;
    
    if (checkbox == null){
        alert("没有查询到任何记录 无法进行删除操作!")
        return false;
    }
    if (checkbox.length == null){
        if (checkbox.checked != true){
            alert("没有选择任何记录 无法进行删除操作!")
            return false;
        }
    }else{
        for (var i = 0 ; i < checkbox.length ; i++){
            if (checkbox[i].checked == true){
                checkedflag++;
            }
        }
        if (checkedflag > 1){
            alert("删除操作一次只能选择一条记录")
            return false;
        }
        if (checkedflag == 0){
            alert("没有选择任何记录 无法进行删除操作!")
            return false;
        }
    }  
    rtn = confirm("是否确认删除记录?") 	
    if (rtn !="0"){
        return true;
    }else{
        return false;
    }
}
function cancelchkonly(chkbox){
    checkbox = eval('document.forms[0].' + chkbox);
    var checkedflag = 0;
    
    if (checkbox == null){
        alert("没有查询到任何记录 无法进行注销操作!")
        return false;
    }
    if (checkbox.length == null){
        if (checkbox.checked != true){
            alert("没有选择任何记录 无法进行注销操作!")
            return false;
        }
    }else{
        for (var i = 0 ; i < checkbox.length ; i++){
            if (checkbox[i].checked == true){
                checkedflag++;
            }
        }
        if (checkedflag > 1){
            alert("注销操作一次只能选择一条记录")
            return false;
        }
        if (checkedflag == 0){
            alert("没有选择任何记录 无法进行注销操作!")
            return false;
        }
    }  
    rtn = confirm("是否确认注销记录?") 	
    if (rtn !="0"){
        return true;
    }else{
        return false;
    }
}
//返回输入日期和当前日期的差值,时间是从 1970 年 1 月 1 日午夜开始计的毫秒数
//如果输入日期为空,则返回0
//datestr 输入日期,格式yyyy-mm-dd,其中分隔符“-”由第二个参数决定
//separater 日期分隔符
function compareDate(datestr,separater) {
	if (datestr.trim() == "") return 0;
	var arr = datestr.split(separater);
	var year = arr[0];
	var month = parseInt(arr[1],10)-1;
	var date = arr[2];
	var inputDate = new Date(year,month,date);
	var currDate = new Date();
	currDate.setHours(0,0,0,0);
	return (inputDate.valueOf()-currDate.valueOf());
}
function getSysdate(){
    var date=new Date();
    var year=date.getYear();
    var month=date.getMonth();
    var day=date.getDate();
    month = month + 1;
    if (day < 10){
        day = "0"+day;
    }
    if (month < 10){
        month = "0" + month;
    }
    return year+"-"+month+"-"+day;
}
function openWin(url,wname) {
	var win = window.open(url, wname, "toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1", true)
	win.focus();
}


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

function click(){
//  if(event.button==1)
  {
		alert( '正在处理中,请稍候!');
  }
}
//设置主页面和菜单页面的鼠标点击事件的动作,使鼠标点击无效
function disableClick() {
	document.onmousedown=click;
	parent.leftFrame.document.onmousedown=click;
}

//判断有没有checkbox被选中
function noChecked(checkboxName) {
	var checkbox = eval("document.forms[0]." + checkboxName);
	if (checkbox == null){
	  //alert("没有找到checkbox对象!");
	  return true;
	}
	if (checkbox.length == null) {
		if (checkbox.checked == true) {
			return false;
		} else {
			return true;
		}
	}
	for (var i=0; i<checkbox.length; i++) {
		if (checkbox[i].checked == true) {
			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;
  }
}


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

function showEmpDialog(empid,empname,deptid) {
	if (empid.disabled == true)
	{
		return;
	}
    var emp;
    var url="/SelectEmpAction.do?empid="+empid.value+"&deptid="+deptid.value;
    emp = window.showModalDialog(url,"",'dialogWidth:400px;dialogHeight:500px;dialogLeft:300px;dialogTop:150px;center:yes;help:no;resizable:yes;status:yes');
    empid.value=emp[0];
    empname.value=emp[1];
}

function showAllEmpDialog(empid,empname,deptid) {
	if (empid.disabled == true)
	{
		return;
	}
    var emp;
    var url="/SelectEmpAction.do?empid="+empid.value+"&deptid="+deptid.value+"&all=1";
    emp = window.showModalDialog(url,"",'dialogWidth:400px;dialogHeight:500px;dialogLeft:300px;dialogTop:150px;center:yes;help:no;resizable:yes;status:yes');
    empid.value=emp[0];
    empname.value=emp[1];
}

function showSingleSelectEmpDialog(empid,empname,deptid) {
	if (empid.disabled == true)
	{
		return;
	}
    var emp;
    var url="/SelectEmpAction.do?empid="+empid.value+"&deptid="+deptid.value;
    emp = window.showModalDialog(url,"1",'dialogWidth:400px;dialogHeight:500px;dialogLeft:300px;dialogTop:150px;center:yes;help:no;resizable:yes;status:yes');
    empid.value=emp[0];
    empname.value=emp[1];
}

function showDeptDialog(deptid,deptname) {
	var date = new Date();
	if (deptid.disabled == true)
	{
		return;
	}
    var dept;
    var url="/SelectDeptAction.do?deptid="+deptid.value+"&random="+date.valueOf();;
    dept = window.showModalDialog(url,"",'dialogWidth:400px;dialogHeight:500px;dialogLeft:300px;dialogTop:150px;center:yes;help:no;resizable:yes;status:yes');
    deptid.value=dept[0];
    deptname.value=dept[1];
}

function showSingleSelectDeptDialog(deptid,deptname) {
	var date = new Date();
	if (deptid.disabled == true)
	{
		return;
	}
    var dept;
    var url="/SelectDeptAction.do?deptid="+deptid.value+"&random="+date.valueOf();
    dept = window.showModalDialog(url,"1",'dialogWidth:400px;dialogHeight:500px;dialogLeft:300px;dialogTop:150px;center:yes;help:no;resizable:yes;status:yes');
    deptid.value=dept[0];
    deptname.value=dept[1];
}

function checkTxtFile(file) {
	var filename = file.value.trim();
	if (filename == ""){
		return;
	}
	if (!(/^.+\.(txt)$/i.test(filename))) {
		alert("文件类型只能是 <txt> !"); 
		file.value = "";
		return false;
	} 
}

function showPrcplnInfo(prcplnid) {
	var url = "/sell/PrcplnInfoAction.do?action=showPrcplnInfo&prcplnid="+prcplnid+"&newWin=1";
	var rtn = window.open(url,"套餐资费","height=280,width=400,toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no,status=no");
}

function showRealUsrState(mphonecode, usrstate, statedate) {
	var date = new Date();
	var url = "/grade/DetailQueryAction.do?mphonecode=" + mphonecode + "&action=getRealUsrState&radom=" + date.valueOf();
    var rtn = window.showModalDialog(url,"",'dialogWidth:400px;dialogHeight:300px;dialogLeft:200px;dialogTop:150px;center:yes;help:no;resizable:yes;status:no');
	if (usrstate != undefined) {
		if (rtn[0] != "") {
			usrstate.innerHTML = rtn[0];
		}
		
	}
	if (statedate != undefined) {
		if (rtn[1] != "") {
			statedate.innerHTML = rtn[1];
		}
	}
}