//=============================================
//建立日期：2004年3月25日
//作者：杜保发@东南融通
//功能概述：通用函数集，供系统全局调用
//调用方法：在调用文件头引入即可，如下：
//<head>
//<script src="/js/util.js" ></script>
//</head>
//=============================================
//==========================================
//功能: 去掉字符左边的空格
//输入参数:要格式化的字符串
//返回值:去掉左边空格的字符串
//调用方法
//==========================================
function ltrim(str)
{
    if (str==null)  return null;
    var s="";
    for (var i=0;i<str.length;i++)
    {
        if (str.charAt(i)!=" ")
        {
            s=str.substr(i);
            break;
        }
    }
    return s;
}

//==========================================
//功能: 去掉字符右边的空格
//输入参数:要格式化的字符串
//返回值:去掉右边空格的字符串
//调用方法
//==========================================
function rtrim(str)
{
    if (str==null)   return null;
    var s="";
    for (var i=str.length-1;i>=0;i--)
    {
        if (str.charAt(i)!=" ")
        {
            s=str.substring(0,i+1);
            break;
        }
    }
    return s;
}

//==========================================
//功能: 去掉字符左右边的空格
//输入参数:要格式化的字符串
//返回值:去掉左右边空格的字符串
//调用方法
//==========================================

function trim(str)
{
	return(ltrim(rtrim(str)));
}

//==========================================
//功能: 字符转为大写
//输入参数:无
//返回值:空
//调用方法:在文本控件里onkeydown="jsUpperCase();"
//==========================================
function jsUpperCase()
{
	if ((window.event.keyCode>=97) && (window.event.keyCode<=122))
	window.event.keyCode = window.event.keyCode-32;
}

//==========================================
//功能: 把输入的字符转为大写
//输入参数:当前对象
//返回值:空
//调用方法:在文本控件里onblur="toUpperCase(this);"
//==========================================
function toJsUpperCase(obj)
{
    try {
        var s = obj.value;
        if (trim(s) == "") return;
        obj.value = s.toUpperCase();
	} catch(e) {
	}
}

//==========================================
//功能: 把输入的字符转为小写
//输入参数:无
//返回值:空
//调用方法:在文本控件里onkeydown="jsLowerCase();"
//==========================================
function jsLowerCase()
{
	if ((window.event.keyCode>=65) && (window.event.keyCode<=90))
		window.event.keyCode = window.event.keyCode+32;
}

//==========================================
//功能: 把输入的字符转为小写
//输入参数:当前对象
//返回值:空
//调用方法:在文本控件里onblur="toJsLowerCase(this);"
//==========================================
function toJsLowerCase(obj)
{
	var s = obj.value;
	if (trim(s) == "") return;
	obj.value = s.toLowerCase();
}
//==========================================
//功能: 只能输入数字
//输入参数:
//obj:输入域对象
//symbol:输入符号，有"-","."两种，用","分开
//返回值:空
//调用方法:在文本控件里onkeypress="typeNumber(this,'.,-');"
//==========================================
function typeNumber(obj,symbol)
{
    var str = trim(obj.value);
    var bDot = false;
    var bNega = false;
    if (typeof(symbol) == 'undefined') symbol = "";
    bDot =  (symbol.indexOf(".")>=0?true:false);
    bNega =  (symbol.indexOf("-")>=0?true:false);
    if (bNega)  //允许输入负号
    {
		//只能第一位为负号
		if (str.length>0 && window.event.keyCode == 45)
		{
            window.event.returnValue = false;
            return;
		}

		//只能输入一个负号
        if (str.indexOf("-")>=0 && window.event.keyCode == 45)
        {
            window.event.returnValue = false;
            return;
        }
    }

    if (bDot)  //允许输入小数点
    {
		//只能输入一个小数点
        if (str.indexOf(".")>=0 && window.event.keyCode == 46)
        {
            window.event.returnValue = false;
            return;
        }
    }

	if (window.event.keyCode<48 || window.event.keyCode>57)
	{
		if ((bDot && window.event.keyCode == 46) || (bNega && window.event.keyCode == 45))
		{
			return;
		}
		window.event.returnValue = false;
	}
}

//==========================================
//功能: 只能输入数字
//输入参数:
//obj:输入域对象
//symbol:输入符号，默认为有"-"
//返回值:空
//调用方法:在文本控件里onkeypress="typeTelNumber(this,'-');"
//==========================================
function typeTelNumber(obj,symbol)
{
    var str = trim(obj.value);
    var bNega = false;
    if (typeof(symbol) == 'undefined') symbol = "-";
    bNega =  (symbol.indexOf("-")>=0?true:false);
    if (bNega)  //允许输入负号
    {
		//负号不能放第一位
		if (str.length==0 && window.event.keyCode == 45)
		{
            window.event.returnValue = false;
            return;
		}
    }
	if (window.event.keyCode<48 || window.event.keyCode>57)
	{
		if (window.event.keyCode == 32){
			return ;
		}
		if (bNega && window.event.keyCode == 45)
		{
			return true;
		}
		window.event.returnValue = false;
	}
}

//==========================================
//功能: 只能输入整数
//输入参数:negative 是否允许输入负数，true:允许输入负数，false:不允许，默认:false
//返回值:空
//调用方法:在文本控件里onkeypress="typeInteger(this,false);"
//==========================================
function typeInteger(obj,negative)
{
    if (typeof(negative) == 'undefined')  negative = false;
    typeNumber(obj,(negative==true?"-":""));
}

//==========================================
//功能: 只能输入浮点数
//参数:
//obj，输入域对象
//negative:是否允许输入负数，true:允许输入负数，false:不允许，默认:false
//返回值:空
//调用方法:在文本控件里onkeypress="typeFloat(this,false);"
//==========================================
function typeFloat(obj,negative)
{
   if (typeof(negative) == 'undefined')  negative = false;
   typeNumber(obj,(negative==true?"-,.":"."));
}

//==========================================
//功能: 只能输入整数
//参数:当前对象
//返回值:boolean
//调用方法:在文本控件里onblur="verifyInteger(this);"
//==========================================
function verifyInteger(obj,negative)
{
    if (typeof(negative) == 'undefined')  negative = false;
    verifyNumber(obj,(negative==true?"-":""));
}

//==========================================
//功能: 只能输入浮点数
//参数:当前对象
//返回值:boolean
//调用方法:在文本控件里onblur="verifyFloat(this);"
//==========================================
function verifyFloat(obj,negative)
{
    if (typeof(negative) == 'undefined')  negative = false;
    verifyNumber(obj,(negative==true?"-,.":"."));
}

//==========================================
//功能: 只能输入有效数字
//参数:
//obj:输入域对象
//symbol:输入符号，有"-","."两种，用","分开
//返回值:boolean
//调用方法:在文本控件里onblur="verifyNumber(this,'-,.');"
//==========================================
function verifyNumber(obj,symbol)
{
    var bDot = false;
    var bNega = false;
    if (typeof(symbol) == 'undefined') symbol = "";
    bDot =   (symbol.indexOf(".")>=0?true:false);
    bNega =  (symbol.indexOf("-")>=0?true:false);
    var piece =  (bNega==false?"正":"")+(bDot == true?"浮点数":"整数")
    var errInfo = "不是有效"+piece+"！\n\n请重新输入！";
    var str = trim(obj.value);
    if (str == "") return true;
	try
	{
		if (!isNumber(str,symbol))
		{
			alert("\"" + str + "\""+errInfo);
			obj.value="";
			obj.focus();
			return false;
		}
	}
	catch (e)
	{
		alert("\"" + str + "\""+errInfo);
		obj.value="";
		obj.focus();
		return false;
	}
	return true;
}

//==========================================
//功能: 验证是否为有效数字，允许用科学计数法，即包含字母E
//str:传入的字符串
//symbol:输入符号，有"-","."两种，用","分开
//返回值:boolean
//调用方法:"
//==========================================

function isNumber(str,symbol)
{
    var bDot = false;
    var bNega = false;
    if (typeof(symbol) == 'undefined') symbol = "";
    bDot =   (symbol.indexOf(".")>=0?true:false);
    bNega =  (symbol.indexOf("-")>=0?true:false);
	var bFlag = true;
	for(var i=0;i<str.length;i++)
	{
		if (str.charCodeAt(i)<48 || str.charCodeAt(i) >57)
		{
		    if (bDot  && str.charCodeAt(i)==46) continue;
		    if (bNega && str.charCodeAt(i)==45) continue;
		    if (str.charCodeAt(i) == 69) continue; //字母 E,科学计数表示法
			bFlag = false;
			break;
		}
	}
	return bFlag;
}
//==========================================
//Purpose:把字符串转化为整数
//参数:s--要转化为整数的字符串
//返回值:转化后的整数
//说明：JavaScript自带的函数对于处理数字字符串前带0或为0的有误，
//如使用parseInt("0025")返回的并不是25，而是21,又如parseInt("0")返回并不是0，而是NaN
//下面的自定义函数可以处理这一Bug
//调用方法:
//==========================================

