﻿// JScript 文件
   
//返回字符串input的html编码
function HTMLEncode ( input )
{
    var converter = document.createElement("DIV");
    converter.innerText = input;                
    var output = converter.innerHTML;  
    converter = null;  
    
    //将由\r\n转换而来的<BR>还原为\r\n
    output=output.replace(/<BR>/g,"\r\n");
    
    return output;
}

//清空ID以placeHolderID_prefix开头的对象的innerHTML，以htmlencode方式编码contentHolder对象的innerHTML,返回编码。原对象innerHTML不变
    function getClearingInnerHTML(contentHolderID,placeHolderID_prefix,tagName)
    {     
        //清空占位符内容
        var pdiv=document.getElementById(contentHolderID);
        var divContent=document.createElement('DIV');
        divContent.innerHTML=pdiv.innerHTML;              
        var divs=divContent.getElementsByTagName('SPAN');
        for( var i=0;i<divs.length;i++)
        {
            var o=divs[i];
            var len=placeHolderID_prefix.length;
            if(o.id!=null&&o.id.length>=len&&o.id.substring(0,len)==placeHolderID_prefix)
            {
                o.innerHTML="";
            }
        }
        
        var s=divContent.innerHTML;
        
        //htmlencode   
        s=HTMLEncode(s);   
        
        return s
    }
   
   

//刷新当前页
function refreshParentWindow(params)
{
    if(param==null)
    {
        param="";
    }
    //添加参数给父窗口的queryString
    var url=window.opener.location.toString();
    if(url.lastIndexOf("?")>url.lastIndexOf("/"))
    {
        url+="&&"+params;
    }
    else
    {
        url+="?"+params;
    }
    //刷新父窗口
    window.opener.location=url;
}


//在当前页面的holder内添加1张图片,将图片名称及url追加保存到input内
//holderId-图片的容器ID  saverId-保存图片信息的input的Id
function addPicture(holderId,saverId,picId,picUrl,picName)
{ 
    var holder=document.getElementById(holderId);
    var saver=document.getElementById(saverId);
    if(holder==null||saver==null)
    {
        return;
    }
    
    
    for(var i=0;i<holder.childNodes.length;i++)
    {
        var e=holder.childNodes[i].childNodes[0];                        
        if(e.tagName=="IMG"&&e.id==picId)
        {
            alert("这张图片已经添加过了");
            return;
        }
    }
  
    var div=document.createElement("div");
    var img=document.createElement("image");
    img.id=picId;
    img.src=picUrl;
    img.className="listImg3";
    div.appendChild(img);
    div.innerHTML+="<br/>"+picName;
    div.className="listDiv";
    holder.appendChild(div);
    
    saver.value+=picName+"="+ picUrl+";";
    
}

      
//清空输入框的内容
function clearInputValue(inputId)
{
    var input=document.getElementById(inputId);
    if(input!=null)
    {
        input.value="";
    }
}    
   

//检验字符串去除两端空格后是否为空
function isStringNull(s)
{
    if(s==null||s==""||trim(s)=="")
    {
        return true;
    }
    else
    {
        return false;
    }
}    
 

//浮点数据格式检验。为空返回true
function isFloatFormatValid(f)
{
    if(f==null||f=="")
    {
        return true;
    }
    var reg=new RegExp("^\\d*\\.*\\d+$");
    return reg.test(f);
}          
   
      
//电话号码格式检验。为空返回false
function isPhoneValid(phone)
{
    phone=trim(phone);
    if(phone==null||phone=="")
    {
        return false;
    }
    var reg=new RegExp("(^\\d{3,4}[-－]*\\d{7,8}$)|(^\\d{3,4}[-－]*\\d{7,8}[-转－]\\d{1,4}$)|(^0085[-－+]*\\d{8}$)");
    return reg.test(phone);
}      

//非负整型数据格式检验。正整数返回true,为空返回true，其它返回false
function isIntegerFormatValid(integer)
{
    if(integer==null||integer=="")
    {
        return true;
    }
    integer=trim(integer);
    var reg=new RegExp("^\\d*$");
    return reg.test(integer);
}    

//时间数据格式检验。为空返回true
function isDateTimeFormatValid(dt)
{
    if(dt==null||dt=="")
    {
        return true;
    }
    var reg=new RegExp("^((((1[6-9]|[2-9]\\d)\\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\\d|3[01]))|(((1[6-9]|[2-9]\\d)\\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\\d|30))|(((1[6-9]|[2-9]\\d)\\d{2})-0?2-(0?[1-9]|1\\d|2[0-8]))|(((1[6-9]|[2-9]\\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$");
    return reg.test(dt);
} 

