/**
 * 非空校验
 * @param field_name:控件名称
 * @param this_field:控件
 * @return:数组check_result
 *        check_result.status  true/false 校验成功/校验失败
 *        check_result.message  空串(成功)/提示信息(失败)
 */
function not_null(field_name,this_field)
{
  var err_message = field_name + "不能为空!";
  var check_result = new Array();

  if(trim(this_field.value)=="")
  {
    check_result.status=false;
    check_result.message=err_message;
    return check_result;
  }
  else
  {
    check_result.status=true;
    check_result.message="";
    return check_result;
  }
}
/**
 * 检查控件的长度
 * @param this_field:控件
 * @param field_name:控件名字
 * @param min_length:要求控件的最小长度
 * @param max_length:要求控件的最大长度
 * @return:数组check_result
 *        check_result.status  true/false 校验成功/校验失败
 *        check_result.message  空串(成功)/提示信息(失败)
 */
function check_length(this_field,field_name,min_length,max_length)
{
  var the_field_length = this_field.value.length;
  var check_result = new Array();

  if (the_field_length > max_length)
  {
    var err_message = field_name + "的长度应该不大于" + max_length;
    check_result.status=false;
    check_result.message=err_message;
    return check_result;
  }
  else if (the_field_length < min_length)
  {
    var err_message = field_name + "的长度应该不小于" + min_length;
    check_result.status=false;
    check_result.message=err_message;
    return check_result;
  }
  else
  {
    check_result.status=true;
    check_result.message="";
    return check_result;
  }
}
/**
 * 日期输入函数
 * @param event:键盘事件
 * @param this_field:控件
 * @param marker:分隔符(-)
 * @param err_method:错误提示方式：0-显示错误提示信息，返回false;1-不显示错误提示信息，将错误提示信息返回；其他值-不显示错误提示信息，返回false;
 * @return
 */
function date_onkey(event,this_field,marker,err_method)
{
  var scode = event.keyCode;//获得键盘至值。

  if(scode == 13)
  {
    return true;
  }
  var t1 = this_field.value + "";//转换为字符串。

  //在年、月后自动加分隔符
  if(t1.length == 4 || (t1.length == 7 && t1.charAt(4) == marker && t1.charAt(1)!=marker))
  {
    this_field.value = t1 + marker;
  }
  //在日子后面加上空格。
  if(t1.length == 10 && (t1.charAt(4) == marker) && (t1.charAt(7) == marker))
  {
    if( this_field.maxLength != 10 )
      this_field.value = t1 + " ";
  }
  //将时分秒中的":"显示出来。
  if(t1.length == 13 || (t1.length == 16 && t1.charAt(13) == ":") && (t1.charAt(4) == marker) && (t1.charAt(7) == marker))
  {
    this_field.value = t1 + ":";
  }
  //月转换成标准的MM格式后加-
  if(t1.length == 6 && t1.charAt(4) == marker)
  {
    var x = t1.substr(5,1);
    var y = t1.substring(0,5);
    x = parseInt(x);
    if(x > 1)
    {
      this_field.value = y + "0" + x + marker;
    }
  }
  //日转化成标准的DD格式
  if(t1.length == 9 && t1.charAt(4) == marker && t1.charAt(7) == marker)
  {
    var x = t1.substr(8,1);
    var y = t1.substring(0,8);
    x = parseInt(x);
    if(x > 4)
    {
      this_field.value = y + "0" + x + ' ' ;
    }
  }
  //小时转变成标准的格式。
  if(t1.length == 12 && t1.charAt(10) == ' ' && t1.charAt(4) == marker && t1.charAt(7) == marker)
  {
    var x = t1.substr(11,1);
    var y = t1.substring(0,11);
    x = parseInt(x);
    if(x > 3)
    {
      this_field.value = y + "0" + x + ':';
    }
  }
  //分钟转变成标准的格式。
  if(t1.length == 15 && t1.charAt(13) == ':' && t1.charAt(10) == ' ' && t1.charAt(4) == marker && t1.charAt(7) == marker)
  {
    var x = t1.substr(14,1);
    var y = t1.substring(0,14);
    x = parseInt(x);
    if(x > 6)
    {
      this_field.value = y + "0" + x + ':';
    }
  }
  //秒钟转变成标准的格式。
  if(t1.length == 18 && t1.charAt(16) == ':' && t1.charAt(13) == ':' && t1.charAt(10) == ' ' && t1.charAt(4) == marker && t1.charAt(7) == marker)
  {
    var x = t1.substr(17,1);
    var y = t1.substring(0,17);
    x = parseInt(x);
    if(x > 6)
    {
      this_field.value = y + "0" + x;
    }
  }
  if(scode == 8)
  {
    if (t1.length == 4)
    {
      var x = t1.substring(0,3);
      this_field.value = x;
    }
    if (t1.length == 7 && t1.charAt(4) == marker)
    {
      var x = t1.substring(0,6);
      this_field.value = x;
    }
  }
}
/**
 * 校验数字格式
 * @param form_field:控件
 * @param limit_top:限额
 * @param decimal:小数点的位数(包括小数点)
 * @return:数组check_result
 *        check_result.status  true/false 校验成功/校验失败
 *        check_result.message  空串(成功)/提示信息(失败)
 */
