//=============================================
//建立日期：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;
    }
}

//==========================================
//功能: 只能输入整数
//输入参数: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:
//=================================================================================

function ActiveForm(frm, bln)
{
    for (var i = 0; i < frm.length; i++)
    {
        if (frm.item(i).type == "checkbox" ||
            frm.item(i).type == "select-one" ||
            frm.item(i).type == "submit" ||
            frm.item(i).type == "reset" ||
            frm.item(i).type == "button" ||
            frm.item(i).type == "radio")

            frm.item(i).disabled = !bln;

        if (frm.item(i).type == "text" ||
            frm.item(i).type == "password" ||
            frm.item(i).type == "file" ||
            frm.item(i).type == "textarea")
        {
            frm.item(i).readOnly = !bln;
            frm.item(i).className = "readonly";
        }

    }
}

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: subDiv，动态复选框显示的位置
//@param: checkName，复选框名称
//@param: checkValue，复选框值
//@param: selectedCheck，已被选中的值列表
//@param: nameDelimiter， 名称列表的分隔符，不传入时默认为","
//@param: valueDelimiter， 值列表的分隔符，不传入时默认为","
//@return: true:动态下拉列表生成成功，反之为false
//=================================================================================
function generateCheckBoxList(subDiv, checkName, checkValue,selectedCheck,nameDelimiter,valueDelimiter,name) {
	try{
		var ck = "",bc = "";
    	var thisstr = "";
    	var obj = document.getElementById(subDiv);
		if(checkName==""){
			obj.innerHTML = thisstr
			return false;
		}
		
//		var t = "以下城市全选";
//    var v = "100";
//    if (("," + HtmlEncode(selectedCheck).toLowerCase() + ",").replace(/ ,/g, ',').indexOf("," + v + ",") != -1) {
//        ck = " checked";
//        cls = "cked";
//        }
//     	 else {
//           ck = "";
//           cls = "nock";
//      	}
//     thisstr = "<label class=\"" + cls + "\" for=\"i_" + name + "_" + 100 + "\" id=\"l_" + name + "_" + 100 + "\">";
//     thisstr += "<input class=\"checkbox\" onpropertychange=\"document.getElementById('l_" + name + "_" + 100 + "').className=(document.getElementById('i_" + name + "_" + 100 + "').checked)?'cked':'nock';\" onclick=\"document.getElementById('l_" + name + "_" + 100 + "').className=(document.getElementById('i_" + name + "_" + 100 + "').checked)?'cked':'nock';\" type=\"checkbox\"" + ck + " name=\"" + name + "\" id=\"i_" + name + "_" + 100 + "\" value=\"" + HtmlEncode(v) + "\" \/> ";
//     thisstr += HtmlEncode(t) + "</label>";
	   	thisstr += "<input class=\"checkbox\" type=\"checkbox\" name=\"checkbox1\" width=\"1\" value=\"checkbox\" id=\"checkbox1\" onClick=\"selectAll(" + name + ")\"> 以下地点全选";
	
   
		
		if (typeof(nameDelimiter) == "undefined") nameDelimiter = ",";
		if (typeof(valueDelimiter) == "undefined") valueDelimiter = ",";
    	var nameArr = checkName.split(nameDelimiter);
    	var valueArr = checkValue.split(valueDelimiter);
    	
    	for (var i = 0; i < nameArr.length; i++) {
             t = nameArr[i];
             v = valueArr[i];
            if (("," + HtmlEncode(selectedCheck).toLowerCase() + ",").replace(/ ,/g, ',').indexOf("," + v + ",") != -1) {
                ck = " checked";
                cls = "cked";
            }
            else {
                ck = "";
                cls = "nock";
            }
            thisstr += "<label class=\"" + cls + "\" for=\"i_" + name + "_" + i + "\" id=\"l_" + name + "_" + i + "\">";
            thisstr += "<input class=\"checkbox\" onpropertychange=\"document.getElementById('l_" + name + "_" + i + "').className=(document.getElementById('i_" + name + "_" + i + "').checked)?'cked':'nock';\" onclick=\"document.getElementById('l_" + name + "_" + i + "').className=(document.getElementById('i_" + name + "_" + i + "').checked)?'cked':'nock';\" type=\"checkbox\"" + ck + " name=\"" + name + "\" id=\"i_" + name + "_" + i + "\" value=\"" + HtmlEncode(v) + "\" \/> ";
            thisstr += HtmlEncode(t) + "</label>";
    	}
    	obj.innerHTML = thisstr
    	//alert(thisstr);
      } catch (e){
    	return false;
    }
    return true;
}

//==================================================================================
//功能: 通用查询列表弹出框控制函数
//@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:220px;Status:0;resizable:0;help:0";
    arg.controlValue = document.getElementById(controlName).value;

  //  alert($("#"+controlName).val());
    arg.datePattern = datePattern;
    arg.control=document.getElementById(controlName);
    var result = window.showModalDialog(sUrl, arg, sFeature);
    if (result != null || typeof(result) != 'undefined')
    {
        document.getElementById(controlName).value = result;
        
        if(controlName == 'village_official_start_time' || controlName == 'village_official_end_time' )
        {
        	isAssessC();
        }
    }
}


//测字符串实际长度
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 + "不能为空！");
            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 setProcessBarPosition(processBar, frame)
{
    try
    {
        var doc = document;
        if (typeof(frame) != 'undefined')  doc = frame.document;
        if (processBar)
        {
            var x = ((doc.body.clientWidth - processBar.offsetWidth) / 2);
            var y = (((doc.body.clientHeight - processBar.offsetHeight) / 2) + doc.body.scrollTop);
            processBar.style.left = x + "px";
            processBar.style.top = y + "px";
        }
    }
    catch(e)
    {
    }
    return;
}


//显示进度条函数
function showProcessBar(frame)
{
    try
    {
        var processBarObj = frame.processBar;
        setProcessBarPosition(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.clearTimeout(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);
}

//===================================================================

//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 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;
        }
    }
}

//屏蔽错误
window.onerror = function()
{
    return false;
}

//format Date 
//example: <1>var f = new Array('field');<2>format(f);
//<script type="text/javascript">var f = new Array('rmsInfo.birthdayDate','rmsInfo.graduateDate');format(f);</script>
function format(name) {
  if (name != undefined && name != null) {
    var $ = document.getElementById;
    var value;
    try {
      for (var i=0; i<name.length; i++) {
        if ($(name[i]) != undefined) {
          value = $(name[i]).value;
          if (value.replace(/^\s*|\s*$/g, "") != "") {
            $(name[i]).value = /\d{2,4}-{1}\d{1,2}-{1}\d{1,2}/.exec(value);
          }
        }
      }
    } catch (e) {}
  }
}