//将html表格输出到Excel中
function outPutTableToExcel(table)
{
    var xls;
    try
    {
        xls=new ActiveXObject("Excel.Application");
    }
    catch(e)
    {
        alert("要导出记录，您必须安装Excel电子表格软件，同时浏览器须使用“ActiveX 控件”，您的浏览器须允许执行控件。");
        window.open(getCompanyAppUrl()+"help/outputHelp.aspx");
        return;
    }
    xls.Visible=true;    
    var workBook=xls.Workbooks.Add();
    var sheet=xls.WorkSheets(1);                             
    
    var sel = document.body.createTextRange();
    if(document.getElementById(table.id)!=null)
    {
        sel.moveToElementText(table);
        sel.select();
        document.execCommand("Copy");
        sheet.Paste();        
    }
    else
    {
        document.body.appendChild(table);
        sel.moveToElementText(table);
        sel.select();
        document.execCommand("Copy");
        sheet.Paste();
        
        document.body.removeChild(table);
    }
    
    xls.UserControl=true;
    sheet=null;
    workBook=null;
    xls=null;    
}


//获取表中选中的行并输出到EXCEL
//chkColNo－checkBox所在列的序号，从0开始。checkBox应为此列所含input中的第一个元素
//输出表中去除了checkBox
function outPutSelectedTableRowsToExcel(tableId,chkColNo)
{
    var table=document.getElementById(tableId);
    if(table==null)
    {
        alert("未找到要输出的表");
        return ;
    }
    var outTable=document.createElement("table");
    outTable.id="toExcelTable";
    if(table.tHead!=null)
    {
        outTable.appendChild(table.tHead.cloneNode(true));
    }
    
    
    var rows=table.rows;
    
    if(rows==null)
    {
        alert("表中无行");
        return ;
    }
    
    
    for(var i=0;i<rows.length;i++)
    {
        var tr=rows[i];
        if(tr.nodeName=="TR")
        {
            try
            {
                var inputs=tr.childNodes[chkColNo].getElementsByTagName("input");
                if(inputs.length>0)
                {
                    var chk=inputs[0];
                    if(chk.type=="checkbox")
                    {
                        if(chk.checked==true)
                        {
                            var newTr=tr.cloneNode(true);
                            var newInputs=newTr.childNodes[chkColNo].getElementsByTagName("input");
                            var newChk=newInputs[0];
                            newChk.removeNode(true);
                            outTable.appendChild(newTr);
                        }
                    }
                }
                
            }
            catch(e)
            {}
        }
    }
    
    outPutTableToExcel(outTable);
    
    return ;
}


//设置document.form[0]的onsubmit方法
function setFormOnSubmitMethod(onSubmitMethod)
{
    var form=document.forms[0];
    if(form!=null&&form!="undefined")
    {
        form.onsubmit=onSubmitMethod;
    }   
       
}

//设置窗口大小及位置
function setWindowSizeAndPosition(width,height,x,y)
{
    window.resizeTo(width,height);
    window.moveTo(x,y);

    window.innerWidth=width;
    window.innerHeight=height;
    window.screenX=x;
    window.screenY=y;    
}
    
//设置选择列表的选择项
function setSelectionSelectedValue(selectionId,selectValue)
{
    var selection=document.getElementById(selectionId);
    for(var i=0;i<selection.childNodes.length;i++)
    {
        var option=selection.childNodes[i];
        if(option.value==selectValue)
        {
            option.selected=true;
        }
    }
}


//增加参数值列表到列表控件
function addItemListToListControl(items,listControlId)
{
}

//生成列表项。item.id="listItem"+key;
function createListItem(key,value,withCheckBox,keyDisplay)
{
    var item=document.createElement("div");
    var chk=document.createElement("checkbox");
    var divKey=document.createElement("div");    
    var divValue=document.createElement("div");
    
    item.id="listItem"+key;
    divKey.innerText=key;
    divValue.innerHTML=value;
    
    if(withCheckBox==true)
    {   
        item.appendChild(chk);        
    }
    item.appendChild(divKey);
    item.appendChild(divValue);
    
    if(keyDisplay==true)
    {
        divKey.style.display="block";
    }
    else
    {
        divKey.style.display="none";
    }      
}

//增加参数值到列表控件。设置item.Id=listControlId+"."+item.id
function addItemToListControl(key,value,listControlId,keyDisplay)
{
    var listControl=document.getElementById(listControlId);
    var item=createListItem(key,value,keyDislplay);
    
    listControl.appendChild(item);
    item.Id=listControlId+"."+item.id;
}