function decimal_number(form_field,limit_top,decimal)
{
  var num_expr = /^[\d\.]+$/;
  var matchArray = form_field.value.match(num_expr);

  var sub_s;
  var first_point;
  var next_point;
  var check_result = new Array();

  if (form_field.value == ".")
  {
    var err_message = "错误的数字格式!";
    check_result.status=false;
    check_result.message=err_message;
    return check_result;
  }
  else if (form_field.value != null && form_field.value != "")
  {
    if (matchArray == null)
    {
      var err_message = "此处只能输入数字和小数点!";
      check_result.status=false;
      check_result.message=err_message;
      return check_result;
    }
    else
    {	var v_text = form_field.value;
    if (v_text > limit_top)
    {
      var err_message = "费用" + "的值过大!不能超过"+ limit_top + "!";
      check_result.status=false;
      check_result.message=err_message;
      return check_result;
    }
    first_point = v_text.indexOf('.');
    if (first_point != -1)
		       {	sub_s = v_text.substr(first_point);
    if (sub_s.length > decimal)
    {
      var err_message = "费用的" + "小数点后的精度为"+(decimal-1)+"位!";
      check_result.status=false;
      check_result.message=err_message;
      return check_result;

    }
    next_point = sub_s.substr(1);
    if (next_point.indexOf('.') != -1)
    {
      form_field.focus();
      var err_message = "非法的小数格式!";
      check_result.status=false;
      check_result.message=err_message;
      return check_result;
    }
    }
    var err_message = "";
    check_result.status=true;
    check_result.message=err_message;
    return check_result;
    }
  }
  else
  {
    var err_message = "";
    check_result.status=true;
    check_result.message=err_message;
    return check_result;
  }
}
/**
 * 检查键盘事件,控制数字输入
 * @return:true/false  校验成功/失败
 */
//function isKeyNumber()
//{
//  var s_keycode=(navigator.appname=="Netscape")?event.which:event.keyCode;
//  if((s_keycode>=48 && s_keycode<=57) || s_keycode==32 || s_keycode==9 || s_keycode==13 || s_keycode==8 || s_keycode==46)
//  {
//    return true;
//  }
//  else
//  {
//    return false;
//  }
//}
/**
 * 校验控件是否为数字
 * @param field_name:控件名字
 * @param form_field:控件
 * @return:数组check_result
 *        check_result.status  true/false 校验成功/校验失败
 *        check_result.message  空串(成功)/提示信息(失败)
 */
function check_number(field_name,form_field)
{
  //输入域数字位校验
  var message = field_name + "每个字符应由数字组成!";
  var check_result = new Array();
  var num_expr = /^\d+$/;
  var v_text = form_field.value;
  if ((v_text != null)&&(v_text != ""))
  {
    for (logo = 0;logo <= form_field.value.length;logo = logo + 1)
    {
      v_text = v_text.replace(" ","");
    }
  }
  if((v_text != null)&&(v_text != ""))
  {
    var matchArray = form_field.value.match(num_expr);
    if (matchArray == null)
    {
      check_result.status = false;
      check_result.message = message;
      return check_result;
    }
    else
    {
      check_result.status=true;
      check_result.message = "";
      return check_result;
    }
  }
}
/**
 * 校验密码
 * @param new_password:新的密码控件
 * @param old_password:旧的密码控件
 * @return:数组check_result
 *        check_result.status  true/false 校验成功/校验失败
 *        check_result.message  空串(成功)/提示信息(失败)
 */
function confirm_password(new_password,old_password)
{
  var err_message = "两次输入的密码不符合!";
  var check_result=new Array();
  if (new_password.value!=old_password.value)
  {
    check_result.status=false;
    check_result.message=err_message;
    return check_result;
  }
  else
  {
    check_result.status=true;
    check_result.messsage="";
    return check_result;
  }
}
/**
 * 检验控件时间
 * @param field_name_name:控件名称
 * @param date_field:控件
 * @return
 */
function check_date(field_name,date_field)
{
  var date_string = date_field.value;
  var date_array = date_get(date_string,"-");
  var result = new Array();
  result = date_check(date_array,field_name);
  if(result.status == false)
  {
    alert(result.message);
    jump_field(date_field);
  }
  return result;
}
/**
 * 获得时间字符串
 * @param date_string:日期串
 * @param marker:日期分隔符 如果不存在:""
 * @return:数组：date_array
 *               date_array.year=YYYY
 *               date_array.month=MM
 *               date_array.day=DD
 *               date_array.hour=HH
 *               date_array.minute=MM
 *               date_array.second=SS
 *               date_array.datestring=YYYYMMDD
 *               date_array.timestring=YYYYMMDDHHMISS
 */
function date_get(date_string,marker)
{
  var date_array = new Array();
  var year = "";
  var month = "";
  var day = "";
  var hour = "";
  var minute = "";
  var second = "";
  if (date_string.length != 0)
  {
    if (marker != "")							//如果传入的字符串有分隔符
    {
      year = date_string.substr(0,4);
      month = date_string.substr(5,2);
      day = date_string.substr(8,2);
      hour = date_string.substr(11,2);
      minute = date_string.substr(14,2);
      second = date_string.substr(17,2);
    }
    else									//如果传入的字符串没有分隔符
    {
      year = date_string.substr(0,4);
      month = date_string.substr(4,2);
      day = date_string.substr(6,2);
      hour = date_string.substr(8,2);
      minute = date_string.substr(10,2);
      second = date_string.substr(12,2);
    }

    date_array.year = year;
    date_array.month = month;
    date_array.day = day;
    date_array.hour = hour;
    date_array.minute = minute;
    date_array.second = second;
    date_array.datestring = year + month + day + "";
    date_array.timestring = year + month + day + hour + minute + second + "";
    return date_array;
  }

  date_array.year="";
  date_array.month="";
  date_array.day="";
  date_array.hour = "";
  date_array.minute = "";
  date_array.second = "";
  date_array.datestring = "";
  date_array.timestring = "";

  return date_array;
}
/**
 * 检验日期格式
 * @param date_arry:日期数组
 * @param field_name:控件名称
 * @return:数组check_result
 *        check_result.status  true/false 校验成功/校验失败
 *        check_result.message  空串(成功)/提示信息(失败)
 */
