<!--
//检查证件号码是否正确,selectCertType传入证件类型选择下拉列表，txtCertType证件号码文本框
function checkIdNo(selectCertType,txtCertType){
	var objSelectCertType = document.getElementsByName(selectCertType);
	var objTxtCertType = document.getElementsByName(txtCertType);
	
	for(var i=0;i<objSelectCertType.length;i++){
		if("01"==objSelectCertType[i].options[objSelectCertType[i].selectedIndex].value){
			len = objTxtCertType[i].value.length;
			if(15!=len && 18!=len){
				alert("身份证号必须为15位或者18位！");
				objTxtCertType[i].focus();
				return false;
			}
		}
	}
	return true;
}

//lgbzc@msn.com 2009-02-23 添加 更改弹出窗口的方式为弹出对话框
function MM_openBrWindow(theURL,winName,features) {
	if(winName == '')
		winName ="北京市专项维修资金管理系统";
		
  //window.showModalDialog(theURL,winName,features + "dialogWidth=800px;dialogHeight=600px; edge: Raised; center: Yes; help: Yes; resizable: Yes; status: No");
	window.open(theURL,winName,features + "dialogWidth=800px;dialogHeight=600px; edge: Raised; center: Yes; help: Yes; resizable: Yes; status: No");
}

window.status = "";

function linkhead()
{
    document.write("<map name='Map'><area shape='rect' coords='503,8,555,24' href='/webhtml/bbs/Topic.jsp?boardID=4' ><area shape='rect' coords='271,8,343,23' href='/webhtml/login.html' ><area shape='rect' coords='346,8,395,23' href='/webhtml/guestbook/index.jsp?cid=5' ><area shape='rect' coords='398,9,448,23' href='/webhtml/guestbook/index.jsp?cid=3' ><area shape='rect' coords='450,8,502,24' href='/webhtml/guestbook/index.jsp?cid=6' ><area shape='rect' coords='556,9,609,24' href='/webhtml/bbs/Topic.jsp?boardID=3' ><area shape='rect' coords='609,9,661,24' href='/w3map' ><area shape='rect' coords='663,8,711,24' href='/webhtml/pxzx/pxzx.htm' ><area shape='rect' coords='243,7,268,23' href='/webhtml/index/hmfs.jsp' ><area shape='rect' coords='713,8,764,23' href='/webhtml/index/daohang.htm' target ='_blank'></map>");

}

function linktail()
{
    document.write("// <a href ='/webhtml/index/hmfs.jsp' >首页</a> | <a href ='/webhtml/login.html' >维修资金系统</a> | <a href ='/webhtml/guestbook/index.jsp?cid=5' >最新动态</a> | <a href ='/webhtml/guestbook/index.jsp?cid=3' >信息发布</a> | <a href ='/webhtml/guestbook/index.jsp?cid=6' >政策法规</a> | <a href ='/webhtml/bbs/Topic.jsp?boardID=4' >业务论坛</a> | <a href ='/webhtml/bbs/Topic.jsp?boardID=3' >在线咨询</a> | <a href ='/w3map' >电子地图</a> | <a href ='/webhtml/pxzx/pxzx.htm' >下载中心</a> | <a href ='/webhtml/index/daohang.htm' target ='_blank'>网站导航</a> | <a href ='/webhtml/index/linkme.htm' target ='_blank'>联系我们</a> // ");
}


function link()
{
    document.write("<map name='MapHead'><area shape='rect' coords='414,1,467,15' href='/webhtml/pxzx/pxzx.htm'><area shape='rect' coords='335,1,388,15' href='/webhtml/dxal/index.html'><area shape='rect' coords='4,1,55,14' href='/webhtml/index/index.html'><area shape='rect' coords='73,1,149,15' href='/webhtml/login.html'><area shape='rect' coords='172,1,230,16' href='/webhtml/dxal/index.html'><area shape='rect' coords='256,0,309,14' href='/bbs/index.jsp'></map>");

}

/***********************************************************************************
**                  前端数据类型合法性的自动检查函数 AutoCheckProcess()                **
**    1.01版本. 一个实现基本功能的稳定版本.                                            **
**  对于附加属性(已经在代码中实现的)说明:                                              **
**  1.设置是否允许自动检查                                                           **
**  autocheck = [true | false] //默认为true,自动检查. 可以设为false,放弃自动检查       **
**  2.设置关联(非互斥方式)                                                           **
**  associate = [radio | checkbox | button | ID] 关联对象的名称.                    **
**  例如,只有点了checkbox控件(设名为:cb),才检查当前的text控件时,可以将associate属性设为   **
**  associate = "cb"                                                              **
**  如果控件是以多维数据组的形式出现,比如 radio[3], 此时associate属性应该是              **
**  associate = "radioname,3"                                                     **
**  3.设置关联(互斥方式)                                                            **
**  说明同上, 如果为互斥方式,则只有被关联的radio/checkbox在未被选中时才会检查当前text控件. **
**  例: associate = "!cb"   或 associate = "!radioname,3"                         **
**  4.其它属性:                                                                    **
**    minlength //输入框中录入字符的最少值                                           **
**  5.程序目前能够识别的类型:                                                        **
**  整数型/ 浮点数型(16.2) / 日期型(8位) / 电子邮件 /电话 /文本型 /备注型               **
**  空或非空 /身份证类型                                                            **
**  将来可能需要的类型:任意浮点数(x.x)/ accociate = "20020405"                        **
**--------------------------------------------------------------------------------**
** 0820新增功能:                                                                      **
** 文本控件可以与按钮对象关联. 此时,按钮对象按autocheckprocess(buttonname)格式调用自动检查**
**函数时(把自己的name做参数), 则,系统只会检查associate = "buttonname"(与该按钮相关联)的数据**
**合法性. 如果按钮在调用时,没有把自己的name做为参数(没有参数),则系统只检查associate为空或没有**
**设置associate的控件.
**0822新增功能：
** 文本控件可以关联到ID属性上，此时，与这个ID相关的style.display属性为隐藏的话，系统将不    **
** 检查与这个ID相关联的所有控件的数据合法性。
**0904修正：
** 对电话/传真类型的合法性检查的修正，现已能够较为准确的判断此种类型的合法性；
**0905新增功能:
** 增加script 与 scriptprompt 属性, 做为程序员自定义的编程接口,script属性中可以写任何有效
**的js代码,最终返为true(成功)或false(失败), 如果最终结果为false,则系统显示scriptprompt中的
**提示信息.
**0918新增功能： 对于text控件，删除控件中的前后空格后，将值回存到控件
**1010修正:指定名称的控件触发自动检查会同时校验与本身无关的控件合法性
**1015修正:如果scriptprompt  设置为 "" 则不提示任何信息,未定义则显示默认的错误提示信息.
***********************************************************************************/
function AutoCheckProcess(btnName)
{
    var ret = false;
    var stat = window.status;       
    window.status = "正在进行数据合法性检查，请稍后………";
    ret = AutoCheckCore(btnName); //核心处理程序
    window.status = stat;
    return ret;
}

function AutoCheckProcessNum(btnName,iCnt)
{
    var ret = false;
    var stat = window.status;       
    window.status = "正在进行数据合法性检查，请稍后………";
    ret = AutoCheckCore(btnName, iCnt); //核心处理程序
    window.status = stat;
    return ret;
}

function AutoCheckCore(btnName, iCount)
{
    var ObjectSum = form1.elements.length;

    if( iCount >0 )
    {
        ObjectSum = iCount;
    }

    for (var i = 0 ; i <= ObjectSum; i++)
    {
        if(i%parseInt(ObjectSum/15) == 0)
        {
            //alert(i);
            window.status = "正在进行数据合法性检查，剩余复杂度："+((i/ObjectSum)*100+"").substring(0,5)+"%";
        }
        // 对象有效性检查的代码.
        if ((typeof form1[i]) != "object")
        {
            continue;
        }

        var objectType = form1[i].type.toLowerCase(); //取得对象类型，转成小写

        //下面代码检查控件的autocheck 属性
        var autocheck = form1[i].autocheck; //取得自动检查标志
        if(!((typeof autocheck) == "undefined" || autocheck == "") ) //用户设置了autocheck属性
        {
            if(autocheck == "false") continue; //判断是否为false,是则continue
        }

        //下面代码检查控件的associate属性
        var associate = form1[i].associate; //取得与本控件相关的控件名称

        if(! ((typeof associate) == "undefined" || associate == "") )
        {
            if (associateValid(i, btnName) == false) //不需要对当前控件进行合法性检查,则 continue;
            {
                continue;
            }
        }
        else //如果控件没有定义associate,但定义了btnname 则跳过检查.
        {           
            if(!( (typeof btnName) == "undefined" || btnName == "") ) //用户设置了autocheck属性
            {
                continue;
            }
        }

        //下面代码检查控件的 title 属性
        var title = form1[i].title; //取得title
        if((typeof title) == "undefined" || title == "")
        {
            title = "当前行";
        }

        //下面代码检查控件的minlength属性
        var minlength = form1[i].minlength;
        if( (typeof minlength) == "undefined" || minlength == "" ) //如果用户没设置此属性
        {
            minlength = 0;
        }

        //对textarea控件做特殊处理
        if (objectType == "textarea") //如果是textarea控件，则做特殊处理
        {
            var maxlen = form1[i].maxlength;
            if ((typeof maxlen) == "undefined" || maxlen == "") //取得自动检查maxlength
            {
                maxlen = Number.MAX_VALUE; //如果未定义maxlength则不检查
            }

            if(cLength(form1[i].value.Trim()) < minlength)
            {
                alert(title+"不能少于"+minlength+"个字符!")
                form1[i].focus()
                return false;
            }

            if (isOverFlow(i, maxlen, title)) //textarea超长
            {
                return(false);
            }
            else
            {
                if (IsYinhao(i, title)) //textarea包括引号
                {
                    return(false);
                }
            }
            continue;
        }//textarea 特殊检查程序段结束

        if (objectType != "text") //如果不是text控件则跳过
        {
            continue;
        }
        //对于text控件，删除控件中的前后空格后，将值回存到控件
        form1[i].value = form1[i].value.Trim();
    

        //下面代码检查控件的class属性，系统指定必须设定class属性
        var classStr = (form1[i].className).toLowerCase(); //取得当前text控件的className，并转小写。
        if( (typeof classStr) == "undefined" || classStr == "" ) //如果用户没设置此属性
        {
            alert("系统错误！"+title+"没有定义classStr属性！");
            form1[i].focus();
            return false;
        }

        //如果程序员设定了表达式,则系统按设定的表达式进行合法性检查
        var script = form1[i].script; //取得title
        if(! ((typeof script) == "undefined" || script == "") ) //已经设置了些属性
        {
            if(eval(script) == false) //执行合法性检查失败
            {
                var scriptprompt = form1[i].scriptprompt; //取得scriptprompt
            
                if(! ((typeof scriptprompt) == "undefined" || scriptprompt == "") ) //已经设置了些属性
                {
                    alert(scriptprompt);                    
                }
                else if((typeof scriptprompt) == "undefined") //如果scriptprompt = "" 则不提示任何信息.
                {
                    alert("当前光标行输入数据的合法性检查失败,请校验!");
                }
                return false; //失败,则不再继续向下检查.
            }
        }

        //按控件的class属性组装检查字符串
        var checkFlag = "";
        if (classStr.indexOf("readonly") < 0) //只对非readonly型text控件，才做合法性检查
        {

            //下面代码检查控件的maxlength属性，系统指定必须设定maxlength属性
            var maxlength = form1[i].maxLength;
//          alert(form1[i].maxle);
            if( (typeof maxlength) == "undefined" || maxlength == "" ) //如果用户没设置此属性
            {
                alert("系统错误！"+title+"没有定义MaxLength属性！");
                form1[i].focus();
                return false;
            }

            if (classStr.indexOf("empty") < 0) //不能为空值
            {
                checkFlag += "IE,";
            }
            if (classStr.indexOf("decimal") >=0 || classStr.indexOf("money") >=0) //是浮点型(非负数)
            {
                checkFlag += "IA,";
            }
            if (classStr.indexOf("minus") >=0) //是浮点型（允许负数）
            {
                checkFlag += "MINUS,";
            }
            if (classStr.indexOf("integer") >=0) //是整数型
            {
                checkFlag += "II,";
            }
            if (classStr.indexOf("date") >=0) //是日期型
            {
                checkFlag += "CD,";
            }
            if (classStr.indexOf("email") >=0) //是电子邮件型
            {
                checkFlag += "EM,";
            }
            if (classStr.indexOf("phone") >=0) //是电话&传真型
            {
                checkFlag += "PH,";
            }
            if(classStr.indexOf("certcode") >=0) //是身份证型
            {
                checkFlag += "SFZ,";
            }   
            //add by chenxm 2004.9.8
            if(classStr.indexOf("area") >=0) //是身份证型
            {
                checkFlag += "AREA,";
            }   
            //执行综合检查函数
            if (!IsMultiOk(i, title, minlength, checkFlag, maxlength)) return false;
        } //end of if(classString.....)
    }//end of for(...)  
    return true;
}//end of function()