////获取列表控件中的选中项，返回{key,value}数组。以item中第一个checkbox选中状态作为项的选择状态，以item中第一个div的内容为key，第二个div的内容为value
//function getSelectedItems(listControlId)
//{
//    var listControl=document.getElementById(listControlId);
//    foreach(var item in listControl.childNodes)
//    {
//        var chks=item.getElementByTagName("checkbox");
//        
//    }
//}

//获取页面中保存的参数表，返回{key,value}数组
function getParamList()
{
}

//显示参数列表
function listParams()
{
}


function submitWithParameter(param)
{
    var iptParam=document.getElementById("iptParam");
    if(iptParam==null)
    {
        iptParam=document.createElement("<input type='hidden' id='iptParam' name='iptParam' value=''/>");
        document.forms[0].appendChild(iptParam);
    }
    iptParam.value=param;
    document.forms[0].submit();
}

//获取参数下拉框选中值
//dropId0,一级参数下拉框ID
//dropId1,二级参数下拉框ID，为null或""时返回drop0选中值
function GetParameterDropDownListSelectedValue(dropId0,dropId1)
{
    var selectedValue="-1";
    
    if(dropId1!=null&&dropId1!="")
    {
        var drop1=document.getElementById(dropId1);
        if(drop1!=null)
        {
            selectedValue=drop1.value;
        }
    }
    if(selectedValue=="-1")
    {
        var drop0=document.getElementById(dropId0);
        if(drop0!=null)
        {
            selectedValue=drop0.value;
        }
    }
    return selectedValue;
}

//设置form.onsubmit函数为f
function onSubmit(f)
{
    var form=document.forms[0];
    form.onsubmit=f;
}


//若是回车事件则提交
function onEnterSubmit()
{
    if(event.keyCode==13)
    {
        document.forms[0].submit();
    }
}

//若回车则引发btnId按钮的clicked事件
function onEnterClickButton(btnId)
{
    var btn=document.getElementById(btnId);
    if(event.keyCode==13)
    {
        if(btn!=null)
        {
            event.keyCode=9;
            btn.click();
        }
    }
}


//全选或全不选控件包含的所有checkbox
//control--包含checkbox的控件
//check--选择true false
function setAllCheckBox(control,check)
{
    if(control==null)
    {
        return;
    }
    if(control.type=="checkbox")
    {
        control.checked=check;
    }
    else
    {
        for(var i=0;i<control.childNodes.length;i++)
        {
            setAllCheckBox(control.childNodes[i],check)
        }
    }
}





function setControlCss(ctl,tagName,type,cssName)
{
    if(ctl.tagName==tagName)
    {
        var cssNm="";
        try
        {
            cssNm=ctl.className;
        }
        catch(ex)
        {
            try
            {
                cssNm=ctl.attributes['class'].toString();
            }
            catch(ex)
            {
                cssNm="";
            }
        }
        if(cssNm=="")
        {
            switch(ctl.tagName)
            {
                case "TABLE":
                        try
                        {
                            ctl.className=cssName;
                        }
                        catch(ex)
                        {
                            ctl.setAttributes("class",cssName);
                        }
                    break;
                case "TD":
                        try
                        {
                            ctl.className=cssName;
                        }
                        catch(ex)
                        {
                            ctl.setAttributes("class",cssName);
                        }
                    break;
                case "INPUT":
                    if(ctl.type=="button")
                    {
                        try
                        {
                            ctl.className=cssName;
                        }
                        catch(ex)
                        {
                            ctl.setAttributes("class",cssName);
                        }
                    } 
                    else if(ctl.type=="button")
                    {
                        try
                        {
                            ctl.className=cssName;
                        }
                        catch(ex)
                        {
                            ctl.setAttributes("class",cssName);
                        }
                    } 
                    break;                
                default:
                        try
                        {
                            ctl.className=cssName;
                        }
                        catch(ex)
                        {
                            ctl.setAttributes("class",cssName);
                        }
                    break;
            }//SWICTH
        }
    }
    else
    {
        for(var i=0;i<ctl.childNodes.length;i++)
        {
            setControlCss(ctl.childNodes[i],tagName,type,cssName);
        }
    }
}

//设置控件中所有tagName类型节点的css类名
//tagName-控件的tagName 请大写，type－当控件为input时的input类型名称，请小写
function setCss(ctlId,tagName,type,cssName)
{
    var ctl=document.getElementById(ctlId);
    if(ctl!=null)
    {
        setControlCss(ctl,tagName,type,cssName);
    }
}