function date_check(date_array,field_name)
{
  var check_result = new Array();

  //获得数字。（页面中）
  var year = date_array.year;
  var month = date_array.month;
  var day = date_array.day;
  var hour = date_array.hour;
  var minute = date_array.minute;
  var second = date_array.second;

  //年份必须为YYYY(用正则表达式判断是否是数字)
  var err_message='日期必须符合YYYY-MM-DD hh:mm:ss格式,年份必须由YYYY格式的四位数字组成!';
  //var year_patten=/^[0-9]{4,4}$/i;
  var year_patten=/^\d+$/i;
  var matchArray = year.match(year_patten);
  if (year.length!=0 && matchArray==null)
  {
    check_result.status=false;
    check_result.message=err_message;
    return check_result;
  }
  //月必须为MM(用正则表达式判断是否是数字)
  var err_message='日期必须符合YYYY-MM-DD hh:mm:ss格式,月份必须由MM格式的二位数字组成!';
  //var month_patten=/^[0-9]{2,2}$/i;
  var month_patten=/^\d+$/i;
  var matchArray = month.match(month_patten);
  if (month.length!=0 && matchArray==null)
  {
    check_result.status=false;
    check_result.message=err_message;
    return check_result;
  }
  //日期必须为DD(用正则表达式判断是否是数字)
  var err_message='日期必须符合YYYY-MM-DD hh:mm:ss格式,日期必须由DD格式的二位数字组成!';
  //var day_patten=/^[0-9]{2,2}$/i;
  var day_patten=/^\d+$/i;
  var matchArray = day.match(day_patten);
  if (day.length!=0 && matchArray==null)
  {
    check_result.status=false;
    check_result.message=err_message;
    return check_result;
  }
  //日期必须为DD(用正则表达式判断是否是数字)
  var err_message='日期必须符合YYYY-MM-DD hh:mm:ss格式,小时必须由hh格式的二位数字组成!';
  var hour_patten=/^[0-9]{2,2}$/i;
  //var hour_patten=/^\d+$/i;
  var matchArray = hour.match(hour_patten);
  if (hour.length!=0 && matchArray==null)
  {
    check_result.status=false;
    check_result.message=err_message;
    return check_result;
  }
  //日期必须为DD(用正则表达式判断是否是数字)
  var err_message='日期必须符合YYYY-MM-DD hh:mm:ss格式,分钟必须由mm格式的二位数字组成!';
  var minute_patten=/^[0-9]{2,2}$/i;
  //var minute_patten=/^\d+$/i;
  var matchArray = minute.match(minute_patten);
  if (minute.length!=0 && matchArray==null)
  {
    check_result.status=false;
    check_result.message=err_message;
    return check_result;
  }
  //日期必须为DD(用正则表达式判断是否是数字)
  var err_message='日期必须符合YYYY-MM-DD hh:mm:ss格式,日期必须由ss格式的二位数字组成!';
  var second_patten=/^[0-9]{2,2}$/i;
  //var second_patten=/^\d+$/i;
  var matchArray = second.match(second_patten);
  if (second.length!=0 && matchArray==null)
  {
    check_result.status=false;
    check_result.message=err_message;
    return check_result;
  }


  var year_int=parseInt(year);
  var month_int=parseInt(month);
  var day_int=parseInt(day);

  if(month.substr(0,1) == "0")
    month_int = parseInt(month.substr(1,1));
  if(day.substr(0,1) == "0")
    day_int = parseInt(day.substr(1,1));

  if ((year_int%4==0)&&(year_int%100!=0) || (year_int%400==0))
  {
    var day_number=new Array(31,29,31,30,31,30,31,31,30,31,30,31);
  }
  else
  {
    var day_number=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
  }
  if (year_int<1900)
  {
    var err_message = field_name+"的年没有意义!请重新输入!";

    check_result.status=false;
    check_result.message=err_message;
    return check_result;
  }
  if (month_int<1 || month_int>12)
  {
    var err_message = field_name+"的月份不正确!请确认符合'YYYY-MM-DD hh:mm:ss'格式!";

    check_result.status=false;
    check_result.message=err_message;
    return check_result;
  }
  if (day_int<1 || day_int>day_number[(month-1)])
  {
    var err_message = field_name+"的日期部分不正确!请确认符合'YYYY-MM-DD hh:mm:ss'格式!";

    check_result.status=false;
    check_result.message=err_message;
    return check_result;
  }
  if (hour<0 || hour>60)
  {
    var err_message = field_name+"的小时部分不正确!请确认符合'YYYY-MM-DD hh:mm:ss'格式!";

    check_result.status=false;
    check_result.message=err_message;
    return check_result;
  }
  if (minute<0 || minute>60)
  {
    var err_message = field_name+"的分钟部分不正确!请确认符合'YYYY-MM-DD hh:mm:ss'格式!";

    check_result.status=false;
    check_result.message=err_message;
    return check_result;
  }
  if (second<0 || second>60)
  {
    var err_message = field_name+"的秒钟部分不正确!请确认符合'YYYY-MM-DD hh:mm:ss'格式!";

    check_result.status=false;
    check_result.message=err_message;
    return check_result;
  }

  check_result.status=true;
  check_result.message="";
  return check_result;
}
/**
 * 光标跳转
 * @param to_field:跳转控件
 * @return: true/false  成功/失败
 */