/******************************************************************************************
    检查当前控件关联对象的状态, 函数返回是否有必须对当前控件进行合法性检查

参数: idx,当前控件在表单中的索引值 , 调用AutoCheckProcess的按钮名称
返回值: true,需要对当前控件进行合法性检查; false,不需要对当前控件进行合法性检查

*******************************************************************************************/
function associateValid(idx, btnName)
{
    try
    {
        //assName取得当前控件关联对象的名称; mutexFlag是否为互关联,默认为否
        var assName = form1[idx].associate , mutexFlag = false;

//      if(assName.search(',') < 0)
//      {
//          alert(assName);
//          alert(window[assName].style.display);
//      }

        //assNameChild, multi考虑radio[n]这种情况而设置的,multi为true时表示控件以数组方式出现
        //assNameIdx为数据维数的索引值
        var assNameIdx = "0", multi = false;

        if (assName.charAt(0) == '!') //如果关联对象第一个是非字符，则表示为互斥关联
        {
            assName = assName.substring(1); //重新生成assName
            mutexFlag = true; //置互斥标志位为true
        }

        var n = assName.search(/,\d+/); //检查关联对象是否是以数组形式出现
        if (n > 0) //大于0,则需要考虑关联控件以数组的情况
        {
            //此处仅仅把程序员设置的associate拆开,但系统本身并不相信程序员
            //的设置. 系统会在下面的代码对程序员的设置进行测试.
            assNameIdx = assName.substring(n+1); //取得关系对象的维数索引值
            assName = assName.replace(/,\d+/,""); //重新生成assName
        }

        //如果被关联的ID是隐藏的，则不对当前控件做检查        
        if((typeof window[assName]) != "undefined")
        {
            if((typeof window[assName]) == "object")
            {
            		if(window[assName].length) //ID以数组的方式存在
            		{
                	if(window[assName][assNameIdx].style.display === "none")
                  	  return false; //不检查返回false
                	else
                  	  return true; //显示，则检查。返回true              		
                }
              	else
              	{
              		if(window[assName].style.display === "none")
                  	  return false; //不检查返回false
                	else
                  	  return true; //显示，则检查。返回true              		
              	}
            }
        }

        var assObjectType; //关联对象的类型radio / checkbox

        // 关联对象有效性检查的代码,考虑控件以数组的形式出现.
        //由于系统本身并不相信程序员提供的值,所以系统会在这里重新测试这些值是否正确,
        //如果不正确会自动更正.
        if(form1[assName].length) //如果控件以数组方式出现
        {
            if ((typeof form1[assName][assNameIdx]) == "object")
            {
                assObjectType = form1[assName][assNameIdx].type.toLowerCase();
                multi = true; //如果控件以多维数据出现则设为true
            }
            else
            {
                throw "系统错误! 当前控件的关联对象名称错误,请检查!";
            }
        }
        else //如果控件以单独的对象出现
        {
            if ((typeof form1[assName]) == "object") //关联对象名称错误,则抛出异常
            {
                assObjectType = form1[assName].type.toLowerCase();
                multi = false; //如果控件以多维数据出现则设为false
            }
            else
            {
                throw "系统错误! 当前控件的关联对象名称错误,请检查!";
            }
        }

        var checkFlag = mutexFlag; //取得关联对象的状态


        //modifiation by gp. 2002/10/10
        //关联对象与参数传入的对象不一致时，直接跳过检查。
        if((typeof btnName) != "undefined" && assName != btnName) return false; 

        //如果是有效对象，但不是单选钮/复选钮/按钮时，系统不预处理
        if (assObjectType == "radio" || assObjectType == "checkbox" || assObjectType == "select")
        {
        		if(assObjectType == "select") //如果为select 则以特殊方式检查 add by gp.20050615
        		{
        			if (multi)
            	{
             	   	checkFlag = form1[assName].item(assNameIdx).selected;
            	}
            	else
            	{
            			throw "控件参数设定不正确！";
            			return false;
            	}
            	
        		}
        		else //如果为单选钮或复选钮时,则进行下面的关联关系的逻辑检查
        		{
            	if (multi)
            	{
             	   checkFlag = form1[assName][assNameIdx].checked;
            	}
            	else
            	{
             	   checkFlag = form1[assName].checked;
            	}
          	}
        }
        else if (assObjectType == "button" || assObjectType == "submit" || assObjectType == "reset")
        {
            checkFlag = true; 
        }
            
        if (mutexFlag == true) //为互斥状态则
        {
            if (checkFlag == true) return false; //关联对象选中则跳过不做检查
        }
        else
        {
            //为非互斥状态则
            if (checkFlag == false) return false; //关联对象未补选中则跳过不做检查
        }  

    }
    catch(e)
    {
        alert(e);
        return false;
    }

    return true;
}


/******************************************************************************************
    重新设计当前按钮控件关联对象的autocheck属性, 函数返回是否有必须对当前控件进行合法性检查

参数: idx,当前控件在表单中的索引值
返回值: true,需要对当前控件进行合法性检查; false,不需要对当前控件进行合法性检查
*******************************************************************************************/
function associateButton()
{

}
/******************************************************************************************
    测试控件属性的合法性 ---- !!!方法有问题暂时不使用!!!
应用举例: testProperty(form1[i].title)
返回值: 成功返回true; 失败返回false
*******************************************************************************************/
function testProperty(prop)
{
        if ((typeof prop) == "undefined" || prop == "") //测试属性
            return false;
        else
            return true; [a-z]
}
/******************************************************************************************
  检查参数ph是不是有效的电话&传真类型

应用举例： isPhone("021-58886936") // return true
    isPhone("(021)-58886936") // return true
    isPhone("(ss3)-388323") // return false
*******************************************************************************************/
function isPhone(ph)
{
   // var flag = ph.search(/^\(?\d{3,4}\)? {0,2}-? {0,2}\d{4,}$/); //对分机号处理时有问题

    var flag = ph.search(/^[\d\- \(\)]*$/);
    if (flag == 0) //格式正确
    {
        return true;
    }
    return false;
}

/******************************************************************************************
  检查参数field是不是有效的电话&传真域

应用举例： IsPhone(form1.phone.value , "联系电话") // 成功返回true ,失败返回false
*******************************************************************************************/
function IsPhone(field,name)
{
    var inputForm  = form1[field];
    var ph = trim(form1[field].value);
    if (! isPhone(ph))
    {
        alert(name+"非法! 请按正确的格式输入.");
        inputForm.focus();
        return false;   // 为非法格式
    }
    else
    {
        return true;
    }
}

/******************************************************************************************
  检查参数code是否是有效的楼层号码

应用举例：
******************************************************************************************/
function isFloor(code)
{	
    var flag = code.search(/^B\d{2}$|^B\d{1}$|^\d{1}$|^\d{2}$|^\d{3}$/); 
    if (flag == 0) //格式正确
    {
        return true;
    }
    return false;
}

/******************************************************************************************
  检查参数code是否是有效的身份证号码

应用举例：isSFZ("370283801029009") // return true
    isSFZ("370283198010290093") // return true
    isSFZ("370283") // return false
******************************************************************************************/
function isSFZ(code)
{
    var flag = code.search(/^\d{15}$|^\d{18}$|^\d{17}[X|x]$/); //如果身份证不是15或18位则报错

    if (flag == 0) //格式正确
    {
        return true;
    }
    return false;
}
/******************************************************************************************
  检查参数field是不是有效的身份证

应用举例： IsPhone(form1.phone.value , "联系电话") // 成功返回true ,失败返回false
*******************************************************************************************/
function IsSFZ(field,name)
{
    var inputForm  = form1[field];
    var code = trim(form1[field].value);
    
    if (! isSFZ(code))
    {
        alert(name+"非法! 请确认后重新输入.");
        inputForm.focus();
        return false;   // 为非法格式
    }
    else
    {
        return true;
    }
}

//身份证类型在select的第N维上时，开始检查code所在的text域是否符合身份证规则
//seleName:Select控件的名字；idx:身份证所在select控件中的位置；codeField:待验证的text控件的名字
function isSFZInSelect(seleName,idx,codeField)
{
		if(form1[seleName].selectedIndex == idx) //如果对应的select控件正停在“身份证”一栏上，则检查之.
		{
			var ret = IsSFZ(codeField,form1[codeField].title);			
    	return (ret);
    }
    return true;
}