//设置控件中所有表格表头列的css类名
//tagName 请大写，type 请小写
function setTHeadCss(ctlId,cssName)
{  
    var ctl=document.getElementById(ctlId); 
    var tbs;
    if(ctl!=null)
    {
        tbs=ctl.getElementsByTagName("TABLE");
    }
    if(tbs!=null)
    {
        for(var i=0;i<tbs.length;i++)
        { 
            var head=tbs[i].tHead;
            if(head!=null)
            {
                setControlCss(head,"TD",'',cssName);
            }
        }
    }
}


//设置表格中除表头外td的css类名
function setTBodyTdCss(ctlId,cssName)
{
    var ctl=document.getElementById(ctlId); 
    var tbs;
    if(ctl!=null)
    {
        tbs=ctl.getElementsByTagName("TABLE");
    }
    else
    {
        return;
    }
    if(tbs!=null)
    {
        for(var i=0;i<tbs.length;i++)
        { 
        for(var j=0;j<tbs[i].getElementsByTagName("TR").length;j++){
        if(j % 2!=0){
        tbs[i].getElementsByTagName("TR")[j].style.backgroundColor="#F0F8FF";
        }
        }
            var tbody=tbs[i].tBodies[0];
            setControlCss(tbody,"TD",'',cssName);
        }
    }
}

///设置图片的链接
function setImgSrc(img,url)
{
    img.src=url;
}

//图片不能显示时设置缺省显示图片
//img-要设置出错处理的图片
//url-缺省的图片地址
function onImgError(img,url)
{
//    var img0=document.createElement("<img id='imgDft' name='imgDft' />");
    try
    {
        img.alt="-1";
        img.onerror=function (){img.alt="显示图片失败";  }
        img.src=url;
        
//        if(img.alt!="-1")
//        {
//            img.src=url;
//        }
//        else
//        {
//           img.src=url;
//        }
    }
    catch(e)
    {
        img.alt="显示图片失败";
    }
    
}

////图片不能显示时设置缺省显示图片
////img-要设置出错处理的图片
//function onImgError(img)
//{
//    var url=getAppUrl()+"images/withoutphoto.gif";
//    try
//    {
//        img.alt="-1";
//        img.onerror=function (){img.alt="显示图片失败";  }
//        img.src=url;
//        
//    }
//    catch(e)
//    {
//        img.alt="显示图片失败";
//    }
//    
//}

////自动调节企业图标图片大小
//20080312  xzz
function imgwidthheight(img,w,h){
var imgw=img.width;
var imgh=img.height;
if (imgw/imgh>=w/h){
    if(imgw>w){
    img.width=w;
    img.height=w*imgh/imgw;
    }else{
        img.width=imgw;
        img.height=imgh;
        }
}else{
    if(imgh>h){
    img.height=h;
    img.width=h*imgw/imgh;
    }else{
        img.width=imgw;
        img.height=imgh;
        }
    }
}

function trim(s)
{
    return  s.replace(/(^\s*)|(\s*$)/g,"");
}

        
//测试企业用户名格式。返回错误消息，正确返回""
        function checkUserName(uname)
        {
            if(trim(uname)=="")
            {
                 return "用户名不能为空";
            }
            var reg=new RegExp("^[_\\w\\d]{4,16}$");
            if(!reg.test(uname))
            {
                return "用户名格式不正确。请输入4-16个英文、汉字或数字。";
            }    
            
            return "";
        }
        