function jump_field(to_field)
{
  if (false==to_field.disabled || false==to_field.readOnly)
  {
    var the_form_name = to_field.form.name;
    var the_field_name = to_field.name;

    var do_focus="document."+the_form_name+"."+the_field_name+".focus()";
    var do_select="document."+the_form_name+"."+the_field_name+".select()";

    eval(do_focus);
    if((to_field.type=="text"||to_field.type=="password")&&to_field.value!="")
    {
      eval(do_select);
    }
    return true;
  }
  else
  {
    return false;
  }
}
/**
 * 校验函数
 * @param this_field:控件
 * @param check_kind:检验类型
 * ck_number:    只能是数字
 * ck_decimal:   只能是数字和小数点
 * ck_comma:     只能是数字和逗号
 * ck_single:    只能是数字和字母
 * ck_sample:    由字母、数字和下划线组成并以字母或数字开头
 * ck_underline: 由字母、数字和下划线组成
 * ck_noblank:   不能包含空格
 * ck_date:      只能是数字和横线
 * ck_phone:     标准电话格式：(86)-010-88888888-888
 * @return:  true/false  成功/失败
 */
function decimal_check(this_field,check_kind)
{
  if (check_kind == "ck_number")			//只能是数字
  {
    var decimal_expr = /^[\d]+$/;
    var match_array = this_field.value.match(decimal_expr);
  }
  else if (check_kind == "ck_decimal")	//只能是数字和小数点
  {
    var decimal_expr = /^[\d\.]+$/;
    var match_array = this_field.value.match(decimal_expr);
  }
  else if (check_kind == "ck_comma")		//只能是数字和逗号
  {
    var decimal_expr = /^[\d\,]+$/;
    var match_array = this_field.value.match(decimal_expr);
  }
  else if (check_kind == "ck_single")		//只能是数字和字母
  {
    var decimal_expr = /^[a-zA-Z0-9]{0,}$/;
    var match_array = this_field.value.match(decimal_expr);
  }
  else if (check_kind == "ck_sample")	//由字母、数字和下划线组成并以字母或数字开头
  {
    var decimal_expr = /^[a-zA-Z0-9]{1,}[\w]{0,}/;
    var match_array = this_field.value.match(decimal_expr);
  }
  else if (check_kind == "ck_underline")	//由字母、数字和下划线组成
  {
    var decimal_expr = /^[\w]+$/;
    var match_array = this_field.value.match(decimal_expr);
  }
  else if (check_kind == "ck_noblank")	//不能包含空格
  {
    var the_value = this_field.value;
    var first_point = the_value.indexOf(' ');
    if (first_point != -1)
		       {	var match_array = null;}
    else
    {	var match_array = 1;}
  }
  else if (check_kind == "ck_date")	//只能是数字和横线
  {
    var decimal_expr = /^[\d\-]+$/;
    var match_array = this_field.value.match(decimal_expr);
  }
  else if (check_kind == "ck_phone")	//标准电话格式：(86)-010-88888888-888
  {
    var decimal_expr = /^((\(\d+\)){0,1}(\-{0,1}\d+\-{0,1}\d+\-{0,1}\d+)\,{0,1})*$/;
    var match_array = this_field.value.match(decimal_expr);
  }
  else
  {	var match_array = 1;}

  if (match_array == null)
		   {	return false;}
  else
  {	return true;
  }
}
/**
 * 设置控件的值、最大长度、显示状态
 * @param  to_field:控件
 * @param  set_value:控件值
 * @param  set_status:控件状态(1-可用；2-不可用；3-只读；其他值-不设置状态；(0作为默认值：不改变当前状态)
 * @param  set_length:控件长度要(设置的控件的最大长度；(this.maxLength作为默认值：不改变当前最大长度)
 * @return
 */
function set_field(to_field,set_value,set_status,set_length)
{
  to_field.value = set_value;

  if(to_field.type=="text")
		   {	to_field.maxLength=set_length;	}	//如不需设置最大长度，则参数set_length可传：this.maxLength


  if (parseInt(set_status) == 1)			//设置成可写状态
  {
    to_field.disabled = false;
    to_field.readOnly = false;
    to_field.enabled = true;
  }
  else if (parseInt(set_status) == 2)		//置灰
  {
    to_field.enabled = false;
    to_field.disabled = true;
  }
  else if (parseInt(set_status) == 3)		//设置成只读状态
  {
    to_field.disabled = false;
    to_field.enabled = true;
    to_field.readOnly = true;
  }
}

/**
 * //处理空格

 * @param  inputString:控件值
 * @return
 */
function trim(inputString) {

  // Removes leading and trailing spaces from the passed string. Also

  // removes consecutive spaces and replaces it with one space.

  var retValue = inputString;

  if (retValue==null){

    return "";

  }

  var ch = retValue.substring(0, 1);

  while (ch == " ") { // Check for spaces at the beginning of the string

    retValue = retValue.substring(1, retValue.length);

    ch = retValue.substring(0, 1);

  }

  ch = retValue.substring(retValue.length-1, retValue.length);

  while (ch == " ") { // Check for spaces at the end of the string

    retValue = retValue.substring(0, retValue.length-1);

    ch = retValue.substring(retValue.length-1, retValue.length);

  }

  while (retValue.indexOf("  ") != -1) { // Note that there are two spaces in the string - look for multiple spaces within the string

    retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length); // Again, there are two spaces in each of the strings

  }

  return retValue; // Return the trimmed string back to the user

} // Ends the "trim" function

//以下部分由李亚洁加入
//验证密码
function validatePassword(strPassword){
  if(!notNull(strPassword)){
    alert("密码不能为空");
    return false;
  }
  else if(!notBlank(strPassword)){
    alert("密码不能包含空字符");
    return false;
  }
  else{
    if(strPassword.length<9){
      return true;
    }
    else{
      alert("密码长度不能超过8位");
      return false;
    }
  }
}
//验证区号
function validateAreaCode(strAreaCode){
  if(!notNull(strAreaCode)){
    alert("电话号码格式：区号－电话号码 \n区号不能为空");
    return false;
  }
  else if(!isDigits(strAreaCode)){
    alert("电话号码格式：区号－电话号码 \n区号必须是数字");
    return false;
  }
  else{
    if(strAreaCode.length<5 && strAreaCode.length>1)
      return true;
    else{
      alert("电话号码格式：区号－电话号码 \n区号长度在2-4位之间");
      return false;
    }
  }
}
//电话号码
function validateTelCode(strTelCode){
  if(!notNull(strTelCode)){
    alert("电话号码格式：区号－电话号码 \n电话号码不能为空");
    return false;
  }
  else if(!isDigits(strTelCode)){
    alert("电话号码格式：区号－电话号码 \n电话号码必须是数字");
    return false;
  }
  else{
    if(strTelCode.length<29 && strTelCode.length>6)
      return true;
    else{
      alert("电话号码格式：区号－电话号码 \n电话号码长度在7-28位之间");
      return false;
    }
  }
}
//检验是否为空
function notNull(str) {
  if (str.length == 0 )
    return false
    else
      return true
      }