/********************************************************************************
        复合判断field的数据类型是否合法

应用举例:  如果需要判断 enterpriseno 中的字符串是否同时符合三个条件
           1.非空 2.不超过10个字符 3.字符为整数型
           并且在某一情况不符合规则时给出提示 , 则按下列规则调用IsMultiOk函数:

           IsMultiOk("enterpriseno","企业编号",10,"IE,IOF,II")

           数据类型非法 false ; 成功返回 true.

**********************************************************************************/

function IsMultiOk(field, name, minlen, type, maxlen)
{
    var len = maxlen;
    var sValue = form1[field].value;

    if(cLength(sValue.Trim()) < minlen) //检查当前值是否比minlen还要小
    {
        alert(name+"不能少于"+minlen+"个字符!")
        form1[field].focus()
        return false;
    }

    if (type.toUpperCase().indexOf("IE") >= 0) //如果控件不为空
    {
        if (IsEmpty(field,name)) return false;   // 检查是否为空值

    }

    if (!isEmpty(form1[field].value.Trim()))
    {   // 如果 field不为空则检查下列功能

        if (type.toUpperCase().indexOf("IA") >= 0)
        {

            if (!IsAmt2(field,name)) return false;  //检查是否为 16.2 格式值 非负数
        }
        //add by chenxm 2004.9.8
        if (type.toUpperCase().indexOf("AREA") >= 0)
        {
            if (!IsArea(field,name)) return false;  //检查是否为 10.2 格式值 非负数
        }
        if (type.toUpperCase().indexOf("MINUS") >= 0)
        {

            if (!IsMinusAmt2(field,name)) return false;  //检查是否为 16.2 格式值 允许负数
        }
        if (type.toUpperCase().indexOf("CD") >= 0)
        {

            if (!CheckDate(field,name)) return false;  //检查是否为合法日期
        }

        if (isOverFlow(field,len, name)) return false;     //检查是否为超长字串

        if (type.toUpperCase().indexOf("II") >= 0)
        {

            if (!IsInteger(field,name)) return false;  //检查是否为整数?

        }
        if (type.toUpperCase().indexOf("EM") >= 0)
        {

            if (!IsEmail(field,name)) return false;    //检查是否为合法email地址
        }

        if (type.toUpperCase().indexOf("PH") >= 0)
        {
            if (!IsPhone(field,name)) return false;  //检查是否为合法电话&传真
        }
        if (type.toUpperCase().indexOf("SFZ") >= 0)
        {
            if (!IsSFZ(field,name)) return false;  //检查是否为合法的身份证号
        }

        if (IsYinhao(field,name)) return false;  //每个非空字段都必需检查引号

        // 只判断了部分类型, 需要判断其它类型请在此加入.
    }
    else   //如果当前字段为空值,则置为空串
    {
        form1[field].value = "";
    }

    return true;
}

/******************************************************************************************
    检查当前字段日期是否大于当前日期

应用举例:   IsOverStepToday("DateField","提交日期") // 大于当前日期返回false

*******************************************************************************************/

function yearPlus(adDate)
{
    var y = getYear(adDate);
    var m = getMonth(adDate);
    var d = getDay(adDate);

    return(y*1+1)+m+d;
}

function monthPlus(adDate)
{
    var y = getYear(adDate);
    var m = getMonth(adDate);
    var d = getDay(adDate);

    if (m == "12")
    {
        m = 0;
        y = (parseInt(y)+1);
    }
    if (m<9) return y+"0"+(m*1+1)+d;
    else return y+(m*1+1)+d;
}

function dayToDate(aiDay,aiYear)
{
    var iYear = aiYear;
    var dDate = iYear + "0101";
    var monthCount = 1;

    while (aiDay > getMonthDays(dDate))
    {
        if ((aiDay - getMonthDays( dDate ))>0)  //判断剩余天数是否大于当前月的天数
        {
            aiDay -= getMonthDays( dDate );
            dDate = monthPlus(dDate);
            if (monthCount++>11) //aiDay 超过365天则转入下一年
                dDate = yearPlus(dDate);
        }
        else break;
    }

    if (aiDay < 10) //格式化输出天数
        return iYear+getMonth(dDate)+"0"+aiDay;
    else
        return iYear+getMonth(dDate)+aiDay;
}

function dateToDay(adDate)
{
    var iDays = 0;
    var dTmpDate = getYear(adDate) + "01" + getDay(adDate);

    while (dTmpDate != adDate)
    {
        iDays += getMonthDays(dTmpDate);
        //alert(dTmpDate);
        dTmpDate = monthPlus(dTmpDate);
        //alert(dTmpDate);
    }

    iDays += getDay(adDate)*1;

    return iDays;
}


/******************************************************************************************
    检查当前字段日期是否大于当前日期

应用举例:   IsOverStepToday("DateField","提交日期") // 大于当前日期返回false

*******************************************************************************************/
function IsOverStepToday(beginDate,bdName)
{
    var bdValue = form1[beginDate].value.Trim();
    var edValue = getToday();

    if (!CheckDate(beginDate,bdName))
    {
        return false
    }
    else if (bdValue > edValue)
    {
        alert(bdName + "字段不能大于" + edValue)
        form1[beginDate].focus()
        return false
    }

    return true;
}



/******************************************************************************************
    取出系统当前日期

应用举例:   getToday() // return "20020513"

*******************************************************************************************/
function getToday()
{
    var d = new Date();
    var sDate = d.getYear()*10000+(d.getMonth()+1)*100+d.getDate();

    return sDate.toString();
}

/******************************************************************************************
    计算每月有多少天

应用举例:   getMonthDays("20020201") // return 28
            getMonthDays("sdfsfd"); // error! return  false;
*******************************************************************************************/
function getMonthDays(sDate)
{

    // 分别取出年/月/日
    var year = getYear(sDate);
    var month = getMonth(sDate);
    var day = 1;

    if (year == 0 || month == 0) return false; //出错返回 false

    //设置两个用于日期计算的临时日期实例
    var t = new Date(year, month*1-1, day);
    var tt = new Date(year,month,day);

    return((tt - t)/1000/60/60/24); //返回天数 ,出错返回 false
}

/******************************************************************************************
  一套取年/月/日的函数

  返回值:  在实际应用过程中发现,在下列函数中进行日期有效性检查是不明智的,所以删除了.

  注:函数比较简单,推荐使用.
******************************************************************************************/

function getYear(sDate)
{
    // 取出年
    return sDate.substring(0,4);
}

function getMonth(sDate)
{
    // 取出月
    return sDate.substring(4,6);
}

function getDay(sDate)
{
    // 取出日
    return sDate.substring(6,8);
}

/******************************************************************************************
        检查参数em是不是有效的email地址

应用举例:  isEmail("feng_yue@163.com")   // return true
       isEmail("@2342.com"); isEmail("feng@@.com"); isEmail("feng@ss@") // return false

*******************************************************************************************/
function isEmail(em)
{
    var n = em.indexOf("@");
    var lastn = em.indexOf("@",n+1);

    //判断四种情况 1.没有@符号 2.@符号在第一位 3.@符号在最后一位 4.有多个@符号
    if (n <=0 || (n+1) == em.length || lastn >= 0)
    {
        return false;   // 为非法email返回false.
    }
    else
    {
        return true;
    }
}


/******************************************************************************
        检查field是不是有效的email地址

应用举例: IsEmail(form1.txtEmail.name,"电子邮箱地址")

          //如果txtEmail中输入的是合法的email地址则返回 true;
          //否则提示"电子邮箱地址非法! 请输入正确的Email地址. 返回 false.

********************************************************************************/
function IsEmail(field,name)
{
    var inputForm  = form1[field];
    var em = trim(form1[field].value);
    if (! isEmail(em))
    {
        alert(name+"非法! 请输入正确的Email地址.");
        inputForm.focus();
        return false;   // 为非法email.
    }
    else
    {
        return true;
    }
}

  //格式化浮点数.
 function formatFloat(str)
 {
     str = str * 1;

     if(str < 0) //负数
     {
         str = str - 0.005;
     }
     else if(str > 0)
         {
             str = str + 0.005;//取值时保留两位小数，在第三位四舍五入
         }
    str = str + "";//转换为字符串   
    i = str.indexOf(".");
    str = str + "";//转换为字符串
    str = str.substring(0,i+3);
    return str;
  }


/*****************************************************************
** 一套对table操作的js类
*******************************************************************/
/**
 * TableObject类的构造函数
 */
function TableObject()
{
    var oTable, oTbody, oTcell; 
}

/**
 * 初始化TableObject对象的方法
 * 在iframe和frame中使用次函数代替initTableObject
 *
 * @param tName - HTML中Table控件的ID
 * @param cell - Table控件的列数
 */
TableObject.prototype.initOpenerTableObject = function( tName, cell ) 
{
    if(window.opener.document.all) 
        this.oTable = window.opener.document.all(tName);
    else if(window.opener.document.getElementById)
        this.oTable = window.opener.document.getElementById(tName);

    if(this.oTable)
    {
        this.oTbody = this.oTable.tBodies.item(0);
    }   
    this.oTcell = cell;
}
/**
 * 初始化TableObject对象的方法
 * 在iframe和frame中使用次函数代替initTableObject
 *
 * @param tName - HTML中Table控件的ID
 * @param cell - Table控件的列数
 */
TableObject.prototype.initParentTableObject = function( tName, cell ) 
{
    if(parent.document.all) 
        this.oTable = parent.document.all(tName);
    else if(parent.document.getElementById)
        this.oTable = parent.document.getElementById(tName);

    if(this.oTable)
    {
        this.oTbody = this.oTable.tBodies.item(0);
    }   
    this.oTcell = cell;
}
/**
 * 初始化TableObject对象的方法
 *
 * @param tName - HTML中Table控件的ID
 * @param cell - Table控件的列数
 */
TableObject.prototype.initTableObject = function( tName, cell ) 
{
    if(document.all) 
        this.oTable = document.all(tName);
    else if(document.getElementById)
        this.oTable = document.getElementById(tName);

    if(this.oTable)
    {
        this.oTbody = this.oTable.tBodies.item(0);
    }   
    this.oTcell = cell;
}

/**
 * 删除指定Table对象的标题
 */
TableObject.prototype.deleteCaption = function()
{
    this.oTable.deleteCaption();
}

/**
 * 删除指定Table对象的表头
 */
TableObject.prototype.deleteHead = function()
{
    this.oTable.deleteTHead();
}

/**
 * 删除指定Table对象的脚注
 */
TableObject.prototype.deleteFoot = function()
{
    this.oTable.deleteTFoot();
}

/**
 * 删除指定Table对象的某行
 *
 * @param row - Table的行号
 */
TableObject.prototype.deleteRow = function( row )
{
    if(this.oTbody.rows.length > 0)
        this.oTbody.deleteRow(row);
}