//测试密码格式和一致性。返回错误消息，正确返回""
        function checkPassword(pwd,rePwd)
        {
            if(pwd==""&&rePwd=="")
            {
                return "密码不能为空";
            }
            if(pwd!=rePwd)
            {
                return "两次输入的密码不一致";
            }
            if(pwd.length<6||pwd.length>16)
            {
                return "密码长度不对，应为6-16";                
            }       
            return "";
        }
        
        //获取企业模块的起始虚拟路径.失败返回""
        function getCompanyAppUrl()
        {
            var s=window.location.href;
            var n=s.indexOf("/Company/");
            var cUrl="";
            if(n>=0)
            {
                cUrl=s.substring(0,n)+"/Company/";
            }
            return cUrl;
        }
        
        
        
        //获取企业模块所属应用程序的虚拟根路径.失败返回""
        function getAppUrl()
        {
            var s=window.location.href;
            var n=s.indexOf("/Company/");
            var cUrl="";
            if(n>=0)
            {
                cUrl=s.substring(0,n)+"/";
            }
            return cUrl;
        }
        
        //计算字符串长度，一个汉字按两个字符计算
        function computeStringLength(str)
        {
             str=str.replace(/[^\x00-\xff]/g,"**");             
             return str.length;            
        }

        //检查字符串str长度是否超过指定数量len,若超过则返回true,否则返回false
        //一个汉字按两个字符计算
        function isStringOverFlow(str,len)
        {
            return computeStringLength(str)>len?true:false;
        }
        
        
        ///检查panel所包含的文本框输入字符串长度是否超限，若超限设置panel内的消息label文字并返回true,否则返回false
        //
        function checkPanelInputStringLength(pnl,tbxId,lbMsgId,len,msg)
        {
            //获取客户端ID包含tbxId的所有node
            
            //获取客户端ID包含msgDivId的所有node
                       
        }
        
        //检查repeater内输入字符串的长度是否超限，若超限设置每行内的消息文字并返回false,否则返回true
        function checkRepeaterInputStringLength(rptId,pnlId,tbxId,lbMsgId,len,msg)
        {
            //获取所有客户端ID包含pnlId的所有node
            //检查node内的输入字符串
            checkPanelInputStringLength(pnl,tbxId,lbMsgId,len,msg);
        }
        
        ///在客户端获取radioButtonList或checkBoxList的选中值。无选中值或读取控件失败时返回"-1"
        ///listControlID-radioButtonList或checkBoxList服务器端控件ID
        function getRadioOrCheckBoxListSelectedValue(listControlID)
        {
            var listControl=document.getElementById(listControlID);
            if(listControl==null)
            {
                return "-1";
            }
            var items=listControl.getElementsByTagName("INPUT");
            
            for(var i=0;i<items.length;i++)
            {
                if(items[i].checked)
                {
                    return items[i].value;
                }
            }
            return "-1";
        }
        
        
    // *********************************************************************
    ///////// 服务器端CustomValidator检验字符串格式的客户端方法 ///////////////   
    ///////// 
    
     //检查字符串长度是否超限－－此方法已过时
    function CheckStrInput(arg,len)
    {
        if(isStringOverFlow(arg.Value,len))
        {
            arg.IsValid=false;
        }
        else
        {
            arg.IsValid=true;
        }
    }
    
    
    
    //检查字符串是否为空-不合法时弹出src.erromessage
    function CheckStrNull(src,arg)
    {
        var str=arg.Value;  
        
        if(isStringNull(str))
        {
            alert(src.errormessage);
            arg.IsValid= false;
        }
        else
        {
            arg.IsValid=true;
        }       
        
    }
    
    //检查日期格式是否正确
    function CheckDate(src,arg)
    { 
        if(src.validateemptytext=="true"&&arg.Value=="")
        {
            alert("日期不能为空");
            arg.IsValid=false;
            return;
        }
        if(isChineseInString(arg.Value))
        {
            alert(src.errormessage+' 输入中包含汉字字符，请关闭输入法后再试');
        }
        if(!isDateValid(arg.Value))
        {
            arg.IsValid=false;
            alert(src.errormessage);
            return ;
        }
        else
        {
            arg.IsValid=true;
        } 
    }
    

    
    //检查是否为非负整数
    function CheckStrInteger(src,arg)
    {
        var str=arg.Value;  
        
        if(isStringNull(str))
        {
            alert(src.errormessage+'输入不能为空');
            return false;
        }
        if(isChineseInString(str))
        {
            alert(src.errormessage+'输入中包含汉字字符，请关闭输入法后再试');
            return false;
        }
        if(isIntegerFormatValid(str))
        {
            arg.IsValid=true;
        }
        else
        {
            alert(src.errormessage);
            arg.IsValid=false;
        }
    }
    
    //检查字符串长度
    function CheckStrLength(src,arg)
    {
        var len=src.len;
        if(isStringOverFlow(arg.Value,len))
        {
            arg.IsValid=false;
            alert(src.errormessage);
        }
        else
        {
            arg.IsValid=true;
        }
    }
    
    
    //检查电子邮件格式
    function CheckEmail(src,arg)
    {
        if(isEmailValid(arg.Value))
        {
            arg.IsValid=true;
        }
        else
        {
            arg.IsValid=false;
            alert(src.errormessage);
        }
    }
    
    //检查手机号码格式
    function CheckMobPhone(src,arg)
    {
        if(isMobPhoneValid(arg.Value))
        {
            arg.IsValid=true;
        }
        else
        {
            arg.IsValid=false;
            alert(src.errormessage);
        }
    }
    
    //检查身份证号码格式
    function CheckIDNumber(src,arg)
    {
        if(isIDNumberValid(arg.Value))
        {
            arg.IsValid=true;
        }
        else
        {
            arg.IsValid=false;
            alert(src.errormessage);
        }
    }
    
    //检查密码格式
    function  CheckPassword (src,arg)
    {
        var minLen=src.minLen;
        var maxLen=src.maxLen;
        
        if( arg.Value.length >= minLen && arg.Value.length<=maxLen)
        {
            arg.IsValid=true;
        }
        else
        {
            arg.IsValid=false;
            alert(src.errormessage);
        }
    }
    
    
    //将日期时间字符串中的中文字符转换为西文字符
    function convertCHNDateTimeStringToASCII(str)
    {
        var s=str;
        s=s.replace(/：/g,":");
        s=s.replace(/－/g,"-");
        s=s.replace(/年/g,"-");
        s=s.replace(/月/g,"-");
        s=s.replace(/日/g,"");
        s=s.replace(/０/g,"0");
        s=s.replace(/１/g,"1");
        s=s.replace(/２/g,"2");
        s=s.replace(/３/g,"3");
        s=s.replace(/４/g,"4");
        s=s.replace(/５/g,"5");
        s=s.replace(/６/g,"6");
        s=s.replace(/７/g,"7");
        s=s.replace(/８/g,"8");
        s=s.replace(/９/g,"9");
        
        
        return s;
    }

    //将日期时间文本框中的中文字符转换为西文字符,同时返回转换后的字符串
    function convertInputCHNDateTimeToASCII(inputId)
    {
        var ipt=document.getElementById(inputId);  
        ipt.value=convertCHNDateTimeStringToASCII(ipt.value);
        
        return ipt.value;
    }


    //将日期字符串转换成时间对象
    function strToDate(str) 
    { 
        var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/); 
        if(r==null)
        {
            return null; 
        }
        else
        {
            return new Date(r[1], r[3]-1, r[4]); 
        }
    } 
    
    

    //将年+月字符串转换成时间对象,默认日期为1号。如果包括输入中有日期则将年月日转换为时间对象
    function yearMonthToDate(str) 
    { 
        var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})(\2(\d{1,2}))*$/); 
        if(r==null)
        {
            return null; 
        }
        else
        {
            var date;
            if(r[5]==null&&r[5]=="")
            {
                date='1';
            }
            else
            {
                date=r[5];
            }
            return new Date(r[1], r[3]-1, date); 
        }
    } 
    
    
    //将长日期时间字符串转换成时间对象
    function strToDateTime(str) 
    { 
        var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/; 
        var r = str.match(reg); 
        if(r==null)
        {
            return null; 
        }
        else
        {
            return new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]); 
        }
    }
    
    //将时间字符串转换成时间对象
    function strToTime(str) 
    { 
        var reg = /^(\d{1,2})[:](\d{1,2})$/; 
        var r = str.match(reg); 
        if(r==null)
        {
            return null; 
        }
        else
        {
            var t=new Date("1900","00","01",r[1],r[2],"0"); 
            if(t.getHours()==r[1]&&t.getMinutes()==r[2])
            {
                return t;
            }
            else
            {
                return null;
            }
        }
    } 

    //检查日期字符串格式是否正确
    function isDateValid(str) 
    { 
        str=trim(str);
        var r = str.match(/^(\d{1,4})(-|\/|.)(\d{1,2})\2(\d{1,2})$/); 
        if(r==null)
        {
            return false; 
        }
        var d= new Date(r[1], r[3]-1, r[4]); 
        if(d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4])
        {
            return true;
        }
        else
        {
            return false;
        }
    } 
    

    //检查年+月字符串格式是否正确
    function isYearMonthValid(str) 
    {
        str=trim(str);
        var r = str.match(/^(\d{1,4})(-|\/|.)(\d{1,2})(\2(\d{1,2}))*$/); 
        
        if(r==null)
        {
            return false; 
        }
        
        var date;
        if(r[5]==null||r[5]=='')
        {
            date='1';
        }
        else
        {
            date=r[5];
        }
        
        var d= new Date(r[1], r[3]-1,date);
        if(d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3])
        {
            return true;
        }
        else
        {
            return false;
        }
    } 
    
    
    //检查电子邮件地址是否合法
    function isEmailValid(email)
    {
        email=trim(email);
        if(email==null||email=="")
        {
            return false;
        }
        var reg=new RegExp("^([\\w-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([\\w-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$");
        return reg.test(email);
    }
    
        
    