//检验是否含空字符
      function notBlank(str) {
  for (i = 0; i < str.length; i++) {
    if (str.charAt(i) == ' '){
      return false
    }
  }
  return true
      }
//检验长度
      function isSize(str, size) {
	if (str.length <= size)
	  return true
	  else
	    return false
	    }
//检验是否为数字
	    function isDigits(str) {
	var i
	for (i = 0; i < str.length; i++) {
	  mychar = str.charAt(i)
		 if (mychar < "0" || mychar > "9")
		   return false
	  }
	  return true
	  }
/*
检验证件类别与证件号码否相符
输入参数：
  identityName:需要检测的证件类型（中文名称）
  identityType:需要检测的证件类型的控件名称
  identityCode:需要检测的证件号码的控件名称
*/
	  function check_Identity(identityName,identityType,identityCode)
	  {
	    var cusCertificate1 = identityType.options[identityType.selectedIndex].text;
	    var check_identity = new Array();
	    check_identity.message = "";
	    check_identity.status = true;
	    if(cusCertificate1.indexOf("15")!=-1 && identityCode.value.length!=15)
	    {
	      check_identity.message = identityName+"号码位数应该是15位！";
	      check_identity.status = false;
	    }
	    if(cusCertificate1.indexOf("18")!=-1 && identityCode.value.length!=18)
	    {
	      check_identity.message = identityName+"号码位数应该是18位！";
	      check_identity.status = false;
	    }
	    return check_identity;
	  }
	  /**
判断15位身份证号码是否合法
*/
	  function check15NO(Idestr,ide15NO)
	  {
	    if(!isDigits(ide15NO))
	    {
	      alert(Idestr+'15位证件号码只能是数字！');
	      return false;
	    }
	    var sMonth = ide15NO.substring(8,10)/1;
	    if(sMonth>12 || !sMonth>0)
	    {
	      alert(Idestr+'证件号码不合法！');
	      return false;
	    }
	    var sDay = ide15NO.substring(10,12)/1;
	    if(!(sDay>0))
	    {
	      alert(Idestr+'证件号码不合法！');
	      return false;
	    }
	    var sYear = ide15NO.substring(6,8)/1;
	    if(sMonth==2)
	    {
	      if(sYear%4==0 && sDay>29)
	      {
		alert(Idestr+'证件号码不合法！');
		return false;
	      }
	      if(sYear%4!=0 && sDay>28)
	      {
		alert(Idestr+'证件号码不合法！');
		return false;
	      }
	    }
	    if(sMonth==4 || sMonth==6 || sMonth==9 || sMonth==11)
	    {
	      if(sDay>30)
	      {
		alert(Idestr+'证件号码不合法！');
		return false;
	      }
	    }
	    if(sMonth==1 || sMonth==3 || sMonth==5 || sMonth==7 || sMonth==8 || sMonth==10 || sMonth==12)
	    {
	      if(sDay>31)
	      {
		alert(Idestr+'证件号码不合法！');
		return false;
	      }
	    }
	    return true;
	  }

	  /**
判断18位身份证号码是否合法
*/
	  function check18NO(Idestr,ide18NO)
	  {
	    if(!isDigits(ide18NO.substring(0,ide18NO.length-1)))
	    {
	      alert(Idestr+'18位证件号码中含有非法字符！');
	      return false;
	    }
	    var current = new Date();
	    var syear = current.getFullYear()/1;
	    var sYear = ide18NO.substring(6,10)/1;
	    if(syear<=sYear)
	    {
	      alert(Idestr+'证件号码不合法！');
	      return false;
	    }
	    var sMonth = ide18NO.substring(10,12)/1;
	    if(sMonth>12 || !sMonth>0)
	    {
	      alert(Idestr+'证件号码不合法！');
	      return false;
	    }
	    var sDay = ide18NO.substring(12,14)/1;
	    if(!(sDay>0))
	    {
	      alert(Idestr+'证件号码不合法！');
	      return false;
	    }
	    if(sMonth==2)
	    {
	      if(sYear%4==0 && sDay>29)
	      {
		alert(Idestr+'证件号码不合法！');
		return false;
	      }
	      if(sYear%4!=0 && sDay>28)
	      {
		alert(Idestr+'证件号码不合法！');
		return false;
	      }
	    }
	    if(sMonth==4 || sMonth==6 || sMonth==9 || sMonth==11)
	    {
	      if(sDay>30)
	      {
		alert(Idestr+'证件号码不合法！');
		return false;
	      }
	    }
	    if(sMonth==1 || sMonth==3 || sMonth==5 || sMonth==7 || sMonth==8 || sMonth==10 || sMonth==12)
	    {
	      if(sDay>31)
	      {
		alert(Idestr+'证件号码不合法！');
		return false;
	      }
	    }
	    return true;
	  }
//禁止右键
	  function helpor()
	  {
	    if (event.button==2)alert('仅供浏览!谢谢!\n\n若有问题请与我们联系! ')
	      if (event.button==3)alert('仅供浏览!谢谢!\n\n若有问题请与我们联系! ')
		}