/**
 * 向指定Table对象的插入一行
 *
 * @param row - Table的行号
 * @param arrayBody - Array数组,数组维数必须大于Table对象的列数.
 */
TableObject.prototype.insertRow = function( row , arrayBody)
{
    if(!this.oTbody) return;
    if(row < 0) 
    {
        row = this.oTbody.rows.length;
    }

    var oTR = this.oTbody.insertRow(row);
    
    var arrayBodyFlag = (typeof arrayBody != "undefined");

    for(var i=0; i < this.oTcell; i++)
    {
        if(arrayBodyFlag)
        {
            oTR.insertCell(i).innerHTML = arrayBody[i];
        }
        else
        {
            oTR.insertCell(i).innerHTML = "&nbsp;";
        }
    } //end of for(..
} //end of function(..


/**
 * 查询当前操作员选中哪个radiobutton
 * 未选择任何单选钮时,返回-1
 */
function getRadioSelectedIndex(rbname)
{
    var i = 0, chooseFlag = false;
    if(typeof form1[rbname] == "object")
    {       
        if( !isNaN(form1[rbname].length) )
        {       
            for(i=0; i<form1[rbname].length; i++)
            {
                if(form1[rbname][i].checked)
                {                   
                    chooseFlag = true;
                    break;
                }
            }           
        }   
        else
        {
            chooseFlag = true;
        }

        if(chooseFlag)
        {
            return i; //返回用户选择的对象维数.
        }
    }
    return -1; //对象不存在时返回-1
}

//**********************************判断数据项非空**************************************//

//状态栏跑马灯
function scrollit_r2l(seed)
{
    var m1  = "欢迎进入HMCMS管理信息系统" ;
    var m2  = " " ;
    var msg=m1+m2;
    var out = " ";
    var c = 1;
    var speed  = 100
    if (seed > 100)
    {
        seed-=2;
        var cmd="scrollit_r2l(" + seed + ")";
        timerTwo=window.setTimeout(cmd,speed);
    }
    else if (seed <= 100 && seed > 0)
    {
        for (c=0 ; c < seed ; c++)
        {
            out+=" ";
        }
        out+=msg;         seed-=2;
        var cmd="scrollit_r2l(" + seed + ")";
        window.status=out;
        timerTwo=window.setTimeout(cmd,speed);
    }
    else if (seed <= 0)
    {
        if (-seed < msg.length)
        {
            out+=msg.substring(-seed,msg.length);
            seed-=2;
            var cmd="scrollit_r2l(" + seed + ")";
            window.status=out;
            timerTwo=window.setTimeout(cmd,speed);
        }
        else
        {
            window.status=" ";
            timerTwo=window.setTimeout("scrollit_r2l(100)",speed);
        }
    }
}
//scrollit_r2l(100);


function isEmpty(inputStr)
{
//   inputStr=trim(inputStr)
    inputStr=inputStr.Trim().toString();
    if (inputStr.length == 0)
    {
        return true
    }
    return false
}


function trim(inputStr)
{
    inputStr = inputStr.toString()
    var iStrHead = 0
    var iStrTail = inputStr.length
    for (;iStrHead < iStrTail;iStrHead++)
    {
        if (inputStr.charAt(iStrHead) != " ") break
    }
    for (;iStrTail >iStrHead ; iStrTail--)
    {
        if (inputStr.charAt(iStrTail-1) != " ")   break
    }
    return inputStr.substring(iStrHead,iStrTail)
}
//网上资料开始
String.prototype.Trim = function()
{
    return this.replace(/(^\s*)|(\s*$)/g, "");
}
String.prototype.LTrim = function()
{
    return this.replace(/(^\s*)/g, "");
}
String.prototype.Rtrim = function()
{
    return this.replace(/(\s*$)/g, "");
}
//网上资料结束

//************直接调用函数判断数据项为空

function IsEmpty(inputStr, name)
{
    var inputValue = form1[inputStr].value
    var inputForm  = form1[inputStr]
    if (isEmpty(inputValue))
    {
        alert(name + "不能为空！")
        inputForm.focus()
        return true
    }
    if (isYinhao(inputValue))
    {
        alert(name + "不能包含引号或竖线！")
        inputForm.focus()
        return true
    }
    return false
}

function IsEmptyByOBJ(inputOBJ, name)
{
    var inputValue = inputOBJ.value
    var inputForm  = inputOBJ;
    if (isEmpty(inputValue))
    {
        alert(name + "不能为空！")
        inputForm.focus()
        return true
    }
    if (isYinhao(inputValue))
    {
        alert(name + "不能包含引号或竖线！")
        inputForm.focus()
        return true
    }
    return false
}

//***********************************验证数据类型***************************************//

//************判断数据项是integer型

function isInteger(inputVal)
{
    inputStr = inputVal.toString().Trim();
    for (var i = 0;i < inputStr.length;i++)
    {
        var oneChar = inputStr.charAt(i)
        if (oneChar < "0" || oneChar > "9")
        {
            return false
        }
    }
    return true
}

//************直接调用函数判断数据项是integer型

function IsInteger(inputStr, name)
{
    var inputValue = form1[inputStr].value.Trim();
    var inputForm  = form1[inputStr]
    if (isEmpty(inputValue))
    {
        alert(name + "不能为空！")
        inputForm.focus()
        return false
    }
    else if (!isInteger(inputValue))
    {
        alert(name + "应为整数！")
        inputForm.focus()
        return false
    }
    return true
}

//************判断数据项是double型

function isDouble(inputVal)
{
    inputStr = inputVal.toString()
    oneDecimal = false
    for (var i = 0;i < inputStr.length;i++)
    {
        var oneChar = inputStr.charAt(i)
        if (oneChar == "." && !oneDecimal)
        {
            oneDecimal = true
            continue
        }
        if (oneChar < "0" || oneChar > "9")
        {
            return false
        }
    }
    return true
}

//************判断金额16.2型（不可以为负数）

function IsAmt (inputStr,name)
{
    var inputValue = form1[inputStr].value.Trim();
    var inputStr1 = inputValue.toString()
    var initial = inputValue.charAt(0);//修改时间：2001-11-19，本行是添加的
    var inputForm  = form1[inputStr]
    if (initial == '-' || initial == '+')
    {//修改时间：2002-05-29,本行是添加的
        inputStr1 = inputStr1.substring(1);//修改时间：2001-11-19，本行是添加的
    }
    if (isEmpty(inputValue))
    {
        alert(name + "不能为空！")
        inputForm.focus()
        return false
    }
    else if (!isDouble(inputStr1))
    {//修改时间：2001-11-19，inputValue ->inputStr1
        alert(name + "输入项应为数字(保留两位小数)！")
        inputForm.focus()
        return false
    }
    //*******added by zhuobin 2002-7-23
    else if (initial == '-')
    {
        alert(name + "不能为负数");
        inputForm.focus();
        return false;
    }
    //****** end **********//
    if (!(initial == '-' || initial == '+' || initial >= '0' && initial <= '9'))
    {
        alert(name + "首位只能是\"＋\"或\"－\",默认为\"+\"");
        inputForm.focus()
        return false
    }
    var i = inputStr1.indexOf(".")
    if ((i == -1 && inputStr1.length > 14 ) || i > 14)
    {
        alert(name + "整数部分不能大于14位！")
        inputForm.focus()
        return false
    }
    else if (i != -1 && (inputStr1.length - i - 1) > 2)
    {
        alert(name + "小数部分不能多于2位！")
        inputForm.focus()
        return false
    }
    return true
}

//************判断金额10.2型(不可以为负数)  //added by chenxm 2004-9-8
function IsArea (inputStr,name)
{
    var inputValue = form1[inputStr].value.Trim();
    var inputStr1 = inputValue.toString()
    var initial = inputValue.charAt(0);//修改时间：2001-11-19，本行是添加的
    var inputForm  = form1[inputStr]
    if (initial == '-' || initial == '+')
    {//修改时间：2002-05-29,本行是添加的
        inputStr1 = inputStr1.substring(1);//修改时间：2001-11-19，本行是添加的
    }
    if (isEmpty(inputValue))
    {
        alert(name + "不能为空！")
        inputForm.focus()
        return false
    }
    else if (!isDouble(inputStr1))
    {//修改时间：2001-11-19，inputValue ->inputStr1
        alert(name + "输入项应为数字(保留两位小数)！")
        inputForm.focus()
        return false
    }
    if (!(initial == '+' || initial >= '0' && initial <= '9'))
    {
        alert(name + "首位只能是\"＋\",默认为\"+\"");
        inputForm.focus()
        return false
    }
    var i = inputStr1.indexOf(".")
    if ((i == -1 && inputStr1.length > 8 ) || i > 8)
    {
        alert(name + "整数部分不能大于8位！")
        inputForm.focus()
        return false
    }
    else if (i != -1 && (inputStr1.length - i - 1) > 2)
    {
        alert(name + "小数部分不能多于2位！")
        inputForm.focus()
        return false
    }
    return true
}

//add by yangjb 2004-10-22
function IsProp(propOBJ)
{
	var propFlag = 0;
	var pos = 0;
	pos = propOBJ.indexOf(".")
	if(propOBJ*1>0 && propOBJ*1<=100)
	{
		if(pos<0)
		{
		}
		else
		{
			var tail = propOBJ.substring(pos+1,propOBJ.length);
			if(tail.length>2)
			{
				propFlag = 2;
			}
		}
	}
	else
	{
		propFlag = 1;
	}
	if(propFlag ==0)
	{
		return true;
	}
	else if(propFlag == 1)
	{
		alert("输入比例必须在0-100之间！");
		return false;
	}
	else if(propFlag = 2)
	{
		alert("输入比例小数不可超过2位！");
		return false;
	}
}

//8,2位金额判断	add by yangjb 2004-10-22
function IsMoney(moneyOBJ)
{
	var moneyFlag = 0;
	var pos = 0;
	if(moneyOBJ*1>0 && moneyOBJ*1<100000000)
	{
		pos = moneyOBJ.indexOf(".");
		if(pos>0)
		{
			tail = moneyOBJ.substring(pos+1,moneyOBJ.length);
			if(tail.length>2)
			{
				moneyFlag = 2;
			}
		}
	}
	else
	{
		moneyFlag = 1;
	}
	if(moneyFlag ==0)
	{
		return true;
	}
	else if(moneyFlag ==1)
	{
		alert("输入金额需为整数位小于等于8位的正数！");
		return false;
	}
	else if(moneyFlag ==2)
	{
		alert("输入金额小数位不可超过2位！");
		return false;
	}

}