function parseMyInt(s)
{
	var str = trim(s)
	  if (str == "") return 0;
	  try
	  {
		  for (var i=0;i<str.length;i++)
		  {
			 if (str.charAt(0) != '0')
				break;
			 else
				str = str.substring(1,str.length);
		  }
		 if (str == "")
			 return 0;
		 else
			return parseInt(str);

	  }
	  catch (e)
	  {
		return 0;
	  }
}

function isDigit(s) {
	var str = trim(s);
	if (str == "")
	{
		return false;
	}
	for (var i=0;i<str.length;i++)
	{
		if (isNaN(str.charAt(i)))  //isNaN为真表示不是数字
		{
			return false;
		}
	}
	return true;
}

function mouseout(obj)
{
   try
    {
        obj.borderColorDark  = "transparent";
        obj.borderColorLight = "transparent";
        obj.bgColor = "transparent";
		//document.getElementById(obj.id).borderColorDark ="buttonface";
		//document.getElementById(obj.id).borderColorLight="buttonface";
	 }
	catch(e)
	{
	//Here do something when ocurring error
	}
}

function mouseover(obj)
{
   try
    {
        //alert(obj.id);
        obj.borderColorDark  = "#182474";
        obj.borderColorLight = "#182474";
        obj.bgColor = "#ccccff";
		////document.getElementById(obj.id).borderColorDark ="white";
		//document.getElementById(obj.id).borderColorLight="buttonshadow";
	}
	catch(e)
	{
	//Here do something when ocurring error
	}

}

function mousedown(obj)
{
	try
	{
		//document.getElementById(obj.id).borderColorDark ="buttonshadow";
		//document.getElementById(obj.id).borderColorLight="white";
	}
	catch(e)
	{
	//Here do something when ocurring error
	}

}

function mouseup(obj)
{
	try
	{
		//document.getElementById(obj.id).borderColorDark ="white";
		//document.getElementById(obj.id).borderColorLight="buttonshadow";
	}
	catch(e)
	{
	//Here do something when ocurring error
	}

}

//=================================================================================
//功能: 根据存储值列表和显示值列表动态生成下拉列表
//@param: subSelectName，动态下拉列表的名称
//@param: currValue，下拉列表的当前值
//@param: valueList，用来生成动态下拉列表元素的存储值列表
//@param: textList，用来生成动态下拉列表元素的显示值列表
//@param: valueDelimiter， 储值列表的分隔符，不传入时默认为","
//@param: textDelimiter， 显示值列表的分隔符，不传入时默认为","
//@param: includeEmpty， 是否为下拉列表生成第一个值为空的元素，不传入时默认为不生成。
//@return: true:动态下拉列表生成成功，反之为false
//=================================================================================

function generateSubSelect(subSelectName,currValue,valueList,textList,valueDelimiter,textDelimiter,includeEmpty)
{
    if (subSelectName == "") return false;

    try
    {
        if (typeof(valueDelimiter) == "undefined") valueDelimiter = ",";
        if (typeof(currValue) == "undefined") currValue = "";
        if (typeof(textList) == "undefined") textList = valueList;
        if (typeof(textDelimiter) == "undefined") textDelimiter = valueDelimiter;
        if (typeof(includeEmpty) == "undefined") includeEmpty = false;
        var subSelectObj = document.getElementById(subSelectName);
        for(var i=0;i<subSelectObj.length;)
        {
            subSelectObj.removeChild(subSelectObj.options[i]);
        }
        var a = valueList.split(valueDelimiter);
        var b = textList.split(textDelimiter);
        if (includeEmpty)
            subSelectObj.options.add(new Option("",""));
        for(var i=0;i<a.length;i++)
        {
            subSelectObj.options.add(new Option(trim(b[i]),trim(a[i])));
        }
        if (currValue != "")
        {
            subSelectObj.value = currValue;
        }
    } catch (e)
    {
        return false;
    }
    return true;
}

//=================================================================================
//功能: 控制表单里的全部元素是否可编辑
//@param: frm，表单名字
//@param: bln，表单元素是否可编辑,false:不可编辑，true，可编辑
//@return:
//=================================================================================

//modified by lishujin on 2007-3-29
function ActiveForm(frm, bln){
	for(var i = 0; i < frm.length; i++){
		ActiveObject(frm, frm.item(i), bln);
	}
}

//added by lishujin on 2007-4-3
function ActiveArray(frm, arrName, bln){
	ActiveForm(frm, bln);
	for(var i = 0; i < frm.length; i++){
		if(in_array(frm.item(i).name, arrName)){
			ActiveObject(frm, document.getElementById(frm.item(i).name), !bln);
		}
	}
}

//added by lishujin on 2007-3-29
function ActiveObject(frm, obj, bln){
	//组合框
	if(obj.mark == "custom-select" && obj.type == "text"){
		if(dSelectAdmin.ops[obj.name].readOnly != !bln){
			dSelectAdmin.ops[obj.name].setReadOnly(!bln);
		}
	}
	if(obj.mark == "custom-selectDiv" && obj.type == "text"){
		if(dSelectDivAdmin.ops[obj.name].readOnly != !bln){
			dSelectDivAdmin.ops[obj.name].setReadOnly(!bln);
		}
	}
	//对话框
	if(obj.mark == "custom-dialog" && obj.type == "text"){
		if(isReadOnly(obj) != !bln){
			setReadOnly(obj, !bln);

			//转换className
			if(!bln){ //只读
				var tmp = obj.preClassName;
				obj.preClassName = obj.className;
				obj.className = "zTextBox";
				var tmpTb = document.getElementById(obj.name+"Table");
				if(tmpTb) tmpTb.className=obj.className;
				var tmpBtn = document.getElementById(obj.name+"Btn");
				if(tmpBtn) tmpBtn.style.display="none";
			}
			else{ //可写
				var tmp = obj.preClassName;
				obj.preClassName = obj.className;
				obj.className = (tmp ? tmp : "");
				var tmpTb = document.getElementById(obj.name+"Table");
				if(tmpTb) tmpTb.className=obj.className;
				var tmpBtn = document.getElementById(obj.name+"Btn");
				if(tmpBtn) tmpBtn.style.display="block";
			}
		}
	}
	//组合框的select控件
	if(obj.mark == "custom-select") return;
	if(obj.mark == "custom-selectDiv") return;

	if(obj.type == "text" ||
		obj.type == "password" ||
		obj.type == "file" ||
		obj.type == "textarea"){
		if(isReadOnly(obj) != !bln){
			setReadOnly(obj, !bln);

			//转换className
			if(!bln){ //只读
				var tmp = obj.preClassName;
				obj.preClassName = obj.className;
				obj.className = "zTextBox";
			}
			else{ //可写
				var tmp = obj.preClassName;
				obj.preClassName = obj.className;
				obj.className = (tmp ? tmp : "");
			}
		}
	}
	if(obj.type == "select-one" ||
		obj.type == "checkbox" ||
		obj.type == "radio"){
		if(isDisabled(obj) != !bln){
			setDisabled(obj, !bln);

			//转换className
			if(!bln){ //只读
				var tmp = obj.preClassName;
				obj.preClassName = obj.className;
				obj.className = "zTextBox";

				//添加hidden域保存该值
				if(obj.name.indexOf("edit_") == -1){
					if(obj.type == "select-one"){
						var hiddenObj = document.createElement("INPUT");
						hiddenObj.type = "hidden";
						hiddenObj.name = obj.name;
						hiddenObj.value = obj.value;
						frm.appendChild(hiddenObj);
					}
					else if(obj.type == "checkbox"){
						var hiddenObj = document.createElement("INPUT");
						hiddenObj.type = "hidden";
						hiddenObj.name = obj.name;
						if(obj.value){
							hiddenObj.value = (obj.checked ? obj.value : "");
						}
						else{
							hiddenObj.value = (obj.checked ? "on" : "");
						}
						frm.appendChild(hiddenObj);
					}
					else if(obj.type == "radio"){
						var hasCreateHidden = false;
						var hiddenObj = null;
						for(var i = 0; i < frm.length; i++){
							if(frm.item(i).name == obj.name && frm.item(i).type == "hidden"){
								hasCreateHidden = true;
								hiddenObj = frm.item(i);
								break;
							}
						}

						if(hasCreateHidden){
							if(obj.checked){
								hiddenObj.value = obj.value;
							}
						}
						else{
							hiddenObj = document.createElement("INPUT");
							hiddenObj.type = "hidden";
							hiddenObj.name = obj.name;
							if(obj.checked){
								hiddenObj.value = obj.value;
							}
							frm.appendChild(hiddenObj);
						}
					}
				}
			}
			else{ //可写
				var tmp = obj.preClassName;
				obj.preClassName = obj.className;
				obj.className = (tmp ? tmp : "");

				//去掉hidden域
				if(obj.name.indexOf("edit_") == -1){
					for(var i = 0; i < frm.length; i++){
						if(frm.item(i).name == obj.name && frm.item(i).type == "hidden"){
							frm.item(i).parentNode.removeChild(frm.item(i));
						}
					}
				}
			}
		}
	}
	if(obj.type == "submit" ||
		obj.type == "reset" ||
		obj.type == "button"){
		if(obj.disabled != !bln){
			obj.disabled = !bln;
		}
	}
}