/**
 * 日期字符串1不能早于日期字符串2
 * @param start_date_string:起始日期串:YYYY-MM-DD hh:mm:ss
 * @param end_date_string:结束日期串：YYYY-MM-DD hh:mm:ss
 * @param err_message:出错时，显示的错误提示信息
 * @return:数组check_result
 *        check_result.status  true/false 校验成功/校验失败
 *        check_result.message  空串(成功)/提示信息(失败)
 */
function date_start_end (start_date_string,end_date_string,err_message)

{
	var start_date = start_date_string.value;
	var end_date   = end_date_string.value;
	var splitone = '-';
	var splittwo = ':';
	var splitthree = ' ';
	var temp_str = '';
	var check_result = new Array();

	for (var i=1;i<3;i++)
	{
		start_date = start_date.replace(splitone,'*');
		start_date = start_date.replace(splittwo,'*');
		start_date = start_date.replace(splitthree,'*');
		end_date = end_date.replace(splitone,'*');
		end_date = end_date.replace(splittwo,'*');
		end_date = end_date.replace(splitthree,'*');
	}
    while (start_date.indexOf("*") != -1)
    {
		temp_str = start_date.substring(0,start_date.indexOf("*"));
		start_date=temp_str+start_date.substring((start_date.indexOf("*")+1),start_date.length);
    }

	while (end_date.indexOf("*") != -1)
	{
		temp_str = end_date.substring(0,end_date.indexOf("*"));
		end_date=temp_str+end_date.substring((end_date.indexOf("*")+1),end_date.length);
    }
    start_date = start_date + '';
    end_date = end_date + '';

	if(start_date.length != 0 && end_date.length != 0 && parseInt(start_date)>=parseInt(end_date))
	{
		check_result.status=false;
		check_result.message=err_message;
		return check_result;
	}

	check_result.status=true;
	check_result.message="";
	return check_result;
}
//add by liyajie 2003-07-18
//过滤非数字键
function isKeyNumber()
{
  var s_keycode=(navigator.appname=="Netscape")?event.which:event.keyCode;
  if((s_keycode>=48 && s_keycode<=57) || s_keycode==13)
  {
     return true;
  }
  else
  {
     return false
  }
}
//只允许输入数字和“－”符
function isKeyNumber1()
{
  var s_keycode=(navigator.appname=="Netscape")?event.which:event.keyCode;
  if( (s_keycode>=48 && s_keycode<=57) || s_keycode==45 || s_keycode==13)
  {
     return true;
  }
  else
  {
     return false
  }
}
//只允许输入数字和“.”符
function isKeyNumber2()
{
  var s_keycode=(navigator.appname=="Netscape")?event.which:event.keyCode;
  if( (s_keycode>=48 && s_keycode<=57) || s_keycode==46 || s_keycode==13)
  {
     return true;
  }
  else
  {
     return false;
  }
}
//允许输入数字和“ ”符
function isKeyNumber3()
{
  var s_keycode=(navigator.appname=="Netscape")?event.which:event.keyCode;
  if((s_keycode>=48 && s_keycode<=57) || s_keycode==32 || s_keycode==13)
  {
     return true;
  }
  else
  {
     return false
  }
}
//处理回车键
function isKeyEnter(fd)
{
    var p=(navigator.appname=="Netscape")?event.which:event.keyCode;
    if(p==13)
    {
      if(!fd.disabled)
      {
	fd.focus();
      }
    }
}
//处理回车键支持只输入数字并焦点转移
function isNumberKeyEnter(fd){
  if(isKeyNumber()){
    isKeyEnter(fd);
    return true;
  }
  else
    return false;
}

//处理回车键支持只允许输入数字和“－”符，并焦点转移
function isNumberKeyEnter1(fd){
  if(isKeyNumber1()){
    isKeyEnter(fd);
    return true;
  }
  else
    return false;
}
//处理回车键支持只输入数字和小数点并焦点转移
function isNumberKeyEnter2(fd){
  if(isKeyNumber2()){
    isKeyEnter(fd);
    return true;
  }
  else
    return false;
}
//处理回车键支持允许输入数字和“ ”符,并焦点转移
function isNumberKeyEnter3(fd){
  if(isKeyNumber3()){
    isKeyEnter(fd);
    return true;
  }
  else
    return false;
}
//控件焦点转移事件
function nextFocus(length, curentobj, nextobj)
{
  if((curentobj.value.length) == length)
    if(event.keyCode>=48)
      nextobj.focus();
}
//校验email
//输入参数：
//	1。field_name:错误提示信息"必须是有效的邮件地址！"前面要显示的文字：一般是要校验的页面控件的标签名字；
//	2。form_field：要校验的页面控件
//返回值：
//	数组：check_result
//		数组元素check_result.status:true/false	校验成功/失败;
//		数组元素check_result.message:""/错误提示信息	空串(校验成功的时候)/错误提示信息(校验失败的时候);
function email_check(field_name,form_field)
{
  var err_message=field_name+'必须是有效的邮件地址！';
  var mail_patten=/^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.){1,4}[a-z]{2,3}$/i;
  var emailvalue=form_field.value;
  var matchArray = emailvalue.match(mail_patten);
  var check_result = new Array();
  if (emailvalue.length!=0 && matchArray==null)
  {
    check_result.status=false;
    check_result.message=err_message;
    return check_result;
  }
  else
  {
    check_result.status=true;
    check_result.message="";
    return check_result;
  }
}
//输出email的检验结果
function outemailresult(field_name,form_field)
{
  var emailObj = email_check(field_name,form_field);
  if(!emailObj.status)
  {
    alert(emailObj.message);
  }
}