function IsAreaByOBJ (inputObj,name)
{
    var inputValue = inputObj.value.Trim();
    var inputStr1 = inputValue.toString()
    var initial = inputValue.charAt(0);//修改时间：2001-11-19，本行是添加的
    var inputForm  = inputObj
    if (initial == '-' || initial == '+')
    {//修改时间：2002-05-29,本行是添加的
        inputStr1 = inputStr1.substring(1);//修改时间：2001-11-19，本行是添加的
    }
    if (isEmpty(inputValue))
    {
        alert(name + "不能为空！")
        inputForm.focus()
        return false
    }
    else if (!isDouble(inputStr1))
    {//修改时间：2001-11-19，inputValue ->inputStr1
        alert(name + "输入项应为数字(保留两位小数)！")
        inputForm.focus()
        return false
    }
    if (!(initial == '+' || initial >= '0' && initial <= '9'))
    {
        alert(name + "首位只能是\"＋\",默认为\"+\"");
        inputForm.focus()
        return false
    }
    var i = inputStr1.indexOf(".")
    if ((i == -1 && inputStr1.length > 8 ) || i > 8)
    {
        alert(name + "整数部分不能大于8位！")
        inputForm.focus()
        return false
    }
    else if (i != -1 && (inputStr1.length - i - 1) > 2)
    {
        alert(name + "小数部分不能多于2位！")
        inputForm.focus()
        return false
    }
    return true
}

//************判断金额16.2型(不可以为负数)  //added by zhuobin 2002-7-23

function IsAmt2 (inputStr,name)
{
    var inputValue = form1[inputStr].value.Trim();
    var inputStr1 = inputValue.toString()
    var initial = inputValue.charAt(0);//修改时间：2001-11-19，本行是添加的
    var inputForm  = form1[inputStr]
    if (initial == '-' || initial == '+')
    {//修改时间：2002-05-29,本行是添加的
        inputStr1 = inputStr1.substring(1);//修改时间：2001-11-19，本行是添加的
    }
    if (isEmpty(inputValue))
    {
        alert(name + "不能为空！")
        inputForm.focus()
        return false
    }
    else if (!isDouble(inputStr1))
    {//修改时间：2001-11-19，inputValue ->inputStr1
        alert(name + "输入项应为数字(保留两位小数)！")
        inputForm.focus()
        return false
    }
    if (!(initial == '+' || initial >= '0' && initial <= '9'))
    {
        alert(name + "首位只能是\"＋\",默认为\"+\"");
        inputForm.focus()
        return false
    }
    var i = inputStr1.indexOf(".")
    if ((i == -1 && inputStr1.length > 14 ) || i > 14)
    {
        alert(name + "整数部分不能大于14位！")
        inputForm.focus()
        return false
    }
    else if (i != -1 && (inputStr1.length - i - 1) > 2)
    {
        alert(name + "小数部分不能多于2位！")
        inputForm.focus()
        return false
    }
    return true
}



//************判断金额16.2型(可以为负数)  //added by zhuobin 2002-7-23

function IsMinusAmt2 (inputStr,name)
{
    var inputValue = form1[inputStr].value.Trim();
    var inputStr1 = inputValue.toString()
    var initial = inputValue.charAt(0);//修改时间：2001-11-19，本行是添加的
    var inputForm  = form1[inputStr]
    if (initial == '-' || initial == '+')
    {//修改时间：2002-05-29,本行是添加的
        inputStr1 = inputStr1.substring(1);//修改时间：2001-11-19，本行是添加的
    }
    if (isEmpty(inputValue))
    {
        alert(name + "不能为空！")
        inputForm.focus()
        return false
    }
    else if (!isDouble(inputStr1))
    {//修改时间：2001-11-19，inputValue ->inputStr1
        alert(name + "输入项应为数字(保留两位小数)！")
        inputForm.focus()
        return false
    }
    if (!(initial == '-' || initial == '+' || initial >= '0' && initial <= '9'))
    {
        alert(name + "首位只能是\"＋\"或\"－\",默认为\"+\"");
        inputForm.focus()
        return false
    }
    var i = inputStr1.indexOf(".")
    if ((i == -1 && inputStr1.length > 14 ) || i > 14)
    {
        alert(name + "整数部分不能大于14位！")
        inputForm.focus()
        return false
    }
    else if (i != -1 && (inputStr1.length - i - 1) > 2)
    {
        alert(name + "小数部分不能多于2位！")
        inputForm.focus()
        return false
    }
    return true
}



//***********判断利率8.6型

function IsRate (inputStr,name)
{
    var inputValue = form1[inputStr].value
    var inputStr1 = inputValue.toString()
    var inputForm  = form1[inputStr]
    if (isEmpty(inputValue))
    {
        alert(name + "不能为空！")
        inputForm.focus()
        return false
    }
    else if (!isDouble(inputValue))
    {
        alert(name + "输入项应为数字(保留两位小数)！")
        inputForm.focus()
        return false
    }
    var i = inputStr1.indexOf(".")
    if ((i == -1 && inputStr1.length > 2 ) || i > 2)
    {
        alert(name + "整数部分不能大于2位！")
        inputForm.focus()
        return false
    }
    else if (i != -1 && (inputStr1.length - i - 1) > 6)
    {
        alert(name + "小数部分不能多于6位！")
        inputForm.focus()
        return false
    }
    return true
}

//************判断两个double型数据项大小，后一数据项比前一数据项大

function isMaxer(inputVal1,inputVal2)
{
    input1 = parseFloat(inputVal1)
    input2 = parseFloat(inputVal2)
    if (input1 >= input2)
    {
        return false;
    }
    else
    {
        return true;
    }
}

//************判断两个double型数据项是否相等

function isEquals(inputVal1,inputVal2)
{
    input1 = parseFloat(inputVal1)
    input2 = parseFloat(inputVal2)
    if (input1 == input2)
    {
        return true;
    }
    else
    {
        return false;
    }
}

//************直接调用函数验证两个金额所有合法性
//************前者金额不能大于后者金额,State请传入1；后者金额必须大于前者金额，State请传入2

function CompareAmt(beginAmt,baName,endAmt,eaName,State)
{
    var baValue = parseFloat(form1[beginAmt].value)
    var eaValue = parseFloat(form1[endAmt].value)
//alert("传入参数为" + State)
    if (State != "1" && State != "2")
    {
        alert("最后一个参数请输入1或者2")
        return false
    }
    else if (!IsAmt(beginAmt,baName))
    {
        return false
    }
    else if (!IsAmt(endAmt,eaName))
    {
        return false
    }
    else if (State == "1" && baValue > eaValue)
    {
        alert(baName + "不能大于" + eaName)
        form1[beginAmt].focus()
        return false
    }
    else if (State == "2" && baValue >= eaValue)
    {
        alert(eaName + "必须大于" + baName)
        form1[endAmt].focus()
        return false
    }
    else
    {
        return true
    }
}

//************判断数据项为0

function isZero(inputStr)
{
    var inputVal = parseFloat(inputStr)
    if (inputVal == 0)
    {
        return true
    }
    else
    {
        return false
    }
}

//***********************************验证日期的合法性************************************//

//*********判断输入项类型是否合法日期

function isCorrectDate(inputStr)
{
    if (inputStr.length != 8)
    {
        return false
    }
    for (var i = 0;i < 8;i++)
    {
        var oneChar = inputStr.charAt(i)
        if (oneChar < "0" || oneChar > "9")
        {
            return false
        }
    }
    if (!isDate(inputStr))
    {
        return false
    }
    else
    {
        return true
    }
}
//*********判断是否闰年

function isRyear(inputInt)
{
    if (inputInt % 100 == 0 && inputInt % 400 == 0 || inputInt % 100 != 0 && inputInt % 4 == 0)
    {
        return true
    }
    else
    {
        return false
    }
}
//*********判断日期是否合法

function isDate(inputStr)
{
    var year = parseFloat(inputStr.substring(0,4))
    var month = parseFloat(inputStr.substring(4,6))
    var day = parseFloat(inputStr.substring(6,8))
    if (month < 1 || month > 12 || day < 1 || day > 31 || year < 1000 || year > 2050)
    {
        return false
    }
    else if ((month == 4 || month == 6 || month == 9 || month ==11) && (day > 30))
    {
        return false
    }
    else if (isRyear(year) && month == 2 && day > 29 || !isRyear(year) && month == 2 && day > 28)
    {
        return false
    }
    else
    {
        return true
    }
}

//*********直接调用函数验证日期所有合法性

function CheckDate(inputStr,name)
{
    var inputValue = form1[inputStr].value.Trim();
    var inputForm  = form1[inputStr]
    if (isEmpty(inputValue))
    {
        alert(name + "不能为空！")
        inputForm.focus()
        return false
    }
    else if (!isInteger(inputValue))
    {
        alert(name + "输入项应为整数！")
        inputForm.focus()
        return false
    }
    else if (!isCorrectDate(inputValue))
    {
        alert(name + "输入格式不合法！\n正确输入应为YYYYMMDD格式！")
        inputForm.focus()
        return false
    }
    else
    {
        return true
    }
}

function CheckDateByOBJ(inputOBJ,name)
{
    var inputValue = inputOBJ.value.Trim();
    var inputForm  = inputOBJ;
    if (isEmpty(inputValue))
    {
        alert(name + "不能为空！")
        inputForm.focus()
        return false
    }
    else if (!isInteger(inputValue))
    {
        alert(name + "输入项应为整数！")
        inputForm.focus()
        return false
    }
    else if (!isCorrectDate(inputValue))
    {
        alert(name + "输入格式不合法！\n正确输入应为YYYYMMDD格式！")
        inputForm.focus()
        return false
    }
    else
    {
        return true
    }
}
//********************************尽判断数值是否正确不移动焦点*******************lic为需要增加
function CheckDateForNumber(inputStr,name)
{
    var inputValue = form1.inputStr.value.Trim();
    //var inputForm  = form1[inputStr]
    if (isEmpty(inputValue))
    {
        alert(name + "不能为空！")
        //inputForm.focus()
        return false
    }
    else if (!isInteger(inputValue))
    {
        alert(name + "输入项应为整数！")
        //inputForm.focus()
        return false
    }
    else if (!isCorrectDate(inputValue))
    {
        alert(name + "输入格式不合法！\n正确输入应为YYYYMMDD格式！")
        //inputForm.focus()
        return false
    }
    else
    {
        return true
    }
}

//*********发生日期不能大于终结日期*****(直接调用函数验证两个日期所有合法性)

function CompareDate1(beginDate,bdName,endDate,edName)
{
    var bdValue = form1[beginDate].value
    var edValue = form1[endDate].value
    if (!CheckDate(beginDate,bdName))
    {
        return false
    }
    else if (!CheckDate(endDate,edName))
    {
        return false
    }
    else if (bdValue > edValue)
    {
        alert(bdName + "不能大于" + edName)
        form1[beginDate].focus()
        return false
    }
    else
    {
        return true
    }
}