//added by lishujin on 2007-3-29
function isReadOnly(obj){
	if((obj.onclick && obj.onclick.toString().indexOf("setday") != -1) || (obj.preOnclick && obj.preOnclick.toString().indexOf("setday") != -1)){ //日期型控件
		return obj.onclick == "";
	}
	else if(obj.mark == "custom-dialog" && obj.type == "text"){ //对话框
		return obj.dialogReadonly == "true";
	}
	else{
		return obj.readOnly;
	}
}

//added by lishujin on 2007-3-29
function setReadOnly(obj, bln){
	if((obj.onclick && obj.onclick.toString().indexOf("setday") != -1) || (obj.preOnclick && obj.preOnclick.toString().indexOf("setday") != -1)){ //日期型控件
		if(bln){ //只读
			obj.preOnclick = obj.onclick;
			obj.onclick = "";
		}
		else{ //可写
			obj.onclick = obj.preOnclick;
		}
	}
	else if(obj.mark == "custom-dialog" && obj.type == "text"){ //对话框
		obj.dialogReadonly = bln?"true":"false";
		obj.readOnly = bln;
	}
	else{
		obj.readOnly = bln;
	}
}

//added by lishujin on 2007-3-30
function isDisabled(obj){
	return obj.disabled;
}

//added by lishujin on 2007-3-30
function setDisabled(obj, bln){
	obj.disabled = bln;
}

 function getID(target)
 {
    if (typeof(target) == 'undefined') target="";
    if (target=="")
        eval("var objDoc=document;");
    else
        eval("var objDoc="+target+".document;");
	var j= objDoc.all.length;
	var id = "";
	for(var i=0;i<j;i++)
	{
		if (objDoc.all(i).type == "radio")
		{
            if (objDoc.all(i).checked)
            {
                id = objDoc.all(i).value;
                break;
            }
        }
 		if (objDoc.all(i).type == "checkbox")
		{
            if (objDoc.all(i).checked)
            {
                id +=id==""?objDoc.all(i).value:","+objDoc.all(i).value;
            }
        }
	}
	return id;
 }

//==================================================================================
//功能: 通用查询列表弹出框控制函数
//@param: obj,接受返回值的对象列表;
//@param: url,查询列表所对应的文件
//@param: width,弹出框的宽度，默认400px;
//@param: height,弹出框的高度，默认330px;
//@param: multiRows,是否允许在弹出框列表中选取多行,"true"为允许，默认"false"
//@param: isAppend,是否在obj的值后面追加返回值还是用返回值直接覆盖原有obj的值，默认false。
//@param: paramNameList,在url后带的参数对,如paramName1=paramControlName1,paramName2=paramControlName2,...
//@return: void
//==================================================================================

function popUpList(obj,url,width,height,multiRows,isAppend,paramNameList)
{
  try
  {
        if (obj== null || obj=="")  return;
        if (typeof(paramNameList) == 'undefined') paramNameList = "";
        if (typeof(isAppend) == 'undefined') isAppend = false;
        //弹出的列表是否显示checkbox,即可选取多行
        if (typeof(multiRows) == 'undefined') multiRows = "false";

        width = width==""?"400":width;
        height = height==""?"330":height;
        var arr = new Array();
        var objArr = obj.split(",");
        var len = objArr.length;
        //是否返回多列
        arr.multiCols = len>1?"true":"false";
        arr.multiRows = multiRows;
        var sFeature="dialogWidth:"+width+"px;dialogHeight:"+height+"px;Status:0;resizable:1;help:0";
        //paramNameList 参数列表，格式：paramName1=paramControlName1,paramName2=paramControlName2,...
        if (paramNameList != "")
        {
            var paramArr = paramNameList.split(",");
            var paramControlName,paramStr,paramList;
            paramList = "";
            for(var m=0;m<paramArr.length;m++)
            {
                var paramSubArr = paramArr[m].split("=");
                paramControlName = trim(paramSubArr[1]);
                paramStr =  trim(paramSubArr[0])+"="+document.getElementById(paramControlName).value;
                paramList +=  paramList==""? paramStr : "^" + paramStr;
            }
            url += ((url.indexOf("?")==-1) ? "?" : "^") + paramList;
        }
        var result=window.showModalDialog(url,arr,sFeature);
        var oldValue = "";
        if ((typeof(result) != "undefined") && (result != ""))
        {
           if (len>1)
           {
             for(var i=0;i<len;i++)
             {
                oldValue = (isAppend?document.getElementById(objArr[i]).value:"");
                document.getElementById(objArr[i]).value = oldValue+getCellData(result,i);
             }

           } else {
               oldValue = (isAppend?document.getElementById(obj).value:"");
               document.getElementById(obj).value =oldValue +  trim(result);
               document.getElementById(obj).focus();
             }
        }
  }
  catch (e)
  {
    //alert(e);
  }
}

function getCellData(data,colIndex)
{
    if (data == "") return "";
    if (colIndex<0) return "";

    var result = "";
    var resultArr = data.split("\n");
    var rowCount = resultArr.length;
    var firstRow = resultArr[0].split("\t");
    var colCount = firstRow.length;
    if (colIndex>colCount-1) return "";
    for(var i=0;i<rowCount;i++)
    {
        var elementArr = resultArr[i].split("\t");
        result += result == ""?elementArr[colIndex]:","+elementArr[colIndex];
    }
    return result;
}

//=================================================================================
//功能: 生成指定位数的随机数字串，一般用来生成附加码
//@param: len，生成随机数字串的位数
//@return: 生成指定位数的随机数字串
//=================================================================================

function generateDigit(len)
{
	var str = "0123456789";
	var s = "";
	var intRand = 0;
	for(var i=0;i<len;i++)
	{
		intRand = Math.floor(Math.random() * 10) - 1;
		intRand = intRand<0?0:intRand;
		s += str.charAt(intRand);
	}
	return s;
}

function showCalendar(controlName,datePattern)
{

	if (controlName == null ) return;
	var arg=new Array();
	var sUrl="../js/calendar.htm"
	var sFeature="dialogWidth:234px;dialogHeight:200px;Status:0;resizable:0;help:0";
	arg.controlValue = document.getElementById(controlName).value;
	arg.datePattern = datePattern;
	var result=window.showModalDialog(sUrl,arg,sFeature);
	if (result != null || typeof(result) != 'undefined')
	{
		 document.getElementById(controlName).value = result;
	}
}


//测字符串实际长度
String.prototype.actLength = function(){
	var arr=this.match(/[^\x00-\xff]/ig);
	return this.length+(arr==null?0:arr.length);
}

//字符串左取
String.prototype.left = function(num,mode){
	if(!/\d+/.test(num))return(this);
	var str = this.substr(0,num);
	if(!mode) return str;
	var n = str.actLength() - str.length;
	num = num - parseInt(n/2);
	return this.substr(0,num);
}

//字符串右取
String.prototype.right = function(num,mode){
	if(!/\d+/.test(num))return(this);
	var str = this.substr(this.length-num);
	if(!mode) return str;
	var n = str.actLength() - str.length;
	num = num - parseInt(n/2);
	return this.substr(this.length-num);
}

//字符串包含
String.prototype.getCount = function(str,mode){
	return eval("this.match(/("+str+")/g"+(mode?"i":"")+").length");
}