　　//回车时设置焦点.
　　//ctlId--设置焦点的控件ID
　　function onEnterSetFocus(ctlId)
　　{
　　    if(event.keyCode==13)
　　    {
　　        var ctl=document.getElementById(ctlId)
　　        if(ctl!=null)
　　        {
　　            ctl.focus();
　　        }
　　    }
　　}
　　
　　
　　//手机号码格式验证
　　function isMobPhoneValid(mPhn)
　　{
　　    mPhn=trim(mPhn);
        if(isChineseInString(mPhn))
        {
            alert(src.errormessage+'输入中包含汉字字符，请关闭输入法后再试');
            return false;
        }
　　    var reg=/(^1[3|5]\d{9}$)|(^179\d{2}\+*00852\+*\d{8}$)|(^00886\+*9\d{8})$/
　　    return reg.test(mPhn);
　　}
　　
　　//清空页面上所有tagName='INPUT'的输入框的值
    function clearPageInput()
    {
        var ipts=document.getElementsByTagName("input");
        for(var i=0;i<ipts.length;i++)
        {
            if(ipts[i].type.toLowerCase=="input")
            {
                ipts[i].value="";
            }
        }
    }
    
    //获取今天的日期,返回时间对象
    function getTodayDate()
    {        
        var td=new Date();
        return strToDate( String(td.getFullYear())+"-"+String(td.getMonth()+1)+"-"+String(td.getDate()));
    }
    
    
    ////文件操作
    
    //判断文件大小,返回文件字节数。获取失败返回-1
    function getFileSize(filePath)
    {
        try
        {
            var fso=new ActiveXObject("Scripting.FileSystemObject");
        }
        catch(e)
        {
            return -1;
        }
        
        if(fso!=null)
        {
            if(fso.FileExists(filePath))
            {
                var f=fso.GetFile(filePath);
                return f.size;            
            }
            else
            {
                return -1;
            }      
        }
        else
        {
            return -1;
        }         
    }
    
    //获取文件扩展名,获取失败返回""
    function getFileExtensionName(filePath)
    {
        try
        {
            var fso=new ActiveXObject("Scripting.FileSystemObject");
        }
        catch(e)
        {
            return "";
        }
        if(fso!=null)
        {
            if(fso.FileExists(filePath))
            {
                return fso.getExtensionName(filePath);            
            }
        }
        
        return "";
                
    }
    
    ///////////////////////////////////////////////
   //           页面输入数据格式检验          //
   
 // input输入数据检查，出错弹出对话框提示原因,返回false,否则返回true
 // ipt-input对象  
 // format-应输入的数据格式：'integer0'-非负整数  'float'-浮点数  'date'-日期  'time'-时间  'dateTime'-日期时间 
 // itmName-输入内容的名称
 
 /* 
 function  checkInputFormat(ipt,format,itmName)
 {
    var str=ipt.value;
    if(isStringNull(str))
    {
        alert('输入不能为空');
        return false;
    }
    if(isChineseInString(str))
    {
        alert('输入中包含汉字字符，请关闭输入法后再试');
        return false;
    }
    switch(format)
    {
        'integer0':
            if(!isStringInteger(str))
            {
                alert(itmName+'只能是非负整数');
                return false;
            }
            break;
       'float':
            if(!isStringFloat(str))
            {
                alert(itmName+'只能是数字或小数');
                return false;
            }
            break;
       'date':
            if(!isDateValid(str))
            {
                alert(itmName+'格式错误');
                return false;
            }
            break;
         'time':
            if(!isDateTimeFormatValid(str))
            {
                alert(itmName+'格式错误');
                return false;
            }
            break;
         'dateTime':
            if(!isDateTimeFormatValid(str))
            {
                alert(itmName+'格式错误');
                return false;
            }
            break;
    }
    
    return true;
 }

*/
 