//*********终结日期必须大于发生日期*****(直接调用函数验证两个日期所有合法性)

function CompareDate2(beginDate,bdName,endDate,edName)
{
    var bdValue = form1[beginDate].value
    var edValue = form1[endDate].value
    if (!CheckDate(beginDate,bdName))
    {
        return false
    }
    else if (!CheckDate(endDate,edName))
    {
        return false
    }
    else if (bdValue >= edValue)
    {
        alert(edName + "必须大于" + bdName)
        form1[beginDate].focus()
        return false
    }
    else
    {
        return true
    }
}

//************发生日期不能大于终结日期,State请传入1；终结日期必须大于发生日期State请传入2

function CompareDate(beginDate,bdName,endDate,edName,State)
{
//alert("传入参数为" + State)
    if (State != "1" && State != "2")
    {
        alert("最后一个参数请输入1或者2")
        return false
    }
    if (State == "1" && !CompareDate1(beginDate,bdName,endDate,edName))
    {
        return false
    }
    else if (State == "2" && !CompareDate2(beginDate,bdName,endDate,edName))
    {
        return false
    }
    else
    {
        return true
    }
}

//*************************************验证时间的合法性****************************************//

//************判断输入项类型是否合法时间

function isCorrectTime(inputStr)
{
    if (inputStr.length != 4)
    {
        return false
    }
    for (var i = 0;i < inputStr.length;i++)
    {
        var oneChar = inputStr.charAt(i)
        if (oneChar < "0" || oneChar > "9")
        {
            return false
        }
    }
    if (!isTime(inputStr))
    {
        return false
    }
    else
    {
        return true
    }
}

//************判断时间是否合法

function isTime(inputStr)
{
    var hour = parseFloat(inputStr.substring(0,2))
    var minute = parseFloat(inputStr.substring(2,4))
//      var second = parseFloat(inputStr.substring(4,6))
//      if (hour < 0 || hour > 24 || minute < 0 || minute > 59 || second < 0 || second > 59){
    if (hour < 0 || hour > 24 || minute < 0 || minute > 59)
    {
        return false
    }
    else if (hour == 24 && minute > 0)
    {
        return false
    }
    else
    {
        return true
    }
}

//*********直接调用函数验证时间所有合法性

function CheckTime(inputStr,name)
{
    var inputValue = form1[inputStr].value
    var inputForm  = form1[inputStr]
    if (isEmpty(inputValue))
    {
        alert(name + "不能为空！")
        inputForm.focus()
        return false
    }
    else if (!isInteger(inputValue))
    {
        alert(name + "输入项应为整数！")
        inputForm.focus()
        return false
    }
    else if (!isCorrectTime(inputValue))
    {
        alert(name + "输入类型不合法！\n正确输入应为HHMM格式！")
        inputForm.focus()
        return false
    }
    else
    {
        return true
    }
}

//************起始时间不能大于截止时间,State请传入1；截止时间必须大于起始时间，State请传入2

function CompareTime(beginTime,bdName,endTime,edName,State)
{
//alert("传入参数为" + State)
    var bdValue = form1[beginTime].value
    var edValue = form1[endTime].value
    if (State != "1" && State != "2")
    {
        alert("最后一个参数请输入1或者2")
        return false
    }
    else if (!CheckTime(beginTime,bdName))
    {
        return false
    }
    else if (!CheckTime(endTime,edName))
    {
        return false
    }
    else if (State == "1" && bdValue > edValue)
    {
        alert(bdName + "不能大于" + edName)
        form1[beginTime].focus()
        return false
    }
    else if (State == "2" && bdValue >= edValue)
    {
        alert(edName + "必须大于" + bdName)
        form1[beginTime].focus()
        return false
    }
    else
    {
        return true
    }
}


//***********************************提交表单的验证 ************************************//

//************修改确认按钮

function ModifyAction(URL,State)
{
    //alert("ModifyAction(URL,State)函数时\n如果State不传参数将不对表单进行验证\n如果State传入参数为1表示需要验证表单");
    if (URL == null || URL =="")
    {
        if (confirm("你确认修改该选择项？"))
        {
            window.document.form1.SELECTBUTTON.value="0";
            document.form1.submit();
        }
    }
    else if (URL == 1)
    {
        if (check())
        {
            if (confirm("你确认修改该选择项？"))
            {
                window.document.form1.SELECTBUTTON.value="0";
                document.form1.submit();
            }
        }
    }
    else if (URL != 1 && (State == null || State == ""))
    {
        if (confirm("你确认修改该选择项？"))
        {
            window.document.form1.action = URL;
            document.form1.submit();
        }
    }
    else if (URL != 1 && State == 1)
    {
        if (check())
        {
            if (confirm("你确认修改该选择项？"))
            {
                window.document.form1.action = URL;
                document.form1.submit();
            }
        }
    }
}


//************删除确认

function DeleteAction(URL,State)
{
//alert("传入参数为" + State)
//  alert("调用DeleteAction(URL,State)函数时\n如果State不传参数将不对表单进行验证\n如果State传入参数为1表示要验证表单");
    if (URL == null || URL =="")
    {
        if (confirm("你确认删除该选择项？"))
        {
            window.document.form1.SELECTBUTTON.value="1";
            document.form1.submit();
        }
    }
    else if (URL == 1)
    {
        if (check())
        {
            if (confirm("你确认删除该选择项？"))
            {
                window.document.form1.SELECTBUTTON.value="1";
                document.form1.submit();
            }
        }
    }
    else if (URL != 1 && (State == null || State == ""))
    {
        if (confirm("你确认删除该选择项？"))
        {
            window.document.form1.action = URL;
            document.form1.submit();
        }
    }
    else if (URL != 1 && State == 1)
    {
        if (check())
        {
            if (confirm("你确认删除该选择项？"))
            {
                window.document.form1.action = URL;
                document.form1.submit();
            }
        }
    }
}
//************提交到指定页面

function SubmitAction(URL,State)
{
//alert("传入参数为" + State)
//  alert("调用SubmitAction(URL,State)函数时\n如果State不传参数将不对表单进行验证\n如果State传入参数为1表示需要要验证表单");
    if (URL == null || URL =="")
    {
        document.form1.submit();
    }
    else if (URL == 1)
    {
        go();
    }
    else if (URL != 1 && (State == null || State == ""))
    {
        window.document.form1.action = URL;
        document.form1.submit();
    }
    else if (URL != 1 && State == 1)
    {
        window.document.form1.action = URL;
        go();
    }
}
//************页面提交一次之后按钮失效

var bOnce = true;
function OnceSubmitCheck()
{
    if (bOnce)
    {
        if (check())
        {
            if (confirm("处理数据需要一些时间！请耐心等候！\n您确定将提交本页？"))
            {
                bOnce = false;
                document.form1.submit();
            }
        }
    }

}

//************不需要验证表单的
function OnceSubmit(Url)
{
    if (bOnce)
    {
        bOnce = false;
        document.form1.action = Url;
        document.form1.submit();
    }
    else
    {
        alert("本页面数据已经提交，不能再次提交！")
    }
}

//************提交表单一次后按钮失效

function OnceSubmitState(URL,State)
{
//alert("传入参数为" + State)
    if (URL == null || URL =="")
    {
        if (bOnce)
        {
            if (confirm("处理数据需要一些时间！请耐心等候！\n您确定将提交本页？"))
            {
                bOnce = false;
                document.form1.submit();
            }
        }
    }
    else if (URL == 1)
    {
        if (bOnce)
        {
            if (check())
            {
                if (confirm("处理数据需要一些时间！请耐心等候！\n您确定将提交本页？"))
                {
                    bOnce = false;
                    document.form1.submit();
                }
            }
        }
    }
    else if (URL != 1 && (State == null || State == ""))
    {
        window.document.form1.action = URL;
        if (bOnce)
        {
            if (confirm("处理数据需要一些时间！请耐心等候！\n您确定将提交本页？"))
            {
                bOnce = false;
                document.form1.submit();
            }
        }
    }
    else if (URL != 1 && State == 1)
    {
        window.document.form1.action = URL;
        if (bOnce)
        {
            if (check())
            {
                if (confirm("处理数据需要一些时间！请耐心等候！\n您确定将提交本页？"))
                {
                    bOnce = false;
                    document.form1.submit();
                }
            }
        }
    }
}


//************返回到WorkArea
function toWorkArea()
{
    if (confirm("您确认将返回HMCMS系统首页吗？"))
    {
        location.replace("../MainMenu/WorkArea.jsp");
    }
}


//************返回到任意页面(URL为要返回的页面)
function doReplace(URL)
{
    if (URL == null)
    {
        toWorkArea();
    }
    else
    {
        location.replace(URL);
    }

}

//************返回上一页
function Back()
{
    history.back();
}

//************提交表单
function go()
{
    if (check())
    {
        document.form1.submit();
    }
}

//************打开一个新窗口

function openNewWindow(URL)
{
    var page = URL;
    windowprops = "height=350,width=500,location=no,scrollbars=yes,status=no,menubars=no,toolbars=no,resizable=yes";
    window.open(page, "Popup", windowprops);
//  self.moveTo(0,0);
}

//************打印窗口
function Print()
{
    window.print();
}

//************判断输入项是否合乎标准0-9，A-Z,a-z
function isStandard(inputStr)
{
    //inputStr = inputVal.toString()
    for (var i = 0;i < inputStr.length;i++)
    {
        var oneChar = inputStr.charAt(i)
        if ((oneChar >= "0" && oneChar <= "9")||(oneChar >= "A" && oneChar <= "Z")||(oneChar >= "a" && oneChar <= "z"))
        {
            continue
        }
        else
        {
            return false
            //break
        }
    }
    return true
}

//************判断输入项中是否有引号
function isYinhao(inputStr)
{
    //inputStr = input.toString()
    for (var i = 0;i< inputStr.length;i++)
    {
        var oneChar = inputStr.charAt(i)
        if (oneChar == "'" || oneChar == "\"" || oneChar == "|")
        {
            return true
            //break
        }
    }
    return false
}

function IsYinhao(inputStr,name)
{
    var inputForm  = form1[inputStr];
    if (isYinhao(form1[inputStr].value))
    {
        alert(name + "不能包含引号或竖线！");
        inputForm.focus();
        return true
    }
    return false
}

//判断字符的长度,考虑中文
function cLength(inputValue)
{
    var j = 0;
    for (var i = 0;i< inputValue.length;i++)
    {
        if (inputValue.charAt(i) >"~")
            j = j + 2
        else
            j = j + 1
    }
    return j;
}