//使用者信息跟随客户信息变化
function UserInfoChange(obj)
{
  if(obj=='First_name')
  {
    myform.User_name.value = myform.First_name.value;
  }
  else if(obj=='Identity_kind')
  {
    myform.User_identity_kind.value = myform.Identity_kind.value;
  }
  else if(obj=='Identity_code')
  {
    myform.User_identity_code.value = myform.Identity_code.value;
  }
}

/**
判断15位身份证号码是否合法
*/
function check15NO(ide15NO)
{
  if(ide15NO.length != 15)
  {
    alert('证件号码应该是15位！');
    return false;
  }
  if(!isDigits(ide15NO))
  {
    alert('15位证件号码只能是数字！');
    return false;
  }
  var sMonth = ide15NO.substring(8,10)/1;
  if(sMonth>12 || !sMonth>0)
  {
    alert('证件号码不合法！');
    return false;
  }
  var sDay = ide15NO.substring(10,12)/1;
  if(!(sDay>0))
  {
    alert('证件号码不合法！');
    return false;
  }
  var sYear = ide15NO.substring(6,8)/1;
  if(sMonth==2)
  {
    if(sYear%4==0 && sDay>29)
    {
      alert('证件号码不合法！');
      return false;
    }
    if(sYear%4!=0 && sDay>28)
    {
      alert('证件号码不合法！');
      return false;
    }
  }
  if(sMonth==4 || sMonth==6 || sMonth==9 || sMonth==11)
  {
    if(sDay>30)
    {
      alert('证件号码不合法！');
      return false;
    }
  }
  if(sMonth==1 || sMonth==3 || sMonth==5 || sMonth==7 || sMonth==8 || sMonth==10 || sMonth==12)
  {
    if(sDay>31)
    {
      alert('证件号码不合法！');
      return false;
    }
  }
  return true;
}

/**
判断18位身份证号码是否合法
*/
function check18NO(ide18NO)
{
  if(ide18NO.length != 18)
  {
    alert('证件号码应该是18位！');
    return false;
  }
  if(!isDigits(ide18NO.substring(0,ide18NO.length-1)))
  {
    alert('18位证件号码中含有非法字符！');
    return false;
  }
  var current = new Date();
  var syear = current.getFullYear()/1;
  var sYear = ide18NO.substring(6,10)/1;
  if(syear<=sYear)
  {
    alert('证件号码不合法！');
    return false;
  }
  var sMonth = ide18NO.substring(10,12)/1;
  if(sMonth>12 || !sMonth>0)
  {
    alert('证件号码不合法！');
    return false;
  }
  var sDay = ide18NO.substring(12,14)/1;
  if(!(sDay>0))
  {
    alert('证件号码不合法！');
    return false;
  }
  if(sMonth==2)
  {
    if(sYear%4==0 && sDay>29)
    {
      alert('证件号码不合法！');
      return false;
    }
    if(sYear%4!=0 && sDay>28)
    {
      alert('证件号码不合法！');
      return false;
    }
  }
  if(sMonth==4 || sMonth==6 || sMonth==9 || sMonth==11)
  {
    if(sDay>30)
    {
      alert('证件号码不合法！');
      return false;
    }
  }
  if(sMonth==1 || sMonth==3 || sMonth==5 || sMonth==7 || sMonth==8 || sMonth==10 || sMonth==12)
  {
    if(sDay>31)
    {
      alert('证件号码不合法！');
      return false;
    }
  }
  return true;
}


//各子业务的关联和互斥的处理
function SetCheckBoxValue(id,idStr)
{
  var compartFlag = idStr.indexOf("&");
  var relateStr = idStr.substring(0,compartFlag);
  var metuxStr = idStr.substring(compartFlag+1);
  if(eval("myform.C"+id+".checked"))
  {
    eval("myform.C"+id+".value='1'");
    var relateStrtmp = relateStr;
    var i =0;
    while(relateStrtmp.indexOf("1")!=-1)
    {
      var relateId = relateStrtmp.indexOf("1");
      var subFlag = relateId;
      relateId = relateId + i + 1;
      if(id>relateId)
      {
	eval("myform.C"+relateId+".checked=true");
	eval("myform.C"+relateId+".value='1'");
      }
      if(relateStrtmp.length>relateId)
      {
	      i=relateId;
	relateStrtmp = relateStrtmp.substring(subFlag+1);
      }
      if(myform.checkNum.value<relateId)
	break;
    }
    var metuxStrtmp = metuxStr;
    var j = 0;
    while(metuxStrtmp.indexOf("1")!=-1)
    {
      var metuxId = metuxStrtmp.indexOf("1");
      var strFlag = metuxId;
      metuxId = metuxId + j + 1;
      if(id>metuxId)
      {
	eval("myform.C"+metuxId+".checked=false");
	eval("myform.C"+metuxId+".value='0'");
      }
      if(metuxStrtmp.length>metuxId)
      {
	j=metuxId;
	metuxStrtmp = metuxStrtmp.substring(strFlag+1);
      }
      if(myform.checkNum.value<metuxId)
	break;
    }
  }
  else
  {
    eval("myform.C"+id+".value='0'");
  }
}
//用yyyy-mm-dd的形式显示日期
function formattime(obj)
{
    var t2 = obj.value+"";
    var ss=event.keyCode;
    if(t2.length==4 || t2.length==7)
    {
	obj.value=t2+"-";
    }
    if (t2.length==6)
    {
	var x=t2.substr(5,1);
	var y=t2.substring(0,5);
	x=parseInt(x);
	if(x>1)
	{
	     obj.value=y+"0"+x+"-";
	}
    }
    if (t2.length==9)
    {
	var x=t2.substr(8,1);
	var y=t2.substring(0,8);
	x=parseInt(x);
	if (x>3)
	{
	  obj.value=y+"0"+x;
	}
    }
    if (ss==8)
    {
      if (t2.length==4)
      {
	var x=t2.substring(0,3);
	obj.value=x;
      }
      if (t2.length==7)
      {
	  var x=t2.substring(0,6);
	  obj.value=x;
      }
      if (t2.length==10)
      {
	  var x=t2.substring(0,9);
	  obj.value=x;
      }
    }
    var mm;
    mm=obj.value;
    if(mm.length>10)
    {
	mm=mm.substring(0,10);
	obj.value=mm;
    }
}
//输出email的检验结果
function outemailresult(field_name,form_field)
{
  var emailObj = email_check(field_name,form_field);
  if(!emailObj.status)
  {
    alert(emailObj.message);
  }
}