function required(objName,title)
{
    try {
        var obj = document.getElementById(objName);
        if (trim(obj.value)=="")
        {
            alert(title+"不能为空！");
            if (!obj.readOnly){
            	obj.focus();
				if(obj.tagName.toLowerCase()=="select" && Shell){
					Shell.SendKeys("%{DOWN}");
					Shell.Quit;
				}
            }
            return false;
        }
    } catch (e) {
        return false;
    }
    return true;
}
/*限制经营范围中的禁用名称
	目前分以下几类禁用
	1、哲学
	2、社会科学
	3、社科研究
	4、哲学社会科学活动  (已由１过滤掉，在此只是注明)
	5、社会人文科学研究与发展 
*/
function forbidscope(objName,title)
{
    try {
        var obj = document.getElementById(objName);
        if (trim(obj.value)!="")
        {
            var val = trim(obj.value);
            
            if (val.indexOf("哲学")>-1){
            	alert("该企业"+title+"包含'哲学'禁用词语,不符合工商规定,请您重新输入!");
            	if (!obj.readOnly){
            		obj.focus();
            	}
            	return false;
            }else if (val.indexOf("社会科学")>-1){
            	alert("该企业"+title+"包含'社会科学'禁用词语,不符合工商规定,请您重新输入!");
            	if (!obj.readOnly){
            		obj.focus();
            	}
            	return false;
            }else if (val.indexOf("社科研究")>-1){
            	alert("该企业"+title+"包含'社科研究'禁用词语,不符合工商规定,请您重新输入!");
            	if (!obj.readOnly){
            		obj.focus();
            	}
            	return false;
            }else if (val.indexOf("哲学社会科学活动")>-1){
            	alert("该企业"+title+"包含'哲学社会科学活动'禁用词语,不符合工商规定,请您重新输入!");
            	if (!obj.readOnly){
            		obj.focus();
            	}
            	return false;
            }else if (val.indexOf("社会人文科学研究与发展")>-1){
            	alert("该企业"+title+"包含'社会人文科学研究与发展'禁用词语,不符合工商规定,请您重新输入!");
            	if (!obj.readOnly){
            		obj.focus();
            	}
            	return false;
            }
        }
    } catch (e) {
        return false;
    }
    return true;
}
//日期比较
function compareDate(startDateObj,endDateObj,startDateCaption,endDateCaption)
{
    var startDate = document.getElementById(startDateObj).value;
    var endDate = document.getElementById(endDateObj).value;
    if (trim(startDate) == "" || trim(endDate) == "") return true;
    var regExp = new RegExp("-","gi");
    var intStartDate = parseInt(startDate.replace(regExp,""));
    var intEndDate = parseInt(endDate.replace(regExp,""));
    if (intEndDate<intStartDate)
    {
        alert(endDateCaption+"不能小于"+startDateCaption+"！");
        return false;
    }
    return true;
}
//数字比较
function compareDigit(startDigitObj,endDigitObj,startDigitCaption,endDigitCaption)
{
    var startDigit = document.getElementById(startDigitObj).value;
    var endDigit = document.getElementById(endDigitObj).value;
    if (startDigit == "" || endDigit == "") return true;
    var dblStartDigit = parseFloat(startDigit);
    var dblEndDigit = parseFloat(endDigit);
    if (dblEndDigit<dblStartDigit)
    {
        alert(endDigitCaption+"不能小于"+startDigitCaption+"！");
        return false;
    }
    return true;
}


//=================================================================================
//功能: 取得checkbox list的值
//@param: ckbName,checkbox的名称
//@param: delimeter，返回值的分隔符，默认为","
//@return: 返回由delimeter组成的checkbox的值列表
//=================================================================================

function getCheckBoxListValue(ckbName,delimeter)
{
    try {
        if (typeof(delimeter) == 'undefined') delimeter = ",";
        if (ckbName == "") return "";
        var ckbObj = document.getElementsByName(ckbName);
        var len = ckbObj.length;
        var result = "";
        for(var i=0;i<len;i++)
        {
            if (ckbObj(i).checked)
                result += result==""?ckbObj(i).value:delimeter+ckbObj(i).value;
        }
        return result;
	} catch (e) {
	 return "";
	}
}

function formatStrWidthArr(formatStr,srcArr,desArr)
{
    if (typeof(formatStr) == 'undefined' || formatStr =="") return "";
    if (typeof(srcArr) == 'undefined') return  formatStr;
    if (typeof(desArr) == 'undefined') return  formatStr;
    var srcLen = srcArr.length;
    var desLen = desArr.length;
    if (srcLen != desLen) return formatStr;
    var str = escape(formatStr);
    for(var i=0;i<srcLen;i++)
    {
       var regExp = new RegExp(escape(srcArr[i]),"gi");
       str = str.replace(regExp,escape(desArr[i]));
    }
    return  str;
}

function setDivMiddlePosition(div,frame)
{
    try {
        var doc=document;
        if (typeof(frame) != 'undefined')  doc=frame.document;
        if (div)
        {eval(div.style.width.substr(0,div.style.width.indexOf("px")))
        	var divWidth = div.style.width;
        	var divHeight = div.style.height;
            var x = ((doc.body.clientWidth   - eval(divWidth.substr(0,divWidth.indexOf("px")))) / 2);
            var y = (((doc.body.clientHeight - eval(divHeight.substr(0,divHeight.indexOf("px")))) / 2) + doc.body.scrollTop);
            div.style.left = x + "px";
            div.style.top = y + "px";
        }
    } catch(e) {
    }
    return;
}

//显示提示框 added by huaxiaofan 2007-01-10
function showInfoDiv(frame,timeoutSec,afterCloseFunction){
  var divObj = frame.divInfo;
  var iframeObj = frame.document.getElementById('divInfoFrmCover');
  setDivMiddlePosition(divObj,frame);  //设置显示区域居中
  setDivMiddlePosition(iframeObj,frame); 
  divObj.style.display = ""; //显示提示框
  iframeObj.style.display = "";
  runCounter(frame,"secInfo",timeoutSec); //启动倒计时器
  if(typeof(afterCloseFunction) != 'undefined' || afterCloseFunction==""){
	timer = window.setTimeout("closeInfoDiv(self);"+afterCloseFunction,timeoutSec*1000);	
  }else{
    timer = window.setTimeout("closeInfoDiv(self)",timeoutSec*1000);
  }
}

//隐藏提示框 added by huaxiaofan 2007-01-10
function closeInfoDiv(frame,afterCloseFunction){
  window.clearTimeout(timer);
  var divObj = frame.divInfo;
  var iframeObj = frame.document.getElementById('divInfoFrmCover');
  divObj.style.display = "none"; //隐藏提示框
  iframeObj.style.display = "none";
  stopCounter();
  if(typeof(afterCloseFunction) != 'undefined') eval(afterCloseFunction);//关闭提示框后的操作
}

//显示进度条函数
function showProcessBar(frame)
{
 try {
        var processBarObj = frame.processBar;
        setDivMiddlePosition(processBarObj,frame); //设置进度条在显示区域居中
        runTimer(frame); //启动秒表
        processBarObj.style.display = ""; //显示进度条
    } catch(e) {
    }
}

//隐藏进度条函数
function hideProcessBar(frame)
{
     try {
        var processBarObj = frame.processBar;
        stopTimer(frame); //停止秒表
        processBarObj.style.display = "none"; //隐藏进度条
    } catch(e) {
    }
}

// ======================以下设置进度条逝去时间（秒表）的脚本========================
var timer = null;
// nextelapse是定时时间, 为1000毫秒 ，即1秒
var nextelapse = 1000;
// 初始秒表值
var initClockText = "00:00:00";
var clockText;
// 秒表对象
var clockObj;
// 开始运行
function runTimer(iframe)
{
  clockObj  = iframe.clock;
  clockText =  initClockText;
  clockObj.innerText = clockText;
  if (timer != null)  window.clearInterval(timer);
  // 注意setInterval函数: 时间逝去nextelapse(毫秒)后, onTimer才开始执行
  timer = window.setInterval("onTimer()", nextelapse);
}

// 停止运行
function stopTimer()
{
  window.clearInterval(timer);
}
//
function onTimer()
{
    var hms = new String(clockText).split(":");
    var s = new Number(hms[2]);
    var m = new Number(hms[1]);
    var h = new Number(hms[0]);
    s = s + 1;
    if (s==60)
    {
        s = 0;
        m = m + 1;
        if (m == 60)
        {
            m = 0;
            h = h + 1;
        }
    }
    var ss = s < 10 ? ("0" + s) : s;
    var sm = m < 10 ? ("0" + m) : m;
    var sh = h < 10 ? ("0" + h) : h;

    clockText = sh + ":" + sm + ":" + ss ;
    //alert(clockText);
    clockObj.innerText = clockText;
    // 清除上一次的定时器
    //window.clearInterval(timer);
    // 启动新的定时器
    //timer = window.setInterval("onTimer()", nextelapse);
}

//===================================================================

// ======================以下设置倒计时（秒）的脚本========================
var counter = null;
var secText;
var secObj;
function runCounter(iframe,spanId,initSecText)
{
  secObj  = iframe.document.getElementById(spanId);
  secText = initSecText;
  secObj.innerText = secText;
  if (counter != null)  window.clearInterval(counter);
  counter = window.setInterval("onCounter()", 1000);
}

// 停止运行
function stopCounter()
{
  window.clearInterval(counter);
}
//
function onCounter()
{
    var sec = new Number(secText);
    secText = sec-1;
    secObj.innerText = secText;
}

//===================================================================

//in:date:yyyy-mm-dd
//out:yyyy年mm月dd日
function formatChineseDate(date)
{
    if (date == "") return "";
    var dateArr = date.split("-");
    var year = dateArr[0];
    var month = dateArr[1];
    var day = dateArr[2];
    return (year+"年"+parseMyInt(month)+"月"+parseMyInt(day)+"日");
}

//取得日期字符串中的数字值，去除非数字内容，如“-”“:”等
function cleanDate(dateStr) {
	return dateStr.replace(/\D/g,"");
}
//取得当前时间
function currentTime() {
	return new Date().getTime();
}