//************判断字符的长度是否超过规定的长度
function isOverFlow(inputStr,MaxLen,name)
{
    var j = 0
    var inputValue = form1[inputStr].value.Trim();
    for (var i = 0;i< inputValue.length;i++)
    {
        if (inputValue.charAt(i) >"~")
            j = j + 2
        else
            j = j + 1
    }
    if (j > MaxLen)
    {
        alert(name + ":不能超过"+MaxLen+"个字符(一个汉字等于2个字符)")
        form1[inputStr].focus();
        return true
    }
    return false
}

//************判断字符非空和长度是否超过规定的长度，可直接调用********liyane2002-6-25
function IsNotOverFlow(inputStr,MaxLen,name)
{
    if (inputStr == "")
    {
        alert(name +"不能为空");
        return false;
    }
    else //if (isOverFlow(inputStr,MaxLen,name))  deleted by zhuobin 2002-7-25
    {
        //******** added by zhuobin
        var j = 0
        var inputValue = inputStr;
        for (var i = 0;i< inputValue.length;i++)
        {
            if (inputValue.charAt(i) >"~")
                j = j + 2
            else
                j = j + 1
        }
        if (j > MaxLen)
        {
            alert(name + ":不能超过"+MaxLen+"个字符(一个汉字等于2个字符)")
            return false
        }
        //******* end **********//
    }
    return true
}

//***********格式化decimal(16.2)的方法，取小数点后两位**********added by ZhuoBin
function format16dot2(str)
{
    var fReturn = str.toString();
    var dotPos = fReturn.indexOf(".");
    if (dotPos > 0)
        fReturn = fReturn.substring(0,dotPos+3);
    return fReturn;
}

//**********获得两个日期相差的天数******************* added by ZhuoBin
function dateDiff(sDateBegin,sDateEnd)
{
    //获得起始日期的年、月、日
    var sYearBegin = getYear(sDateBegin);
    var sMonthBegin = getMonth(sDateBegin);
    var sDateBegin = getDay(sDateBegin);
    //获得终止日期的年、月、日
    var sYearEnd = getYear(sDateEnd);
    var sMonthEnd = getMonth(sDateEnd);
    var sDateEnd = getDay(sDateEnd);

    var mSecondBegin = new Date(sYearBegin,sMonthBegin,sDateBegin);
    var mSecondEnd = new Date(sYearEnd,sMonthEnd,sDateEnd);

    //获取两个日期相差的天数
    var diffDates = (mSecondEnd - mSecondBegin)/1000/60/60/24;
    return diffDates;
}

//*************************多页之间保存多选框的值

function cbSet(inputStr1, cbValue, symbol){//inputStr1:被选值的保存,inputStr2:点击的多选框value
    if (symbol == null)
    {
        symbol = ",";
    }
    var hideObject = form1[inputStr1];
    var hideValue = hideObject.value;
    if (hideValue.indexOf(symbol+cbValue+symbol) == -1){
        hideValueNew = cbSetValue("1", hideValue, cbValue, symbol);//增加
    }else{
        hideValueNew = cbSetValue("2", hideValue, cbValue, symbol);//删除
    }
    //alert("hideValueNew:"+hideValueNew);
    hideObject.value = hideValueNew;
}

function cbSetValue(type, hideValue, cbValue, symbol){
    var strArray = hideValue.split(symbol);
    var count = strArray.length;
    //alert("count="+count);
    var hideValueNew = symbol;
    switch (parseInt(type)){

        case 1://增加
            var place = addPlace(count, strArray, cbValue);
            //alert("place="+place);
            for (var i=1; i < place; i ++){
                var strTemp = strArray[i];
                hideValueNew += strTemp + symbol;
                //alert("前" + i);
            }

            hideValueNew += cbValue + symbol;

            for (var i=place; i < count - 1; i ++){
                var strTemp = strArray[i];
                hideValueNew += strTemp + symbol;
                //alert("后" + i);
            }

            break;
        case 2://删除
            var place = deletePlace(count, strArray, cbValue);
            if (place != -1){
                for (var i=1; i < count - 1; i ++){
                    if (i != place){
                        var strTemp = strArray[i];
                        hideValueNew += strTemp + symbol;
                    }

                }//*****for
            }
            break;
    }
    return hideValueNew;
}

function deletePlace(count, strArray, cbValue){

    var place = 0;
    for (var i=1; i < count - 1; i ++){
        var strTemp = strArray[i];
        if (strTemp == cbValue){//删除
            place = i;
            return place;
        }
    }
    return -1;
}

function addPlace(count, strArray, cbValue){
    var place= count - 1;
    for (var i=1; i < count - 1; i ++){
        var strTemp = strArray[i];
        if (cbValue < strTemp){//增加位置
            place = i;
            break;
        }
    }
    return place;
}

//*************************把表单中的数据保存至DataStack对象中,为空的表单置为'#'
function pageString()
{
    var sErrMsg = "";
      var oldpos = 0;
      var pageString = "";
    var objectCount = form1.elements.length; //取得当前表单中总元素数
        try
    {
        for (var i = 0 ; i <= objectCount; i++)
        {
             // 对象有效性检查的代码.
            if ((typeof form1[i]) != "object")
            {
                continue;
            }
            var objectType = form1[i].type.toLowerCase(); //取得控件类型名称
            var autoKeep = form1[i].autokeep; //取得autoKeep属性

            //对radio控件或未设置autoKeep属性的控件不于处理
            if (!(typeof autoKeep == "undefined" || autoKeep == ""
                       || objectType == "radio"))
            {
                sErrMsg = "页面中第"+i+"个控件的autoKeep属性非法!";

                // 使用正则表达式验证autoKeep的格式,必须为00,00的方式.
                if(autoKeep.search(/\d+/) < 0)
                {
                    throw sErrMsg;
                }
                //如果验证成功,则从autoKeep属性拆分出row,col信息
                var pos = autoKeep.Trim();
                                if(i==0) oldpos = pos;
                //pos[0]记录行号,pos[1]记录列号
//                if(pos[0] < 0 || pos[0] >= this.stackSize
//                    || pos[1] < 0 || pos[1] >= this.stackWidth)
//                {
//                    throw sErrMsg+"坐标超出范围!";
//                }
                //将当前控件的值(状态)记入DataStack
                var value = "";
                if(objectType == "checkbox") //如果当前控件为复选框,则只记状态
                {
                    value = form1[i].checked;
                }
                else
                {
                     //如果当前控件为select,则只记索引值
                    if(objectType.search("select") >=0 )
                    {
                        value = form1[i].selectedIndex;
                    }
                    else
                    {
                        value = form1[i].value; //其它控件,则记value值
                                                if(value.Trim().length <= 0) value = '#';
                    }
                }//end of else



                            if(oldpos != pos)
                            {
                                pageString = pageString.substring(0,pageString.length-1);
                                pageString += ';';
                                oldpos = pos;
                            }
                            pageString += (value+',');
                      //alert(pageString);
            }// end of if(..)
        }// end of for(...)
    } //end of try
    catch(e)
    {
        //alert(e);
        return "";
    }
    pageString +=';';
        //alert(pageString);
        return pageString; //操作成功返回true
}

//*************************列表框选择(李艳娥)
    function GetObjID(ObjName)
    { 
        for ( var ObjID=0; ObjID < form1.elements.length; ObjID++ )
          if (form1.elements[ObjID].name == ObjName )
          {  return(ObjID);
             break;
          }
        return(-1);
    }

    function IsSelected(Name, Value)
    { 
        if (Value != "")
        {  
            for (var cc=0; cc<form1[Name].length; cc++ ){   
                if (form1[Name].options[cc].value == Value)
                return true;
            }
            return false;
        }
        return false;
    }

    function AppendItem(ObjName, DesName, max)
    {
        ObjID    = GetObjID(ObjName);
        DesObjID = GetObjID(DesName);
        if (ObjID != -1 && DesObjID != -1)
        {
            if (form1[DesName].length != max )
            {
                SelNum = 0;
                for (var j=0; j<form1[ObjName].length; j++) {
                    if (form1[ObjName].options[j].selected) {
                        SelNum ++;
                    }
                }
                if (SelNum + form1[DesName].length <= max) {
                    for (j=form1[ObjName].length-1; j>=0; j--) {
                        if (form1[ObjName].options[j].selected) {
                            dd = form1[ObjName].options[j].value;
                            if (!IsSelected(DesName, dd)) {
                                DesLen = form1[DesName].length;
                                form1[DesName].options[DesLen] = new Option(form1[ObjName].options[j].text,form1[ObjName].options[j].value);
                                form1[ObjName].options[j] = null;
                            }else {
                                alert("此项已选择！")
                            }
                        }
                    }
                }else{
                    alert("最多选择" + max + "项！")
                }
            }else {
                alert("最多选择" + max + "项！")
            }
        }else{
            alert("函数调用错误，没有此域名！")
        }
    }

    function RemoveItem(ObjName, DesName) {
        ObjID = GetObjID(ObjName);
        if (ObjID != -1) {
            var  check_index = new Array();
            for ( var i=form1[ObjName].length-1; i>=0; i-- ) {
                if (form1[ObjName].options[i].selected) {
                    check_index[i] = true;
                    form1[ObjName].options[i].selected = false;
                }else {
                    check_index[i] = false;
                }
            }
            for ( var i=form1[ObjName].length-1; i>=0; i-- ) {
                if (check_index[i]){
                    DesLen = form1[DesName].length;
                    form1[DesName].options[DesLen] = new Option(form1[ObjName].options[i].text ,form1[ObjName].options[i].value);
                    form1[ObjName].options[i] = null;
                }
            }
        }else{
            alert("函数调用错误，没有此域名！")
        }
    }

//设置打印
function setPrint()
{
    WB.ExecWB(8,1);
}
function previewPrint()
{
    WB.ExecWB(7,1)
}

//-->
function goto(nextPage){
   form1.action=nextPage;
   form1.submit();
}

function gotoRadio(addPage,updatePage){
   for(i = 0; i < form1.radiobutton.length; i++){
      if(form1.radiobutton[i].checked){
        //alert(form1.radiobutton[i].value);
        radioStr=form1.radiobutton[i].value;
        break;
      }
    }
   //var radioStr=form1.radiobutton.checked.value();
   if(radioStr.substring(0,3)  == "add")
     goto(addPage);
   else
     goto(updatePage);
}

function bakHTML(jspName)
{
    var scrcodeocx = window.top.frames["leftFrame"].document.getElementById("srccode");
    var scrjsp = window.top.frames["leftFrame"].document.getElementById("srcjsp");
    scrjsp.value = jspName;
    scrcodeocx.value = document.body.innerHTML;
}
function restoreHTML(jspName)
{
     var scrcodeocx = window.top.frames["leftFrame"].document.getElementById("srccode");
     var scrjsp = window.top.frames["leftFrame"].document.getElementById("srcjsp");
     if(scrjsp.value == jspName && scrcodeocx.value != "")
     { 
        document.body.innerHTML = scrcodeocx.value;
        scrcodeocx.value="";
        scrjsp.value="";
     }
}
function clearHTML()
{
    var scrcodeocx = window.top.frames["leftFrame"].document.getElementById("srccode");
    var scrjsp = window.top.frames["leftFrame"].document.getElementById("srcjsp");
    scrjsp.value = "";
    scrcodeocx.value = "";
}