///判断字符串是否包含汉字,若有返回true
function isChineseInString(str)
{
    if(/[^\x00-\xff]/g.test(str))
    {
        return true;
    } 
    else
    {
        return false;
    }
}

//检查身份证号码格式是否正确
function isIDNumberValid(IDNumber)
{    var len = IDNumber.length;    var re;    if (len == 15)    { re = new RegExp(/^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{3})$/);}    else    {           if (len == 18)        { re = new RegExp(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\d|[a-zA-Z])$/);}        else           {            alert("身份证号输入的数字位数不对！");               return false;        }    }    var a = IDNumber.match(re);    if (a != null)    {        if (len == 15)        {            var   D   =   new   Date("19"+a[3]+"/"+a[4]+"/"+a[5]);            var   B   =   D.getYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];        }        else        {            var   D   =   new   Date(a[3]+"/"+a[4]+"/"+a[5]);            var   B   =   D.getFullYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];        }        if (!B)  {alert("身份证号："+ a[0] +" 里出生日期不对！");   return   false;}    }    else    {        alert("身份证号码非法!");        return false;    }    return true;
}

//////////////////////////////光标位置跟踪///////////////////////////

　　 
　　 // 返回光标所在位置
　　 /**//*
　　 * source: http://blog.csdn.net/liujin4049/archive/2006/09/19/1244065.aspx
　　 * source: http://www.devdao.com
　　 * acknowledges for Marshall 
　　 * example: 
　　 * var myTextBox = document.getElementById("MyTextBoxID");
　　 * var cursPos = $CursorPosition(myTextBox);
　　 * alert(cursPos.item[0] + " " + cursPos.item[1]);
　　 * // OR
　　 * alert(cursPos.start + " " + cursPos.end); 
　　 */
　　 function $CursorPosition(textBox){ 
　　 var start = 0, end = 0;
　　 //如果是Firefox(1.5)的话，方法很简单
　　 if(typeof(textBox.selectionStart) == "number"){
　　 start = textBox.selectionStart;
　　 end = textBox.selectionEnd;
　　 }
　　 //下面是IE(6.0)的方法，麻烦得很，还要计算上'\n'
　　 else if(document.selection) {
　　 var range = document.selection.createRange();
　　 if(range.parentElement().id == textBox.id) {
　　 // create a selection of the whole textarea
　　 var range_all = document.body.createTextRange();
　　 range_all.moveToElementText(textBox);
　　 //两个range，一个是已经选择的text(range)，一个是整个textarea(range_all)
　　 //range_all.compareEndPoints()比较两个端点，如果range_all比range更往左(further to the left)，则 
　　 //返回小于0的值，则range_all往右移一点，直到两个range的start相同。
　　 // calculate selection start point by moving beginning of range_all to beginning of range
　　 for (start=0; range_all.compareEndPoints("StartToStart", range) < 0; start++)
　　 range_all.moveStart('character', 1);
　　 // get number of line breaks from textarea start to selection start and add them to start
　　 // 计算一下\n
　　 for (var i = 0; i <= start; i ++) {
　　 if (textBox.value.charAt(i) == '\n')
　　 start++;
　　 }
　　 // create a selection of the whole textarea
　　 var range_all = document.body.createTextRange();
　　 range_all.moveToElementText(textBox);
　　 // calculate selection end point by moving beginning of range_all to end of range
　　 for (end = 0; range_all.compareEndPoints('StartToEnd', range) < 0; end ++) {
　　 range_all.moveStart('character', 1);
　　 }
　　 // get number of line breaks from textarea start to selection end and add them to end
　　 for (var i = 0; i <= end; i ++) {
　　 if (textBox.value.charAt(i) == '\n')
　　 end ++;
　　 }
　　 }
　　 }
　　 //return [start, end]; // 包括选中区域的起始位置
　　 // modified to return as Object
　　 return {"start": start, "end": end, "item": [start, end]};
　　 }
　　 
　　 //////////////////////////////////////////////////////////
　　 
　　 
//检查上传文件的大小，若超过限制则返回false  
//maxFileLength设置上传的文件最大值（单位：byte），超过此值则不上传。小于0表示不限制大小 
function checkFileSize(filename,maxFileLength)
{
    if(filename =='')
     {
       alert("你还没有浏览要上传的文件");  
         return false;
     }
  
     try {        
         var fso,f,fname,fsize;
         
         fso=new ActiveXObject("Scripting.FileSystemObject");
                f=fso.GetFile(filename);//文件的物理路径
         fname=fso.GetFileName(filename);//文件名（包括扩展名）
         fsize=f.Size;  //文件大小
         fsize=fsize;
         if(maxFileLength>=0 && fsize>maxFileLength)
         {
             alert("上传的文件到小为："+fsize+"bytes,\n超过最大限度"+maxFileLength+"bytes,不允许上传 ");
             return false;
         }
         else
         {
            return true;                        
         }
     }
     catch(e) 
     {
          alert(e+"\n 跳出此消息框，是为了检查上传文件的大小，需要设置浏览器的activex控件选项,\n"+
          "你可以在浏览器菜单栏上依次选择\n"+
          "工具->internet选项->\"安全\"选项卡->自定义级别,\n"+
          "打开\"安全设置\"对话框，把\"对没有标记为安全的\n"+
          "ActiveX控件进行初始化和脚本运行\"，改为\"启动\"即可");
          return false;
     }
 }