//显示错误
function processException(e){
	switch (typeof(e)){
		case "string":{
			if (e!="abort"){
				if (e)
					alert(e);
				else
					alert("未知错误！");
			}
			break;
		}

		case "object":{
			alert(e.description+"\n"+"错误类型"+":"+(e.number & 0xFFFF));
			break;
		}
	}
}

function DoBack(){
	window.history.go(-1);
}

function DoClose(){
	window.close();
}

function checkTextAreaLen(slt, maxlength){
	var mContext = slt.value;
	if (mContext != "" && mContext.length > maxlength){
		slt.value = mContext.substr(0, maxlength);
	}
	return true;
}

function toAmountUpper(currencyDigits) {
	//Constants: 
	var MAXIMUM_NUMBER = 99999999999.99; 
	// Predefine the radix characters and currency symbols for output: 
	var CN_ZERO = "零"; 
	var CN_ONE = "壹"; 
	var CN_TWO = "贰"; 
	var CN_THREE = "叁"; 
	var CN_FOUR = "肆"; 
	var CN_FIVE = "伍"; 
	var CN_SIX = "陆"; 
	var CN_SEVEN = "柒"; 
	var CN_EIGHT = "捌"; 
	var CN_NINE = "玖"; 
	var CN_TEN = "拾"; 
	var CN_HUNDRED = "佰"; 
	var CN_THOUSAND = "仟"; 
	var CN_TEN_THOUSAND = "万"; 
	var CN_HUNDRED_MILLION = "亿"; 
	var CN_SYMBOL = ""; 
	var CN_DOLLAR = "元"; 
	var CN_TEN_CENT = "角"; 
	var CN_CENT = "分"; 
	var CN_INTEGER = "整"; 
     
	// Variables: 
	var integral;    // Represent integral part of digit number. 
	var decimal;    // Represent decimal part of digit number. 
	var outputCharacters;    // The output result. 
	var parts; 
	var digits, radices, bigRadices, decimals; 
	var zeroCount; 
	var i, p, d; 
	var quotient, modulus; 
  
	// Validate input string:
	currencyDigits = currencyDigits.toString();
	if (currencyDigits == "") {
	    return ""; 
	}
	if (currencyDigits.match(/[^,.\d]/) != null) {
	    alert("Invalid characters in the input string!"); 
	    return ""; 
	}
	if ((currencyDigits).match(/^((\d{1,3}(,\d{3})*(.((\d{3},)*\d{1,3}))?)|(\d+(.\d+)?))$/) == null) { 
	    alert("Illegal format of digit number!"); 
	    return ""; 
	} 
     
	//Normalize the format of input digits: 
	currencyDigits = currencyDigits.replace(/,/g, "");    // Remove comma delimiters. 
	currencyDigits = currencyDigits.replace(/^0+/, "");    // Trim zeros at the beginning. 
	// Assert the number is not greater than the maximum number. 
	if (Number(currencyDigits) > MAXIMUM_NUMBER) { 
	  alert("金额长度太长，请检查后重试。"); 
	  return ""; 
	} 
     
	//Process the coversion from currency digits to characters: 
	//Separate integral and decimal parts before processing coversion: 
	parts = currencyDigits.split("."); 
	if (parts.length > 1) { 
	  integral = parts[0]; 
	  decimal = parts[1]; 
	  // Cut down redundant decimal digits that are after the second. 
	  decimal = decimal.substr(0, 2); 
	} 
	else { 
	  integral = parts[0]; 
	  decimal = ""; 
	} 
	
	// Prepare the characters corresponding to the digits: 
	digits = new Array(CN_ZERO, CN_ONE, CN_TWO, CN_THREE, CN_FOUR, CN_FIVE, CN_SIX, CN_SEVEN, CN_EIGHT, CN_NINE); 
	radices = new Array("", CN_TEN, CN_HUNDRED, CN_THOUSAND); 
	bigRadices = new Array("", CN_TEN_THOUSAND, CN_HUNDRED_MILLION); 
	decimals = new Array(CN_TEN_CENT, CN_CENT); 
	// Start processing: 
	outputCharacters = ""; 
	// Process integral part if it is larger than 0: 
  if (Number(integral) > 0) { 
    zeroCount = 0; 
    for (i = 0; i < integral.length; i++) { 
        p = integral.length - i - 1; 
        d = integral.substr(i, 1); 
        quotient = p / 4; 
        modulus = p % 4; 
        if (d == "0") { 
            zeroCount++; 
        } 
        else { 
            if (zeroCount > 0) 
            { 
                outputCharacters += digits[0]; 
            } 
            zeroCount = 0; 
            outputCharacters += digits[Number(d)] + radices[modulus]; 
        } 
        if (modulus == 0 && zeroCount < 4) { 
            outputCharacters += bigRadices[quotient]; 
        } 
    } 
    outputCharacters += CN_DOLLAR; 
  } 
  // Process decimal part if there is: 
  if (decimal != "") { 
      for (i = 0; i < decimal.length; i++) { 
          d = decimal.substr(i, 1); 
          if (d != "0") { 
              outputCharacters += digits[Number(d)] + decimals[i]; 
          } 
      } 
  } 
  // Confirm and return the final output string: 
  if (outputCharacters == "") { 
      outputCharacters = CN_ZERO + CN_DOLLAR; 
  } 
  if (decimal == "") { 
      outputCharacters += CN_INTEGER; 
  }
  outputCharacters = outputCharacters;
  if (CN_SYMBOL != "")
  	outputCharacters = CN_SYMBOL + outputCharacters; 
  return outputCharacters; 
}

//屏蔽错误
window.onerror = function() { return false;}

//弹出对话框 2006-12-6 add by shy
function fPopUpDlg(endtarget,obj,WINwidth,WINheight){

	var features =
		'dialogWidth:'  + WINwidth  + 'px;' +
		'dialogHeight:' + WINheight + 'px;' +
		'directories:no; localtion:no; menubar:no;center:yes; status=no; toolbar=no;scrollbars:yes;Resizeable=no';

	retval = window.showModalDialog(endtarget,obj,features);
	return  retval;
}
//在数组中查找某字符串是否存在 2006-12-7 add by shy
function in_array(stringToSearch, arrayToSearch) {
	if (arrayToSearch != null){
		for (i = 0; i <arrayToSearch.length; i++) {
			thisEntry = arrayToSearch[i].toString();
			if (thisEntry == stringToSearch) {
				return true;
			}
		}
	}
    return false;
} 

//设置页面只读 2006-12-7 add by shy
/* 参数意义
form 页面的form 
arrName 需要过滤的名称数组
fTag 判断过滤的名称数组为只读或可读写 为true 表示数组内容为可读写,为false表示数组内容为只读
*/
/*function setReadOnly(form,arrName,fTag){
	//var form = document.forms[0];
	var length = form.elements.length;
	if (fTag){
		for (var i=0;i<length;i++){
			var ele = form.elements[i];	
			if (!in_array(ele.name,arrName)) {
				ele.className = "zTextBox";
				if (ele.type == "text"||ele.type == "textarea"){
					ele.readOnly = true;
				}else if (ele.type == "select-one"||ele.type == "checkbox"||ele.type == "radio") {
					ele.disabled = true;
				}
			}
		}
	}else{
		for (var i=0;i<length;i++){
			var ele = form.elements[i];	
			if (in_array(ele.name,arrName)) {
				ele.className = "zTextBox";
				if (ele.type == "text"||ele.type == "textarea"){
					ele.readOnly = true;
				}else if (ele.type == "select-one"||ele.type == "checkbox"||ele.type == "radio") {
					ele.disabled = true;
				}
		}
	}
  }
}*/
function initLeft(){
	if(parent.leftFrame.document){
		if(parent.leftFrame.isFresh&&parent.leftFrame.isFresh=="1")parent.leftFrame.document.location.reload();
		}
}
function changeLeftStatus(){
	if(parent.leftFrame.isFresh)parent.leftFrame.isFresh="1";
}
//判断必填的单选框
//Add by linpengcheng at 2007-02-07
function requiredRadio(objName,title)
{
	try {
		for (var i=0;i<document.getElementsByName(objName).length;i++){
			if(document.getElementsByName(objName)[i].checked == true){
				return true;
				}
		}
		alert(title+"不能为空！");
		obj.focus();
		return false;
	} catch (e) {
        return false;
    }
}
//判断是否为身份证号
//add by suhuayan 
function CheckIdCardNo(num) 
      {  
        var len = num.length, re;
		 var temp_17 = num.substring(0, num.length - 1);
		 var temp_18 = num;
        if (len == 15){ 
          if (isNaN(num)) {alert("身份证号输入的不是数字！"); return false;}
		  re = new RegExp(/^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{3})$/); 
		 } 
        else if (len == 18) {
		  var last = num.charAt(num.length-1);
		  
		  var front17 = num.substring(0, num.length - 1);
		  if(isNaN(front17)){
				alert("身份证号前17位输入的不是数字!");
				return false;
		  }
		  
		  if(isNaN(last) && last!='x' && last!='X'){
		  	alert("输入的身份证号有误，最后一位应该是数字或x（X）!");
			return false;
		  }
          if(num.charAt(num.length-1) == 'x' || num.charAt(num.length - 1) == 'X'){
		  	num = num.substring(0, num.length - 1);
			if(isNaN(num)){
				alert("身份证号前17位输入的不是数字!");
				return false;
			}
			re = new RegExp(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})$/);
		  }else{
		  	re = new RegExp(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\d)$/); 
		  }	
		}
        else {alert("身份证号输入的位数不对！"); return false;} 
        var a = num.match(re); 
        if (a != null) 
        { 
          if (len==15) 
          { 
            var D = new Date("19"+a[3]+"/"+a[4]+"/"+a[5]); 
            var B = D.getYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5]; 
          } 
          else 
          { 
            var D = new Date(a[3]+"/"+a[4]+"/"+a[5]); 
            var B = D.getFullYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5]; 
          } 
          if (!B) {alert("输入的身份证号 "+ a[0] +" 里出生日期不对！"); return false;} 
        } 
		if(len == 18){
			var sumall = 0;
			var w = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2);//加权因子
			var c = new Array("1","0","X","9","8","7","6","5","4","3","2");//校验码			
			for(var i=0;i<17;i++){
				sumall += parseInt(temp_17.charAt(i))*w[i];
			}
			if(temp_18.charAt(17).toUpperCase() != c[sumall%11]){
				alert("身份证号有误");
				return false;
			}
		}
        return true; 
      }