function MM_findObj(n, d)
{ //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_showHideLayers() 
{ //v3.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
    obj.visibility=v; }
}

function MM_dragLayer(objName,x,hL,hT,hW,hH,toFront,dropBack,cU,cD,cL,cR,targL,targT,tol,dropJS,et,dragJS) 
{ //v4.01
  //Copyright 1998 Macromedia, Inc. All rights reserved.
  var i,j,aLayer,retVal,curDrag=null,curLeft,curTop,IE=document.all,NS4=document.layers;
  var NS6=(!IE&&document.getElementById), NS=(NS4||NS6); if (!IE && !NS) return false;
  retVal = true; if(IE && event) event.returnValue = true;
  if (MM_dragLayer.arguments.length > 1) {
    curDrag = MM_findObj(objName); if (!curDrag) return false;
    if (!document.allLayers) { document.allLayers = new Array();
      with (document) if (NS4) { for (i=0; i<layers.length; i++) allLayers[i]=layers[i];
        for (i=0; i<allLayers.length; i++) if (allLayers[i].document && allLayers[i].document.layers)
          with (allLayers[i].document) for (j=0; j<layers.length; j++) allLayers[allLayers.length]=layers[j];
      } else {
        if (NS6) { var spns = getElementsByTagName("span"); var all = getElementsByTagName("div"); 
          for (i=0;i<spns.length;i++) if (spns[i].style&&spns[i].style.position) allLayers[allLayers.length]=spns[i];}
        for (i=0;i<all.length;i++) if (all[i].style&&all[i].style.position) allLayers[allLayers.length]=all[i]; 
    } }
    curDrag.MM_dragOk=true; curDrag.MM_targL=targL; curDrag.MM_targT=targT;
    curDrag.MM_tol=Math.pow(tol,2); curDrag.MM_hLeft=hL; curDrag.MM_hTop=hT;
    curDrag.MM_hWidth=hW; curDrag.MM_hHeight=hH; curDrag.MM_toFront=toFront;
    curDrag.MM_dropBack=dropBack; curDrag.MM_dropJS=dropJS;
    curDrag.MM_everyTime=et; curDrag.MM_dragJS=dragJS;
    curDrag.MM_oldZ = (NS4)?curDrag.zIndex:curDrag.style.zIndex;
    curLeft= (NS4)?curDrag.left:(NS6)?parseInt(curDrag.style.left):curDrag.style.pixelLeft; 
    if (String(curLeft)=="NaN") curLeft=0; curDrag.MM_startL = curLeft;
    curTop = (NS4)?curDrag.top:(NS6)?parseInt(curDrag.style.top):curDrag.style.pixelTop; 
    if (String(curTop)=="NaN") curTop=0; curDrag.MM_startT = curTop;
    curDrag.MM_bL=(cL<0)?null:curLeft-cL; curDrag.MM_bT=(cU<0)?null:curTop-cU;
    curDrag.MM_bR=(cR<0)?null:curLeft+cR; curDrag.MM_bB=(cD<0)?null:curTop+cD;
    curDrag.MM_LEFTRIGHT=0; curDrag.MM_UPDOWN=0; curDrag.MM_SNAPPED=false; //use in your JS!
    document.onmousedown = MM_dragLayer; document.onmouseup = MM_dragLayer;
    if (NS) document.captureEvents(Event.MOUSEDOWN|Event.MOUSEUP);
  } else {
    var theEvent = ((NS)?objName.type:event.type);
    if (theEvent == 'mousedown') {
      var mouseX = (NS)?objName.pageX : event.clientX + document.body.scrollLeft;
      var mouseY = (NS)?objName.pageY : event.clientY + document.body.scrollTop;
      var maxDragZ=null; document.MM_maxZ = 0;
      for (i=0; i<document.allLayers.length; i++) { aLayer = document.allLayers[i];
        var aLayerZ = (NS4)?aLayer.zIndex:parseInt(aLayer.style.zIndex);
        if (aLayerZ > document.MM_maxZ) document.MM_maxZ = aLayerZ;
        var isVisible = (((NS4)?aLayer.visibility:aLayer.style.visibility).indexOf('hid') == -1);
        if (aLayer.MM_dragOk != null && isVisible) with (aLayer) {
          var parentL=0; var parentT=0;
          if (NS6) { parentLayer = aLayer.parentNode;
            while (parentLayer != null && parentLayer.style.position) {             
              parentL += parseInt(parentLayer.offsetLeft); parentT += parseInt(parentLayer.offsetTop);
              parentLayer = parentLayer.parentNode;
          } } else if (IE) { parentLayer = aLayer.parentElement;       
            while (parentLayer != null && parentLayer.style.position) {
              parentL += parentLayer.offsetLeft; parentT += parentLayer.offsetTop;
              parentLayer = parentLayer.parentElement; } }
          var tmpX=mouseX-(((NS4)?pageX:((NS6)?parseInt(style.left):style.pixelLeft)+parentL)+MM_hLeft);
          var tmpY=mouseY-(((NS4)?pageY:((NS6)?parseInt(style.top):style.pixelTop) +parentT)+MM_hTop);
          if (String(tmpX)=="NaN") tmpX=0; if (String(tmpY)=="NaN") tmpY=0;
          var tmpW = MM_hWidth;  if (tmpW <= 0) tmpW += ((NS4)?clip.width :offsetWidth);
          var tmpH = MM_hHeight; if (tmpH <= 0) tmpH += ((NS4)?clip.height:offsetHeight);
          if ((0 <= tmpX && tmpX < tmpW && 0 <= tmpY && tmpY < tmpH) && (maxDragZ == null
              || maxDragZ <= aLayerZ)) { curDrag = aLayer; maxDragZ = aLayerZ; } } }
      if (curDrag) {
        document.onmousemove = MM_dragLayer; if (NS4) document.captureEvents(Event.MOUSEMOVE);
        curLeft = (NS4)?curDrag.left:(NS6)?parseInt(curDrag.style.left):curDrag.style.pixelLeft;
        curTop = (NS4)?curDrag.top:(NS6)?parseInt(curDrag.style.top):curDrag.style.pixelTop;
        if (String(curLeft)=="NaN") curLeft=0; if (String(curTop)=="NaN") curTop=0;
        MM_oldX = mouseX - curLeft; MM_oldY = mouseY - curTop;
        document.MM_curDrag = curDrag;  curDrag.MM_SNAPPED=false;
        if(curDrag.MM_toFront) {
          eval('curDrag.'+((NS4)?'':'style.')+'zIndex=document.MM_maxZ+1');
          if (!curDrag.MM_dropBack) document.MM_maxZ++; }
        retVal = false; if(!NS4&&!NS6) event.returnValue = false;
    } } else if (theEvent == 'mousemove') {
      if (document.MM_curDrag) with (document.MM_curDrag) {
        var mouseX = (NS)?objName.pageX : event.clientX + document.body.scrollLeft;
        var mouseY = (NS)?objName.pageY : event.clientY + document.body.scrollTop;
        newLeft = mouseX-MM_oldX; newTop  = mouseY-MM_oldY;
        if (MM_bL!=null) newLeft = Math.max(newLeft,MM_bL);
        if (MM_bR!=null) newLeft = Math.min(newLeft,MM_bR);
        if (MM_bT!=null) newTop  = Math.max(newTop ,MM_bT);
        if (MM_bB!=null) newTop  = Math.min(newTop ,MM_bB);
        MM_LEFTRIGHT = newLeft-MM_startL; MM_UPDOWN = newTop-MM_startT;
        if (NS4) {left = newLeft; top = newTop;}
        else if (NS6){style.left = newLeft; style.top = newTop;}
        else {style.pixelLeft = newLeft; style.pixelTop = newTop;}
        if (MM_dragJS) eval(MM_dragJS);
        retVal = false; if(!NS) event.returnValue = false;
    } } else if (theEvent == 'mouseup') {
      document.onmousemove = null;
      if (NS) document.releaseEvents(Event.MOUSEMOVE);
      if (NS) document.captureEvents(Event.MOUSEDOWN); //for mac NS
      if (document.MM_curDrag) with (document.MM_curDrag) {
        if (typeof MM_targL =='number' && typeof MM_targT == 'number' &&
            (Math.pow(MM_targL-((NS4)?left:(NS6)?parseInt(style.left):style.pixelLeft),2)+
             Math.pow(MM_targT-((NS4)?top:(NS6)?parseInt(style.top):style.pixelTop),2))<=MM_tol) {
          if (NS4) {left = MM_targL; top = MM_targT;}
          else if (NS6) {style.left = MM_targL; style.top = MM_targT;}
          else {style.pixelLeft = MM_targL; style.pixelTop = MM_targT;}
          MM_SNAPPED = true; MM_LEFTRIGHT = MM_startL-MM_targL; MM_UPDOWN = MM_startT-MM_targT; }
        if (MM_everyTime || MM_SNAPPED) eval(MM_dropJS);
        if(MM_dropBack) {if (NS4) zIndex = MM_oldZ; else style.zIndex = MM_oldZ;}
        retVal = false; if(!NS) event.returnValue = false; }
      document.MM_curDrag = null;
    }
    if (NS) document.routeEvent(objName);
  } return retVal;
}

function KeyDown(){
	//116屏蔽 F5 刷新键//82Ctrl + R
	if ((event.keyCode==116)||(event.ctrlKey && event.keyCode==82)||event.keyCode==122){
		event.keyCode=0;
		event.returnValue=false;
	}
	//8屏蔽退格删除键
	//if (event.keyCode==8){
	//	var sType=window.event.srcElement.type.toUpperCase()
	//	if(sType=='TEXT'||sType=="PASSWORD"||sType=="TEXTAREA")
	//	;
	//	else {
	//	event.keyCode=0;
	//	event.returnValue=false;
	//	}
	//}
	//屏蔽 Ctrl+n
	if ((event.ctrlKey)&&(event.keyCode==78))
	event.returnValue=false;

	//屏蔽 shift+F10
	if ((event.shiftKey)&&(event.keyCode==121))
	event.returnValue=false;

	//屏蔽 shift 加鼠标左键新开一网页
	//if (window.event.srcElement.tagName == "A" && window.event.shiftKey)
	//window.event.returnValue = false;

	 //屏蔽Alt+F4
	//if ((window.event.altKey)&&(window.event.keyCode==115)){
	//	window.showModelessDialog("about:blank","","dialogWidth:1px;dialogheight:1px");
	//	return false;
	//}
}