//根据一个列表框的变化来决定另一个列表框显示的内容
//参数：obj1-调用该函数的列表，
//     obj2-根据obj1的变化而变化的列表，
//     obj3-存储obj2所有值的隐藏域，格式为：obj1Value:obj2Value:obj2Text`obj1Value:obj2Value:obj2Text....
function changeRelationSelect(obj1,obj2,obj3,selectedValue){
  //先将关联的列表清空
  var obj2Length = obj2.length;
  for (var i=0;i<obj2Length;i++){
    obj2.remove(0);
  }
	newOpt=document.createElement("OPTION")
	newOpt.value="00000000";
	newOpt.text="";
	obj2.add(newOpt);

  //获取变化源的值
  var srcValue = obj1.value;
  //获取相关的所有的值
  var allValue = obj3.value;
  //将值转换成数组，格式为obj1Value:obj2Value:obj2Text
  var allArray = new Array();
  allArray = allValue.split('`');
  var length = allArray.length;

  var obj2Array = new Array();
  for(var i=0;i<length;i++){
    obj2Array = new Array();
    obj2Array = allArray[i].split(':');
      if(obj2Array[0]==srcValue){
		newOpt=document.createElement("OPTION")
		newOpt.value=obj2Array[1];
		newOpt.text=obj2Array[2];
		obj2.add(newOpt);
		  if(selectedValue==obj2Array[1]){
		    newOpt.selected = true;
		  }
	  }
  }
}

//根据一个列表框的变化和一个相关数据来决定另一个列表框显示的内容
//参数：obj1-调用该函数的列表，
//     obj2-根据obj1的变化而变化的列表，
//     obj3-存储obj2所有值的隐藏域，格式为：obj2Value:obj2Text`obj2Value:obj2Text....
//     obj4-存储obj1与obj2相关的信息，格式为：obj1Value:obj2Value`obj1Value:obj2Value...
function changeRelationSelect1(obj1,obj2,obj3,obj4,selectedValue){
  //先将关联的列表清空
  var obj2Length = obj2.length;
  for (var i=0;i<obj2Length;i++){
    obj2.remove(0);
  }
	newOpt=document.createElement("OPTION")
	newOpt.value="00000000";
	newOpt.text="";
	obj2.add(newOpt);

  //获取变化源的值
  var srcValue = obj1.value;
  //获取相关的所有的值
  var allValue = obj3.value;
  //将值转换成数组，单元格式为obj2Value:obj2Text
  var allArray = new Array();
  allArray = allValue.split('`');
  var length = allArray.length;

  //获取关联信息
  var relValue = obj4.value;
  //转换城数组，单元格式为obj1Value:obj2Value
  var relArray = new Array();
  relArray = relValue.split('`');
  var relLength = relArray.length;

  var obj2Array ;
  var obj4Array ;

  obj4Array = new Array();
  for(var j=0;j<relLength;j++)
  {
    obj4Array = relArray[j].split(':');

	if(obj4Array[0]==srcValue)
	{
	  for(var i=0;i<length;i++)
	  {
	obj2Array = new Array();
	obj2Array = allArray[i].split(':');

	if(obj4Array[1]==obj2Array[0])
	    {
//		  alert(obj4Array[0]+" "+srcValue+" "+obj4Array[1]+" "+obj2Array[0])
		  newOpt=document.createElement("OPTION")
		  newOpt.value=obj2Array[0];
		  newOpt.text=obj2Array[1];
		  obj2.add(newOpt);
		  if(selectedValue==obj2Array[0]){
		    newOpt.selected = true;
		  }
	    }
	  }
	}
  }
}

//根据第一项是否可用来决定某些焦点转移顺序
//参数：obj1焦点,obj2:others
function moveKeyEnter(obj1,obj2){
  if(obj1 == null || typeof(obj1) == "undefined" || typeof(obj1) == "unknown")
  {
    isKeyEnter(obj1);
  }
  else
  {
    isKeyEnter(obj2);
  }
}
//预算后选择改变某些项，需重新预算
function BudgetAgain()
{
  document.myform.BBudget.disabled = false;
  document.myform.BSubmit.disabled = true;
}
//焦点从证件类别转移之后，校验15、18位身份证对应的证件号码位数是否正确
function CheckIDCardLength(idCardType,obj)
{
  var idCard = idCardType.value;
  if(obj.value != '' && idCard == '1')
  {
    if(!check15NO(obj.value))
    {
      obj.focus();
      return false;
    }
  }
  else if(obj.value != '' && idCard == '2')
  {
    if(!check18NO(obj.value))
    {
      obj.focus();
      return false;
    }
  }
}
//焦点从证件号码转移之后，校验15、18位身份证对应的证件号码位数是否正确
function CheckIDCardNOLength(idCardType,obj)
{
  var idCard = idCardType.value;
  if(idCard == '1')
  {
    if(!check15NO(obj.value))
    {
      obj.focus();
      return false;
    }
  }
  else if(idCard == '2')
  {
    if(!check18NO(obj.value))
    {
      obj.focus();
      return false;
    }
  }
}
//预算后选择改变某些项，需重新预算
function BudgetAgain()
{
  document.myform.BBudget.disabled = false;
  document.myform.BSubmit.disabled = true;
}