//比较两个数值串 num1大于num2返回1，等于返回0，小于返回-1
function compareNum(num1,num2){
  var n1 = new Number(num1);
  var n2 = new Number(num2);
  if(n1.valueOf()>n2.valueOf()) return 1;
  if(n1.valueOf()==n2.valueOf()) return 0;
  if(n1.valueOf()<n2.valueOf()) return -1;
}

//比较控件值 num1大于num2返回1，等于返回0，小于返回-1
function compareObjById(objId1,objId2){
  var num1 = document.getElementById(objId1).value;
  var num2 = document.getElementById(objId2).value;
  compareNum(num1,num2);
}

function getNowDate(){ 
	var arg = getNowDate.arguments;
	var nowdate;
	var y = new Date().getFullYear();
	var m = new Date().getMonth()+ 1;
	if(m<10) m = '0' + m; 
	var d = new Date().getDate(); 
	if(d<10) d = '0' + d;	
	if(arg.length==1){
		nowdate = y + arg[0] + m + arg[0] + d;	
	}else{
		nowdate = y + '-' + m + '-' + d;	
	}
	return nowdate;	 
}

//转换日期格式
//year	: yyyy; 
//month	: MM; 
//date	: dd; 
//hour	: hh; 
//minute: mm; 
//second: ss;
function changeDatePattern(fromStr,fromPattern,toPattern){
	if(fromStr.length!=fromPattern.length) return "";

	var year = fromPattern.indexOf("yyyy")==-1?"0000":fromStr.substr(fromPattern.indexOf("yyyy"),4);
	var month = fromPattern.indexOf("MM")==-1?"01":fromStr.substr(fromPattern.indexOf("MM"),2);
	var date = fromPattern.indexOf("dd")==-1?"01":fromStr.substr(fromPattern.indexOf("dd"),2);
	var hour = fromPattern.indexOf("hh")==-1?"00":fromStr.substr(fromPattern.indexOf("hh"),2);
	var minute = fromPattern.indexOf("mm")==-1?"00":fromStr.substr(fromPattern.indexOf("mm"),2);
	var second = fromPattern.indexOf("ss")==-1?"00":fromStr.substr(fromPattern.indexOf("ss"),2);

	toPattern = toPattern.replace(/yyyy/g,year);
	toPattern = toPattern.replace(/MM/g,month);
	toPattern = toPattern.replace(/dd/g,date);
	toPattern = toPattern.replace(/hh/g,hour);
	toPattern = toPattern.replace(/mm/g,minute);
	toPattern = toPattern.replace(/ss/g,second);

	return toPattern;
}

/**
* 获取指定时间区域	(日期格式 year: yyyy; month: MM; date: dd; hour: hh; minute: mm; second: ss)
* @param timeStr 时间串
* @param pattern 格式
* @param fieldStr 时间区域，关键字：year、month、date、hour、minute、second
* @return 时间串
*/
function getDateField(timeStr, pattern, fieldStr){
	if(fieldStr.toLowerCase()=="year"){
		return timeStr.substr(pattern.indexOf("yyyy"),4);
	}
	else if(fieldStr.toLowerCase()=="month"){
		return timeStr.substr(pattern.indexOf("MM"),2);
	}
	else if(fieldStr.toLowerCase()=="date"){
		return timeStr.substr(pattern.indexOf("dd"),2);
	}
	else if(fieldStr.toLowerCase()=="hour"){
		return timeStr.substr(pattern.indexOf("hh"),2);
	}
	else if(fieldStr.toLowerCase()=="minute"){
		return timeStr.substr(pattern.indexOf("mm"),2);
	}
	else if(fieldStr.toLowerCase()=="second"){
		return timeStr.substr(pattern.indexOf("ss"),2);
	}  
}
/**
* 设置时间的偏移量,返回新时间
* @param timeStr 时间串
* @param oldPattern 旧格式
* @param newPattern 新格式
* @param fieldStr 时间区域，关键字：year、month、date、hour、minute、second
* @param offset 偏移量
* @return 时间串
*/
function getOffsetDate(timeStr, oldPattern, newPattern, fieldStr, offset){
	timeStr = changeDatePattern(timeStr,oldPattern,"yyyyMMddhhmmss");
	var year = new Number(timeStr.substring(0,4));
	var month = new Number(timeStr.substring(4,6));
	if(month==1) {
		month = 12;
		year = year -1;
	}else{
		month = month - 1;
	}
	var date = new Number(timeStr.substring(6,8));
	var hour = new Number(timeStr.substring(8,10));
	var minute = new Number(timeStr.substring(10,12));
	var second = new Number(timeStr.substring(12,14));
	if(fieldStr.toLowerCase()=="year"){
		year += offset;
	}
	else if(fieldStr.toLowerCase()=="month"){
		month += offset;
	}
	else if(fieldStr.toLowerCase()=="date"){
		date += offset;
	}
	else if(fieldStr.toLowerCase()=="hour"){
		hour += offset;
	}
	else if(fieldStr.toLowerCase()=="minute"){
		minute += offset;
	}
	else if(fieldStr.toLowerCase()=="second"){
		second += offset;
	}    
	var dateObj = new Date(year, month, date, hour, minute, second); 
	year = dateObj.getFullYear();
	month = dateObj.getMonth()+1;
	date = dateObj.getDate();
	hour = dateObj.getHours();
	minute = dateObj.getMinutes();
	second = dateObj.getSeconds();

	timeStr = year + "" + (month<10?"0"+month:month) + "" + (date<10?"0"+date:date) + "" + (hour<10?"0"+hour:hour) + "" + (minute<10?"0"+minute:minute) + "" + (second<10?"0"+second:second);
	return changeDatePattern(timeStr,"yyyyMMddhhmmss",newPattern);
}
 
 /**
 *验证email地址的合法性，输入参数为email地址域的id
 */
 function   chkmail(Objectid){ 
 	if(document.getElementById(Objectid).value=="" || document.getElementById(Objectid).value=="无") return true;  
  	var   reg   =   /^[^\-_\.0-9][\w\-]+@[\w\-]+\.[a-zA-Z]{3}(\.[a-zA-Z]{2,3})?$/;   
  	if(!   reg.test(document.getElementById(Objectid).value)){   
  		alert("Email地址输入不合法，请检查重输！");   
  		document.getElementById(Objectid).select();   
  		return   false;   
  	}   
  	return   true;   
 }   
/**
*验证电话号码的合法性，输入参数为电话号码域的id
*/
function chkPhone(Objectid) {
	var str = document.getElementById(Objectid).value;
	if (str=="" || str=="无") return true;
	/*var reg=/(^[0-9]{3,4}-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^([0-9]{3,4})[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/
	if(!reg.test(str)){
		alert("电话号码(如0591-1234567)输入不合法，请检查重输！");
		document.getElementById(Objectid).select();   
  		return   false;
	}*/
	if (str.length<7){
		alert("电话号码位数必须不少于7位，请检查重输！");
		document.getElementById(Objectid).select();   
  		return   false;
	}
	return   true;
}

//格式化多选条件
function formatMultiCond(id){
	var obj = document.getElementById(id);
	if(obj && obj.value.indexOf("'")==-1){
		var str = obj.value;
		if(str.indexOf(',')==0){
			str = str.substr(1);
		}
		if(str.lastIndexOf(',')==str.length-1){
			str = str.substr(0,str.length-1);
		}	
		if(str.trim()!=''){
			var strArray = str.split(',');
			for(var i=0;i<strArray.length;i++){
				strArray[i] = "'" + strArray[i] + "'";
			}
			str = strArray.join(",");
			obj.value = str;	
		}
	}
}
function formatMultiCondByStr(str){
	if(str.indexOf("'")==-1){
		if(str.indexOf(',')==0){
			str = str.substr(1);
		}
		if(str.lastIndexOf(',')==str.length-1){
			str = str.substr(0,str.length-1);
		}	
		if(str.trim()!=''){
			var strArray = str.split(',');
			for(var i=0;i<strArray.length;i++){
				strArray[i] = "'" + strArray[i] + "'";
			}
			str = strArray.join(",");
		}
	}
	return str;
}
/**
*验证邮政编码的合法性，输入参数为邮政编码的id
*/
function chkPostalcode(Objectid){
	if(document.getElementById(Objectid).value=="" || document.getElementById(Objectid).value=="无") return true;
	var len = document.getElementById(Objectid).value.length;
        if(len>0&&len!=6){
	        alert("邮政编码位数不对，请检查重输！");
			document.getElementById(Objectid).select();
	        return false;
        }
        return true;
}

//检查长度
//@param objName 控件name
//@param maxLength 限制长度
//@param title label标题
//例子:checkMaxLength('remark',1000,'备注')
function checkMaxLength(objName,maxLength,title){
	var obj = document.getElementById(objName);
	var bool = true;
	if(obj){
		var len = obj.value.replace(/[^\x00-\xff]/gi,'hi').length;
		if(len>maxLength){
			alert(title+"长度超过限制!");
			obj.select();
			bool = false;
		}
	}
	return bool;
}

//==========================================
//功能: 检查数字长度
//调用方法:在文本控件里onblur="verifyNumberLength(this,4,2)"
//==========================================
function verifyNumberLength(obj,integralLen,decimalLen)
{
	var str = "";
	if(!obj) return false;
	else str = trim(obj.value);
    if (integralLen){
		integralLen = new Number(integralLen);
	}else{
		integralLen = -1;
	}
    if (decimalLen){
		decimalLen = new Number(decimalLen);
	}else{
		decimalLen = -1;
	}
	var dotIndex = str.indexOf(".");
	if(integralLen!=-1){
		var len = dotIndex<0?str.length:dotIndex;
		if(len>integralLen){
			alert("只允许输入"+integralLen+"位整数！\n\n请重新输入！");
			obj.select();
			return false;
		}
	}
	if(decimalLen!=-1){
		var len = dotIndex<0?0:str.length-1-dotIndex;
		if(len>decimalLen){
			alert("只允许输入"+decimalLen+"位小数！\n\n请重新输入！");
			obj.select();
			return false;
		}
	}
	return true;
}


//初始化受理时间(时间从默认三个月前的今天,时间至默认当天)
function initAccDate(accDate1, accDate2){
	var date = new Date();
	var year = date.getYear();
	var month = date.getMonth() + 1;
	var day = date.getDate();

	var yearS = new String(year);
	var monthS = month < 10 ? "0" + month : new String(month);
	var dayS = day < 10 ? "0" + day : new String(day);
	document.getElementById(accDate2).value = yearS + "-" + monthS + "-" + dayS;

	if(month > 3){
		month = month - 3;
	}
	else{
		year = year - 1;
		month = month + 9;
	}
	var yearS = new String(year);
	var monthS = month < 10 ? "0" + month : new String(month);
	var dayS = day < 10 ? "0" + day : new String(day);
	document.getElementById(accDate1).value = yearS + "-" + monthS + "-" + dayS;
}


//通过指定id，设置显示属性
//@param id 控件id
//@param bDisplay 是否显示(true:显示 false:隐藏)
function setDisplayById(id,bDisplay){
	var obj = document.getElementsByName(id);
	for(var i=0;i<obj.length;i++){
		if(obj[i]){
			obj[i].style.display = bDisplay?"block":"none";
		}
	}
}
//通过指定id数组，设置显示属性
//@param id 控件id数组
//@param bDisplay 是否显示(true:显示 false:隐藏)
function setDisplayByIds(ids,bDisplay){
	for(var i=0;i<ids.length;i++){
		setDisplayById(ids[i],bDisplay);
	}
}
//通过指定id，转换显示属性
//@param id 控件id
function switchDisplayById(id){
	var obj = document.getElementsByName(id);
	for(var i=0;i<obj.length;i++){
		if(obj[i]){
			obj[i].style.display = (obj.style.display=="none")?"block":"none";
		}
	}
}
//通过指定id数组，转换显示属性
//@param id 控件id数组
function switchDisplayByIds(ids){
	for(var i=0;i<ids.length;i++){
		switchDisplayById(ids[i]);
	}
}

//根据企业类型自动选择证照类型
function generateBlictype(pritype, blictypeIdField, blictypeNameField){
	if(pritype == "01" || pritype == "06"){
		document.getElementById(blictypeIdField).value = "11";
		document.getElementById(blictypeNameField).value = "企业法人营业执照(公司)";
	}
	if(pritype == "04"){
		document.getElementById(blictypeIdField).value = "12";
		document.getElementById(blictypeNameField).value = "企业法人营业执照(非公司)";
	}
	if(pritype == "05" || pritype == "09" || pritype == "19"){
		document.getElementById(blictypeIdField).value = "13";
		document.getElementById(blictypeNameField).value = "企业集团登记证";
	}
	if(pritype == "02" || pritype == "03" || pritype == "07" || pritype == "08"){
		document.getElementById(blictypeIdField).value = "14";
		document.getElementById(blictypeNameField).value = "营业执照(分公司、营业单位)";
	}
	if(pritype == "15"){
		document.getElementById(blictypeIdField).value = "21";
		document.getElementById(blictypeNameField).value = "企业法人营业执照(外资)";
	}
	if(pritype == "16"){
		document.getElementById(blictypeIdField).value = "22";
		document.getElementById(blictypeNameField).value = "营业执照(外资)";
	}
	if(pritype == "17"){
		document.getElementById(blictypeIdField).value = "23";
		document.getElementById(blictypeNameField).value = "外国(地区)企业常驻代表机构登记证";
	}
	if(pritype == "18"){
		document.getElementById(blictypeIdField).value = "22";
		document.getElementById(blictypeNameField).value = "营业执照(外资)";
	}
	if(pritype == "10" || pritype == "11"){
		document.getElementById(blictypeIdField).value = "31";
		document.getElementById(blictypeNameField).value = "个人独资企业营业执照";
	}
	if(pritype == "12" || pritype == "13"){
		document.getElementById(blictypeIdField).value = "32";
		document.getElementById(blictypeNameField).value = "合伙企业营业执照";
	}
	if(pritype == "14"){
		document.getElementById(blictypeIdField).value = "33";
		document.getElementById(blictypeNameField).value = "个体工商户营业执照";
	}
	if(pritype == "20"){
		document.getElementById(blictypeIdField).value = "15";
		document.getElementById(blictypeNameField).value = "农民合作社营业执照";
	}
	if(pritype == "21"){
		document.getElementById(blictypeIdField).value = "16";
		document.getElementById(blictypeNameField).value = "农民合作社分支机构营业执照";
	}
}

function getTableDatas(tableObj)
{
	var rowSeparator = "\n";
	var colSeparator = "\t";
    var res = "";
	var rowLen = tableObj.rows.length;
	for (var i=0; i<rowLen ; i++ )
	{
		var colLen = tableObj.rows(i).cells.length;
		var colV = "";
		for (var j=0; j<colLen ; j++ )
		{
			if(colV!=""){
				colV += colSeparator;
			}
			colV += tableObj.rows(i).cells(j).innerText;
		}
		if(res!=""){
			res += rowSeparator;
		}
		res += colV;
		
	}
    return res;
}
//添加千位符
function addKilochar(num){
	var numStr = new String(num);
	var intlen = numStr.indexOf('.')==-1?numStr.length:numStr.indexOf('.');
	var i = intlen - 3;
	while(i>0){
		numStr = numStr.substring(0,i)+","+numStr.substr(i);
		i = i - 3;
	}
	return numStr;
}
//比较日期大小
//return 	val>0	:	sd1 > sd2
//			val<0	:	sd1 < sd2
//			val=0	:	sd1 = sd2
function DateSComp(sd1, sd2) {
  var re = /^(\d+)-(\d+)-(\d+)$/;
  re.exec(sd1);
  d1 = new Date(Number(RegExp.$1), Number(RegExp.$2)-1, Number(RegExp.$3));
  re.exec(sd2);
  d2 = new Date(Number(RegExp.$1), Number(RegExp.$2)-1, Number(RegExp.$3));
  return( d1 - d2 );
}

//*************************************************************
//验证注册号是否为合法的15位注册号
//是合法的注册号，返回true，不是合法的注册号，返回false
//*************************************************************
function ZchIsRight(zch){
	zch = trim(zch);
	var len = zch.length;
	var a=0,p=0,s=0,x;
	if (len!=15){
		//alert("注册号长度【" + len + "】不符合注册号编制规则，请检查！");
		return true;   //因新注册号规则未普及，因此非15位的算合法的
	}
	for(i=1;i<15;i++){
		a = zch.substr(i-1,1);
		if (i==1) p=10;
		s = p % 11;
		s = Number(s) + Number(a);
		p = s % 10;
		if(p==0) p=10;
		p = p * 2;
		//alert("i=" + i + " ,a=" + a + ",s=" + s + ", p=" + p);	
	}
	s = p%11;
	x = 11-s;
	if(x==10) x=0;
	a = zch.substr(14,1);
	return (a==x);
}

//*************************************************************
//校验日期格式是否正确
//*************************************************************
function DayIsRight(obj,withoutAlert){
	var ymd = obj.value;
	if (!ymd) return true;

	var len = ymd.length;
	var y,m,d,c1,c2;
	if (len!=10 && len!=8) {
		if(!withoutAlert) alert("您输入的日期内容长度不符合要求，请确认半角方式输入形如【YYYY-MM-DD】或者【YYYYMMDD】的日期格式！");
		obj.select();
		return false;
	}
	if(len==8){
		if(String(Number(ymd))=="null" || String(Number(ymd))=="undefined" || String(Number(ymd))=="NaN"){
			if(!withoutAlert) alert("您输入的日期【" + ymd + "】格式不对，请确认半角方式输入形如【YYYY-MM-DD】或者【YYYYMMDD】的日期格式！");
			obj.select();
			return false;
		}else{
			ymd = ymd.substr(0,4) + '-' + ymd.substr(4,2) + '-' + ymd.substr(6,2);
		}
	}
	
	y = ymd.substr(0,4);
	m = ymd.substr(5,2);
	d = ymd.substr(8,2);
	c1 = ymd.substr(4,1);
	//alert("y=" + y + ",m=" + m + ",d=" + d + ",c1=" + c1 + "");
	if(c1!='-'){
		c1 = '-';
	}
	
	//判断年份格式是否正确
	if(String(Number(y))=="null" || String(Number(y))=="undefined" || String(Number(y))=="NaN"){
		if(!withoutAlert) alert("您输入的日期年份【" + y + "】格式不对，请确认半角方式输入数字内容!");
		obj.select();
		return false;
	}else if(Number(y)<1900){
		if(!withoutAlert) alert("您输入的日期年份【" + y + "】格式不对，请确认半角方式输入大于1900的数字内容!");
		obj.select();
		return false;
	}
	//判断月份格式是否正确
	if(String(Number(m))=="null" || String(Number(m))=="undefined" || String(Number(m))=="NaN"){
		if(!withoutAlert) alert("您输入的日期月份【" + m + "】格式不对，请确认半角方式输入数字内容!");
		obj.select();
		return false;
	}else if(Number(m)<1 || Number(m)>12){
		if(!withoutAlert) alert("您输入的日期月份【" + m + "】格式不对，请确认半角方式输入1-12的整数内容!");
		obj.select();
		return false;
	}
	//判断日期格式是否正确
	if(String(Number(d))=="null" || String(Number(d))=="undefined" || String(Number(d))=="NaN"){
		if(!withoutAlert) alert("您输入的日期日【" + d + "】格式不对，请确认半角方式输入数字内容!");
		obj.select();
		return false;
	}else if(Number(d)<1 || Number(d)>31){
		if(!withoutAlert) alert("您输入的日期日【" + d + "】格式不对，请确认半角方式输入1-31的整数内容!");
		obj.select();
		return false;
	}
	
	//月份、日期关联验证
	if(Number(m)==4 || Number(m)==6 || Number(m)==9 || Number(m)==11){
		if(Number(d)>30){
			if(!withoutAlert) alert("月份为【" + m + "】的日期不能为【" + d + "】，请重输！");
			obj.select();
			return false;
		}
	}
	//2月份，若是闰年，日期最大值29，若不是闰年，日期最大值28
	if(Number(m)==2){
	    if(Number(d)>29){
			if(!withoutAlert) alert("2月份，日期不能大于29，请重输！");
			obj.select();
			return false;
		}
		
		if(Number(y)%4==0){    //闰年
			if(Number(d)>29){
				if(!withoutAlert) alert("闰年月份为【" + m + "】的日期不能为【" + d + "】，请重输！");
				obj.select();
				return false;
			}
		}else{
			if(Number(d)>28){
				if(!withoutAlert) alert("非闰年月份为【" + m + "】的日期不能为【" + d + "】，请重输！");
				obj.select();
				return false;
			}
		}
	}
	obj.value = y + c1 + m + c1 + d;
	return true;
}

function getDisplayFileSize(str){
	var size = parseInt(str);
	if(size >= 1024 * 1024 * 1024){
		return Math.round(size / 1024 / 1024 / 1024 * 100) / 100 + "GB";
	}
	if(size >= 1024 * 1024){
		return Math.round(size / 1024 / 1024 * 100) / 100 + "MB";
	}
	if(size >= 1024){
		return Math.round(size / 1024 * 100) / 100 + "KB";
	}
	if(size < 1024){
		return size + "B";
	}
}

//获取字节长度
function getByteLen(str){
	return str.replace(/[^\x00-\xff]/gi,'hi').length;
}

//省略
function ellipsis(str,maxByteLen){
	if (getByteLen(str)>maxByteLen){
		var res = "";
		var len = 1;
		while(getByteLen(str.substr(0,len))<=maxByteLen){
			res = str.substr(0,len);
			len++;
		}
		return res + "...";
	}
	else{
		return str;
	}
}

//复制值
function copyObjValue(copyFromId,copyToIds){
	if(!copyFromId || !document.getElementById(copyFromId) || !document.getElementById(copyFromId).value){
		return;
	}
	var copyToIdArr = copyToIds.split(",");
	for(var i=0;i<copyToIdArr.length;i++){
		if(copyToIdArr[i] && document.getElementById(copyToIdArr[i])){
			document.getElementById(copyToIdArr[i]).value = document.getElementById(copyFromId).value;
		}
	}
}

//取得月份差    年月格式:YYYY-MM
  function getMinusMonth(startMonth,endMonth){
    var monthnum = 0;
    if(startMonth.length==7&&startMonth.substring(4,5)=="-"&&
    startMonth.length==7&&startMonth.substring(4,5)=="-"){
       var sYear = startMonth.substring(0,4);
       var eYear = endMonth.substring(0,4);
       var sMonth = startMonth.substring(5,7);
       var eMonth = endMonth.substring(5,7);
       if(startMonth.substring(5,6)=="0")
           sMonth = startMonth.substring(6,7);
       else
           sMonth = startMonth.substring(5,7); 
       if(endMonth.substring(5,6)=="0")
           eMonth = endMonth.substring(6,7);
       else
           eMonth = endMonth.substring(5,7);
       monthnum = (eYear-sYear)*12+(eMonth-sMonth)+1;
    }
    return monthnum;
  }
//*************************************************************
//获得年度 （格式为去年-今年）
//返回年度
//*************************************************************  
//
function getNd(){
var date = new Date();
var year = date.getFullYear();
var value = "";
if(year%2==0){
	 value = eval(year-1) + "-" + year; 
}else{
	value = year + "-" +  eval(year + 1);	
}
return value;
}
//给对象赋值(传入对象名称和对象值)
function initObjVal(objName,value){
	var obj = document.all(objName);	
	if(obj!='undefined'){
		obj.value = value;
	}
}
//检验年度
function vailNd(obj){
	if(obj!='undefined'){
		var patrn=/^[0-9]{4}-[0-9]{4}$/; 
		trim(obj.value)==""?obj.value = getNd():obj.value =trim(obj.value);			
		if (!patrn.exec(obj.value)){
			alert('格式错误！');	
			obj.focus();
		}
	}
}

//*************************************************************
//自动赋值 autoSetVal(optionVal,textarea,idea)
//(选择意见,默认值)<select name="test" onchange="autoSetVal(''+this.value,'szqySqyj.auditide','同意')">
//*************************************************************  

function autoSetVal(val,objName,result){
	if(val!='undefined'){
		var obj = document.all(objName);
		if(val=='1'){
			obj.value = result;	
		}else{
			obj.value = "";
		}												
	}				
}

//设置iframe的高度，以匹配内容高度  
function resizeListFrame(listFrameName){
	var nHeight = eval(listFrameName+".document.body.scrollHeight");
	var oEle = document.getElementById(listFrameName);
	oEle.style.height = (nHeight+20) + 'px'
} 
//转换科学计数法
function formatDoubleValue(v){
	v = v.toLowerCase();
	if(v.indexOf('e')!=-1){
		var tmp = v.split('e');
		v = tmp[0]*10*Math.pow(10,tmp[1]-1);
	}
	return v;
}
  