﻿String.prototype.trim = function() {
    return this.replace(/(^\s*)|(\s*$)/g, "");
}
// JScript 文件
function $(id) {
    return document.getElementById(id);
}
//实现把Enter转换为Tab的功能
function changefocus(e)
{
    if(window.event) // IE
    {
        if(event.keyCode== 13)
	    {
	    	event.keyCode = 9;
	    }
    }
    else if(e.which) // Netscape/Firefox/Opera
    {
        if(e.which== 13)
	    {
		    e.which = 9;
	    }
    }
	
	/*
	else if(event.keyCode== 222 || event.keyCode== 96|| event.keyCode== 229)
	{//不让输入'单引号
        //window.document.all("btsearch").value = event.keyCode;
	    event.keyCode = 0;
	}
	*/
}

function InitControlsEnterToTab()
{
	for(var i=0;i<window.document.all.length;i++)
	{
		switch(window.document.all(i).tagName)
		{
			case "INPUT":	
			if(window.document.all(i).type == "text" || window.document.all(i).type == "checkbox" || window.document.all(i).type == "password")
			{
			    if(window.document.all(i).onkeydown ==null)
				    window.document.all(i).onkeydown = changefocus;
			}
			break;
			case "SELECT":
			if(window.document.all(i).onkeydown ==null)
	    		window.document.all(i).onkeydown = changefocus;
			break;
		} 
	}
}

//整型输入控制
function IntControlKeyPress(ctrl)
{
    var keynum;
    if(window.event) // IE
    {
        keynum = event.keyCode;
    }
    else if(event.which) // Netscape/Firefox/Opera
    {
        keynum = event.which;
    }
    
    if(keynum>=48 && keynum<=57)
        return true;
    if(keynum==45 && ctrl.value.indexOf('-')==-1 /*&& ctrl.value==''*/)
        return true;
    if(keynum==43 && ctrl.value.indexOf('+')==-1 /*&& ctrl.value==''*/)
        return true; 
     
    return false;
}

//浮点型输入控制
function FloatControlKeyPress(ctrl)
{
    var keynum;
    if(window.event) // IE
    {
        keynum = event.keyCode;
    }
    else if(event.which) // Netscape/Firefox/Opera
    {
        keynum = event.which;
    }
    
    if(keynum>=48 && keynum<=57) //39,
        return true;
 
    if(keynum==45 && ctrl.value.indexOf('-')==-1 /*&& ctrl.value==''*/)
        return true;
    if(keynum==43 && ctrl.value.indexOf('+')==-1 /*&& ctrl.value==''*/)
        return true; 
    if(keynum==46 && ctrl.value.indexOf('.')==-1)
        return true;
 
     return false;
}

//待完善，字符串控件的KeyPress事件
function StringControlKeyPress()
{
   return true;
}

//英文版本
function CheckTextLenKeyPressE(tbTextBox,MaxLen)
{
    var keynum;
    if(window.event) // IE
    {
        keynum = event.keyCode;
    }
    else if(event.which) // Netscape/Firefox/Opera
    {
        keynum = event.which;
    }
    var ilength = tbTextBox.value.length
    if(keynum)
        ilength=ilength+1
        
    if (ilength>MaxLen)
    {
        alert("This field can only entry no more than "+MaxLen+" characters.");
        tbTextBox.focus();
        return false;
        //tbTextBox.select();
    }
    return true;
}
function CheckTextLenPasteE(tbTextBox,MaxLen)
{
    var tempValue = tbTextBox.value+window.clipboardData.getData("Text");
    if (tempValue.length>MaxLen)
    {
         alert("This field can only entry no more than "+MaxLen+" characters.");
        tbTextBox.focus();
        return false;
        //tbTextBox.select();
    }
    return true;
}
//英文版本


function CheckTextLenKeyPress(tbTextBox,MaxLen)
{
    var keynum;
    if(window.event) // IE
    {
        keynum = event.keyCode;
    }
    else if(event.which) // Netscape/Firefox/Opera
    {
        keynum = event.which;
    }
    var ilength = tbTextBox.value.length
    if(keynum)
        ilength=ilength+1
        
    if (ilength>MaxLen)
    {
        alert("当前输入框，最多只能输入"+MaxLen+"个字符，现已输入："+tbTextBox.value.length+"个字符");
        tbTextBox.focus();
        return false;
        //tbTextBox.select();
    }
    return true;
}
function CheckTextLenPaste(tbTextBox,MaxLen)
{
    var tempValue = tbTextBox.value+window.clipboardData.getData("Text");
    if (tempValue.length>MaxLen)
    {
        alert("当前输入框，最多只能输入"+MaxLen+"个字符，现已输入："+tbTextBox.value.length+"个字符");
        tbTextBox.focus();
        return false;
        //tbTextBox.select();
    }
    return true;
}

/*
//只能是英文字符 
function OnlyEnglisthKeyDown() 
{ 
  if(!(event.keyCode>=65&&event.keyCode<=90)) 
    event.returnValue=false; 
} 
 
//只能是数字 
function onlyNumberKeyDown() 
{ 
  //考虑小键盘上的数字键 
  if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105))) 
    event.returnValue=false; 
} 
 


//---------使用方法<input type=text onblur=isEmail(this.value)> 

 //只能是汉字 
function OnlyChinese(str)
{
  if(str.search(/[^\u4E00-\u9FA5]/g) != -1)
    return true;
  else alert("只能输入汉字")
}
//返回只能是英文字符和数字 
function onlyEnglisthNumber(str)
{
  if(str.search(/[\W]/g) != -1)
    return true;
  else alert("只能输入英文字符和数字")
}
//验证为email格式 
function isEmail(strEmail) { 
 if (strEmail.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1) 
   return true; 
 else 
   alert("无效的E-Mail"); 
} 
//_________使用方法<input type=text onblur=isEmail(this.value)> 
*/

function CloseWindow()
{
	close();
}
function DataListSaveConfirm()
{
    if(confirm('当前的数据正在编辑中，是否保存？'))
        document.all('btnSave').click();
}  
function DataListDeleteMultiConfirm()
{
    return confirm('是否删除已选择的记录？');
}  

function DataListDeleteConfirm0()
{
    return confirm('是否删除当前记录？');        
}  


function ShowDetailForm(editform)
{
 window.showModalDialog(editform,'','dialogWidth:650px;dialogHeight:550px;center:yes;status:yes;scroll:yes');
}
function ShowDetailForm1(editform,width,height)
{
   window.showModalDialog(editform,'','dialogWidth:'+width+'px;dialogHeight:'+height+'px;center:yes;status:yes;scroll:yes');
}

function ShowDetailForm2(editform,param,width,height)
{
   window.showModalDialog(editform+'?'+param,'','dialogWidth:'+width+'px;dialogHeight:'+height+'px;center:yes;status:yes;scroll:yes');
}



/*---------------------------传说中的分割线-----------------------------------------------------/
/此函数用来显示可选择树形数据的模态页面，并得到返回值放入调用页面的隐藏域中，参数如下：
/
/    intSingle，是否接收单组数据，0-是，1-否
/    strUrl，要显示的页面URL，可以包含过滤参数；
/    strArgs，要传递给显示页的参数对象，无则为空值 ''；
/    strFace，外观控制的参数，可传空值 ''；
/    arrControl，一个数组，存放调用页面要接收数据的一组隐藏域的ID值，
                当数组中对应某项不需要接收值时，用"nothing"表示，例如：
                控件ID数组["DepartName","nothing","DepartID"]表明，本方法所弹出页面将返回
                一个字符串，该字符串由1到多个按照"DepartName"、"DepartNo"、"DepartID"的顺序
                由特殊字符间隔串联的组合组成，而数组第二个值"nothing"表示，不接收显示页面
                返回的第二个参数，请不要使用其它的字符串常数来代替它，且要满足大小写。
/
/调用此函数时要注意参数传递的正确性，数组中控件名称的个数以及对应顺序必须与显示页面中定义的
/返回字符串的相同，否则出错，或得不到正确结果。
/调用请参考页面：Active/DataListViewActive.aspx下的函数ShowViewAngle()
/----------------------------------------------------------------------------------------------*/
function ShowSelectForms(intSingle,strUrl,strArgs,strFace,arrControl)
{
    if(strFace == "")
    {
        strFace = 'dialogWidth:650px;dialogHeight:550px;center:yes;status:yes;scroll:yes';
    }
    var rArgs = window.showModalDialog(strUrl,strArgs,strFace);
    
    if(rArgs != null)
    {
        
        for(var n = 0;n < arrControl.length;n++)
        {
            if(arrControl[n] != "nothing")
            {
                document.all(arrControl[n]).value = "";
            }
        }
        var array1,array2;
        var ctrs = document.all;
        if(intSingle == 0)
        {//单组数据      
            array1 = rArgs.substr(0, rArgs.length - 1).split("\t");
            for(var i = 0;i < array1.length;i++)
            {
                for(var t = 0;t < ctrs.length;t++)
                {
                    if(ctrs[t].id == arrControl[i] && (ctrs[t].type == 'hidden'||ctrs[t].type == 'text'))
                    {
                        ctrs[t].value = array1[i];
                    }
                }
            }
        }
        if(intSingle == 1)
        {//多组数据
     
            if( typeof(rArgs) == "object") // 数组情况
            {
                if( arrControl.length == 2)
                {
                    document.getElementById(arrControl[0]).value = rArgs[0];
                    document.getElementById(arrControl[1]).value = rArgs[1];
                }
            }
            else
            {
                array2 = rArgs.substr(0, rArgs.length - 1).split("");
                for(var i = 0;i < array2.length;i++)
                {
                    array1 = array2[i].split("\t")
                    for(var j = 0;j < array1.length;j++)
                    {
                        for(var t = 0;t < ctrs.length;t++)
                        {
                            if(ctrs[t].id == arrControl[j] && (ctrs[t].type == 'hidden'||ctrs[t].type == 'text'))
                            {
                                ctrs[t].value += array1[j] + ",";
                            }
                        }
                    }
                }
            }
        }
    }
    
    
}

/*---------------------------传说中的分割线------------------------------------------------------/
/此函数用来控制列表中CheckBox的全选功能，在页面中用一个Html的CheckBox控件，在其onclick事件中调用
/   cbManage，为调用该函数的CheckBox对象本身，及调用时将this传过来即可；
/   iEnable，标示是否控制那些不可用状态的CheckBox，0为是，1为否。
/-----------------------------------------------------------------------------------------------*/ 
function SetAllSelectStateA(cbManage,iEnable)
{   
    var ctrlAll = document.all;
    var ctrlEveryID;
    for(var i = 0;i < ctrlAll.length;i++)
    {
        ctrlEveryID = ctrlAll[i].id;
        if(ctrlAll[i].type == 'checkbox' && ctrlEveryID.length > 12 && ctrlEveryID.substr(ctrlEveryID.length - 12,12) == 'CBItemSelect')
        {
            if(iEnable == 1 && ctrlAll[i].disabled == true)
            {
                continue;
            }
            else
            {
                ctrlAll[i].checked = cbManage.checked;
            }
        }
    }
}

/*---------------------------传说中的分割线------------------------------------------------------/
/功能同SetAllSelectStateA，不同在于，若列表中的CheckBox的ID是自己随便定义的，则要用此函数
/   cbManage，为调用该函数的CheckBox对象本身，及调用时将this传过来即可；
/   strEvery，为列表中自己定义的CheckBox的ID；
/   iEnable，标示是否控制那些不可用状态的CheckBox，0为是，1为否。
/-----------------------------------------------------------------------------------------------*/
function SetAllSelectStateB(cbManage,strEvery,iEnable)
{   
    var ctrlAll = document.all;
    var ctrlEveryID;
    var iLength;
    for(var i = 0;i < ctrlAll.length;i++)
    {
        ctrlEveryID = ctrlAll[i].id;
        iLength = strEvery.length;        
        if(ctrlAll[i].type == 'checkbox' && ctrlEveryID.length > iLength && ctrlEveryID.substr(ctrlEveryID.length - iLength,iLength) == strEvery)
        {
            if(iEnable == 1 && ctrlAll[i].disabled == true)
            {
                continue;
            }
            else
            {
                ctrlAll[i].checked = cbManage.checked;
            }
        }        
    }
}

/*---------------------------传说中的分割线------------------------------------------------------/
/   判断是否输入中文字符，如果是中文报错
/   obj，为调用该函数的TextBox对象本身，及调用时将this传过来即可；
/-----------------------------------------------------------------------------------------------*/

function isChinese(obj)
 {   
      iLength=obj.value.length;  
      for(i=0; i<iLength;i++)     
      {   
          if(obj.value.charCodeAt(i)>255)   //是否为汉字   
          {
              obj.value="";
              window.alert('用户名只能是英文字符！'); 
              return false;
          }
       }   
  }
  
  
/*---------------------------传说中的分割线------------------------------------------------------/
    /判断身份证和填写出生日期是否正确
    /objCard为身份证的控件ID
    /objBrith为出生日期控件ID，日期格式必须为yyyy-mm-dd
    /objBrith可为空
/-----------------------------------------------------------------------------------------------*/

  
   function CheckCardAndBrith(objCard,objBrith)
   {
        var card = document.getElementById(objCard).value;
        var brith ="";
        if(objBrith!="")
        {
            brith =document.getElementById(objBrith).value;
        }
        var flag = false;//15位（true）还是18位（false）身份证号码
        var isint ;//把身份证的数字部分转化为正整数
        if(card =="" )
        {
            alert("身份证不能为空！");
            return false;
        }
        if (card.length!=15 && card.length!=18)
        {
            alert("身份证不正确！");
            return false;
        }
        //获得身份证出生日期
        if(card.length==15)
        {
            isint = card;
            card=card.substring(6,12);
            flag=true;            
        }
        else
        {
            isint=card.substring(0,17);
            card=card.substring(6,14);
        }        
        //是否是正整数
        var reg=/^\+?[0-9]*[1-9][0-9]*$/
        if(isint.match(reg)==null)
        {
            alert("身份证不正确！");
            return false;
        }
        //身份证出生日期和填写的出生日期比较
        if(brith!="")
        {
            //把日期转换成yyyy-mm-dd
            var arr = brith.split('-');            
            var mm=arr[1];
            var dd=arr[2];
            if(arr[1].length<2)
            {
                mm='0'+arr[1];
            }
            if(arr[2].length<2)
            {
                dd='0'+arr[2];
            }
            brith = arr[0]+mm+dd;
            if(flag)
            {
                brith=brith.substring(2);
            } 
            if(brith!=card)
            {
                alert("身份证与填写的出生日期不匹配！");
                return false;
            }  
        } 
        return true;  
    }
   /*---------------------------传说中的分割线------------------------------------------------------/
   /-----------------------------------------------------------------------------------------------*/
 
/*---------------------------顶部导航控制------------------------------------------------------*/
 //var heardUrl= 'http://moss:8201/wpresources/TopFlashPage.htm';
 function BuildTop(id)
{
    var obj = document.getElementById(id);
    if( obj)
    {
       // var ifsrc = heardUrl;//'../../TopFlashPage.htm';
        obj.innerHTML = '<iframe id="tnf" scrolling="no" src="'+ifsrc+'" frameborder="0" style="border-left:0px; border-right:0px; border-top:0px; border-bottom:0px;width:875px;height=196px;" name="tnf"></iframe>';
    }
}
function doStarter()
{
    BuildTop('topNavigationid');
}
//验证是否是有效的日期格式
//elem 控件输入内容
//name 控件名称
function isShortDate(elem,name) {
	var pattern = /^(\d{4})(-)(\d{2})(-)(\d{2})$/;
	var temp = elem.match(pattern);
	if (temp == null) 
	{
		alert("［"+name+"］不是有效的日期格式（格式：2008-01-01），请检查！");
		return false;
	} else {
		return true;
	}
}

function CheckDate(strStart,strEnd)
{
    var a=document.getElementById(strStart).value.replace(/- /g,"/"); 
    var b=document.getElementById(strEnd).value.replace(/- /g,"/"); 
    
    var arr=a.split("-");
    var starttime=new Date(arr[0],arr[1],arr[2]);
    var starttimes=starttime.getTime();

    var arrs=b.split("-");
    var lktime=new Date(arrs[0],arrs[1],arrs[2]);
    var lktimes=lktime.getTime();

    if(starttimes>lktimes)
    {
        alert('开始时间大于结束时间，请检查!');
        return false;
    }
    else
    return true;
}

// 长时间，形如 (2003-12-05 13:04:06)
//str 控件输入内容
//name 控件名称
function strDateTime(str,name)
        {
          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)
          {
          	alert("［"+name+"］不是有效的时间格式（格式：2008-01-01 01:01:01），请检查！");
          	return false; 
          }
          var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]); 
          if(d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r[7])
          {
          	return true;
          }
          else
          {
          	alert("［"+name+"］不是有效的时间格式（格式：2008-01-01 01:01:01），请检查！");
          	return false; 
          }
        }


        //短时间，形如 (13:04:06)
        function isTime(str,name)
        {
          str=str.replace("：",":");
          var a = str.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/);
          if (a == null) {
          	alert("［"+name+"］不是有效的时间格式（格式：01:01），请检查！");
          	return false;
          }
          if (a[1]>24 || a[3]>60 || a[4]>60)
          {
            alert("［"+name+"］不是有效的时间格式（格式：01:01），请检查！");
            return false
          }
          return true;
        }


//是否是正整数
//大于0的整数 （用于传来的ID的验证)
//strValue 控件输入内容
//name 控件名称
function isNumber(strValue,name)
{
	var satry=/^[1-9]{1}[\d]*$/;
	if(satry.test(strValue)==true)
	{
		return true;
	}
	else
	{
		alert("［"+name+"］不是大于0的整数，请检查！");
		return false;
	}
}
//是否是正整数
//大于等于0的整数 （用于传来的ID的验证)
//strValue 控件输入内容
//name 控件名称
function isNumber1(strValue,name)
{
	var satry=/^[0-9]{1}[\d]*$/;
	if(satry.test(strValue)==true)
	{
		return true;
	}
	else
	{
		alert("［"+name+"］不是大于等于0的整数，请检查！");
		return false;
	}
}
//验证是否是有效E_MAIL格式
//strEmail 控件输入内容
//name 控件名称
function isEmail(strEmail,name) {
	if (strEmail.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1) {
		return true;
	} else {
		alert("［"+name+"］不是有效的email格式（格式:hello@163.com），请检查！");
		return false;
	}
}
//验证是否是有效E_MAIL格式
//strEmail 控件输入内容
//name 控件名称
function isEmailEng(strEmail,name) {
	if (strEmail.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1) {
		return true;
	} else {
		alert(name+" is not a valid email format(eg. hello@163.com),please try again.");
		return false;
	}
}

/**
* 验证URL
*/
function checkTextDataForURL(strValue,name) {
    var regTextUrl = /^(file|http|https|ftp|mms|telnet|news|wais|mailto):\/\/(.+)$/;
    regTextUrl = /^(file|http|https|ftp|mms|telnet|news|wais|mailto):\/\/[\w-]+(\.[\w-]+)+(\/[\w- .\/\?%&=]*)?$/;
  
	if(regTextUrl.test(strValue)){
		return true;
	}else{
		alert("［"+name+"］不是有效的网址（格式：http://www.163.com），请检查！");
		return false;
	}
}

/**
* 验证邮政编码
//strValue 控件输入内容
//name 控件名称
*/
function checkTextDataForPOST(strValue,name) 
{

	var satry=/^[1-9]{1}[\d]*$/;
	
	if(!satry.test(strValue))
	{
		alert("［"+name+"］不是有效的邮政编码（格式:150050），请检查！");
		return false;
	}
	else
	{	
		var regTextPost = /^(\d){6}$/;
		if(regTextPost.test(strValue))
		{
			return true;
		}
		else
		{
			alert("［"+name+"］不是有效的邮政编码（格式：150050），请检查！");
			return false;
		}
	}
}

//电话号码格式
/*
	(1)电话号码由数字、"("、")"和"-"构成
　　(2)电话号码为3到8位
　　(3)如果电话号码中包含有区号，那么区号为三位或四位
　　(4)区号用"("、")"或"-"和其他部分隔开
　　(5)移动电话号码为11或12位，如果为12位,那么第一位为0
　　(6)11位移动电话号码的第一位和第二位为"13"
　　(7)12位移动电话号码的第二位和第三位为"13"
	(8)11位移动电话号码的第一位和第二位为"15"
	(9)12位移动电话号码的第二位和第三位为"15"
	
*/
function PhoneCheck(s,name) 
{
	var str=s;
	var reg=/(^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)|(^0{0,1}15[0-9]{9}$)/;
	if(reg.test(str))
	{
		return true;
	}
	else
	{
		alert("［"+name+"］不是有效的电话号码（格式:15912345678 或 0775-6993002），请检查！");
		return false;
	}
}



//只能输入字符和数字组成的
function checkTextDataForENGLISHNUMBER(strValue,name) 
{
	var regTextEnglishNumber = /^[a-zA-Z0-9]*$/;
	if(regTextEnglishNumber.test(strValue)){
		return true;
	}else{
		alert("［"+name+"］不是字母和数字组成，请检查！'");
		return false;
	}
}

//判断字符由字母和数字，下划线,点号组成.且开头的只能是下划线和字母
     function biaoshifu(str,name)
     {
     	var style=/^([a-zA-z_]{1})([\w]*)$/g;
     	if(style.test(str))
     	{
     		return true;
     	}
     	else
     	{
			alert("［"+name+"］不是由字母和数字，下划线组合，且只能以下划线和字母开头，请检查！");
			return false;
     	}
     }

//返回
function backToPrePage() {
	window.history.back();
}

//得到URL中的参数值
function getQueryString(queryStringName) {
	var returnValue = "";
	var URLString = new String(document.location);
	var serachLocation = -1;
	var queryStringLength = queryStringName.length;
	do {
		serachLocation = URLString.indexOf(queryStringName + "=");
		if (serachLocation != -1) {
			if ((URLString.charAt(serachLocation - 1) == "?") || (URLString.charAt(serachLocation - 1) == "&")) {
				URLString = URLString.substr(serachLocation);
				break;
			}
			URLString = URLString.substr(serachLocation + queryStringLength + 1);
		}
	} while (serachLocation != -1);
	if (serachLocation != -1) {
		var seperatorLocation = URLString.indexOf("&");
		if (seperatorLocation == -1) {
			returnValue = URLString.substr(queryStringLength + 1);
		} else {
			returnValue = URLString.substring(queryStringLength + 1, seperatorLocation);
		}
	}
	return returnValue;
}

//长度小于5的正整数
function isNumberFormal(num,name) {
	var pattern = /^[0-9]{1,5}$/;
	if (num.match(pattern)){
	 	if(num.substring(0,1) == 0){
			alert("［"+name+"］不是位数小于6位的正整数，请检查！");
			return false;	 
		}else{
			return true;
		}
	} else 
	{
		alert("［"+name+"］不是位数小于6位的正整数，请检查！");
		return false;
	}
}
//去左空格;
function ltrim(s){ return s.replace( /^\s*/, ""); }
 //去右空格;
function rtrim(s){ return s.replace( /\s*$/, ""); }
 //去左右空格;
function trim(s){ return rtrim(ltrim(s)); }

//验证开始日期小于结束日期
//name1 第一个日期
//name2 第二个日期
  function CompareDate(date1,date2,name1,name2)
    {
        // date format must be "YYYY-MM-DD"
           var _date1 = new Array();
        var _date2 = new Array();
        _date1 = date1.substr(0,10).split("-");
        _date2 = date2.substr(0,10).split("-");
          
      
         if(_date1[0]>_date2[0]){
        
          alert("［"+name2+"］早于［"+name1+"］，请检查！");
			return false;
        }
        
           
        if(((_date1[0]<_date2[0])||((_date1[0]==_date2[0])&&(_date1[1]<_date2[1]))||((_date1[0]==_date2[0])&&(_date1[1]==_date2[1])&&(_date1[2]<=_date2[2]))))
        {     
			return true;
        }else{
            alert("［"+name2+"］早于［"+name1+"］，请检查！");
			return false;
        }
    
    }
    
    //验证开始日期小于结束日期
//name1 第一个日期
//name2 第二个日期
  function CompareDateEng(date1,date2,name1,name2)
    {
        // date format must be "YYYY-MM-DD"
           var _date1 = new Array();
        var _date2 = new Array();
        _date1 = date1.substr(0,10).split("-");
        _date2 = date2.substr(0,10).split("-");
          
      
         if(_date1[0]>_date2[0]){
        
          alert(name2+" can not be earlier than "+name1+",please try again.");
			return false;
        }
        
           
        if(((_date1[0]<_date2[0])||((_date1[0]==_date2[0])&&(_date1[1]<_date2[1]))||((_date1[0]==_date2[0])&&(_date1[1]==_date2[1])&&(_date1[2]<=_date2[2]))))
        {     
			return true;
        }else{
            alert(name2+" can not be earlier than "+name1+",please try again.");
			return false;
        }
    
    }
    
       
//验证开始日期小于结束日期,用于查询日期限制,当某一时间为空的时候不验证,返回为true
//name1 第一个日期
//name2 第二个日期
  function CompareDateForSearch(date1,date2)
    {
        // date format must be "YYYY-MM-DD"
     
     	if(date1 == "" && date2 != ""){
     		return true;
     	}
     	
     	if(date1 != "" && date2 == ""){
     		return true;
     	}
     
     	if(date1 != "" && date2 != "" ){
	        var _date1 = new Array();
	        var _date2 = new Array();
	        _date1 = date1.substr(0,10).split("-");
	        _date2 = date2.substr(0,10).split("-");
	          
	        if(_date1[0]>_date2[0]){
	        
	          //alert(name1+"早于"+name2+"，请检查！");
	          alert("查询时间段有误，请检查！");
				return false;
	        }
	        
	           
	        if(((_date1[0]<_date2[0])||((_date1[0]==_date2[0])&&(_date1[1]<_date2[1]))||((_date1[0]==_date2[0])&&(_date1[1]==_date2[1])&&(_date1[2]<=_date2[2]))))
	        {     
				return true;
	        }else{
	           alert("查询时间段有误，请检查！");
				return false;
	        }
		}else{
			return true;
		}
    }
    
//验证开始日期小于结束日期,用于添加的两个日期的限制
//name1 第一个日期
//name2 第二个日期
  function CompareDateForSave(date1,date2,name1,name2)
    {
        // date format must be "YYYY-MM-DD"
     
     	if(date1 == "" && date2 != ""){
     		alert("未选择［"+name1+"］,请检查！");
     		return false;
     	}
     	
     	if(date1 != "" && date2 == ""){
     		alert("未选择［"+name2+"］,请检查！");
     		return false;
     	}
     
     	if(date1 != "" && date2 != "" ){
	        var _date1 = new Array();
	        var _date2 = new Array();
	        _date1 = date1.substr(0,10).split("-");
	        _date2 = date2.substr(0,10).split("-");
	          
	        if(_date1[0]>_date2[0]){
	        
	          alert(name2+"早于"+name1+"，请检查！");
				return false;
	        }
	        
	           
	        if(((_date1[0]<_date2[0])||((_date1[0]==_date2[0])&&(_date1[1]<_date2[1]))||((_date1[0]==_date2[0])&&(_date1[1]==_date2[1])&&(_date1[2]<=_date2[2]))))
	        {     
				return true;
	        }else{
	            alert("［"+name2+"］早于［"+name1+"］，请检查！");
				return false;
	        }
		}else{
			return true;
		}
    }
    

//验证输入的日期不小于当前日期
function ccdate(a,name)
{
var now1=new Date();
	//alert(yy+"/"+mm+"/"+dd);
	
	var old=new Date(a.split("-").join("/"));//将字符串格式日期转成日期格式，用于两个日期的比较
	//alert();
	var b=now1.getYear()+"-"+(now1.getMonth()+1)+"-"+now1.getDate();
	var now=new Date(b.split("-").join("/"));
	if(old<now)
	{
		alert("［"+name+"］晚于当前日期，请检查！");
		return false;
	}
	
}

//验证输入时有特殊的字符返回false,验证通过返回true
//name 字段名称
function hasSpecialString(strValue,name) 
{
	var specialstring=[' ',',','!','@','$','%','^','&','*','(',')','?','=',"'",';','<','>','<input','<html:input','<select','<script','<title','<body','<html','html:select','<img'];
	var str1 =trim(strValue);
	var i=0;
	while(true)
	{
		i++;
		if(str1.indexOf(specialstring[i])!=-1)
		{
			alert("［"+name+"］中包含有特殊字符"+specialstring[i]+"，请检查！");
			return false;
		}
		if(i>specialstring.length){
			break;
		}
	}
	return true;
}

//判断客户端的分辨率
function chekscreen()
{
	alert(window.screen.height);
	alert(window.screen.width);
	
}

//身份证的验证
//name 控件名称
        function isIdCardNo(num,name)
        {
          if (isNaN(num)) {
          	alert("［"+name+"］输入的不是数字，请检查！"); 
          	return false;
          	}
          var len = num.length, 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)$/);
          else {
	          alert("［"+name+"］输入的数字位数不为15位或18位，请检查！"); 
	          return false;
          }
          var a = num.match(re);
          if (a != null)
          {
            if (len==15)
            {
              var D = new Date("19"+a[3]+"/"+a[4]+"/"+a[5]);
              var B = D.getYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];
            }
            else
            {
              var D = new Date(a[3]+"/"+a[4]+"/"+a[5]);
              var B = D.getFullYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];
            }
            if (!B) {
            	//alert("输入的身份证号 "+ a[0] +" 里出生日期不对，请检查！"); 
            	alert("［"+name+"］中的出生日期不正确，请检查！"); 
            	return false;
            }
          }
          return true;
        }

        function CheckCardNO(obj) {
            var aCity = { 11: "北京", 12: "天津", 13: "河北", 14: "山西", 15: "内蒙古", 21: "辽宁", 22: "吉林", 23: "黑龙江", 31: "上海", 32: "江苏", 33: "浙江", 34: "安徽", 35: "福建", 36: "江西", 37: "山东", 41: "河南", 42: "湖北", 43: "湖南", 44: "广东", 45: "广西", 46: "海南", 50: "重庆", 51: "四川", 52: "贵州", 53: "云南", 54: "西藏", 61: "陕西", 62: "甘肃", 63: "青海", 64: "宁夏", 65: "", 71: "台湾", 81: "香港", 82: "澳门", 91: "国外" };

            var iSum = 0;
            var info = "";
            var strIDno = obj.value;
            var idCardLength = strIDno.length;
            if (!/^\d{17}(\d|x)$/i.test(strIDno) && !/^\d{15}$/i.test(strIDno)) {
                alert("非法身份证号");
                return false;
            }

            //在后面的运算中x相当于数字10,所以转换成a  
            strIDno = strIDno.replace(/x$/i, "a");

            if (aCity[parseInt(strIDno.substr(0, 2))] == null) {
                alert("身份证号码中的地区不正确，请检查！");
                return false;
            }

            if (idCardLength == 18) {
                sBirthday = strIDno.substr(6, 4) + "-" + Number(strIDno.substr(10, 2)) + "-" + Number(strIDno.substr(12, 2));
                var d = new Date(sBirthday.replace(/-/g, "/"))
                if (sBirthday != (d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + d.getDate())) {
                    alert("身份证号码中的生日不正确，请检查！");
                    return false;
                }

                for (var i = 17; i >= 0; i--)
                    iSum += (Math.pow(2, i) % 11) * parseInt(strIDno.charAt(17 - i), 11);

                if (iSum % 11 != 1) {
                    alert("身份证号码不正确，请检查！");
                    return false;
                }
            }
            else if (idCardLength == 15) {
                sBirthday = "19" + strIDno.substr(6, 2) + "-" + Number(strIDno.substr(8, 2)) + "-" + Number(strIDno.substr(10, 2));
                var d = new Date(sBirthday.replace(/-/g, "/"))
                var dd = d.getFullYear().toString() + "-" + (d.getMonth() + 1) + "-" + d.getDate();
                if (sBirthday != dd) {
                    alert("身份证号码中的生日不正确，请检查！");
                    return false;
                }
            }

            return true;
        }

//复选框的全选，多选，全不选，反选(第一种)
//说明,不是通过按钮来调用，而是用checkbox的勾选来调用
/*
	<form name=hrong>
<input type=checkbox name=All onclick="checkAll('mm')">全选<br/>
<input type=checkbox name=mm onclick="checkItem('All')"><br/>
<input type=checkbox name=mm onclick="checkItem('All')"><br/>
<input type=checkbox name=mm onclick="checkItem('All')"><br/>
<input type=checkbox name=mm onclick="checkItem('All')"><br/>
<input type=checkbox name=mm onclick="checkItem('All')"><br/><br/>
</form>
*/
function checkAll(str)
{
	
    var a = document.getElementsByName(str);
    var n = a.length;
    for (var i=0; i<n; i++)
    a[i].checked = window.event.srcElement.checked;
}

//复选框的全选，多选，全不选，反选(第二种)用法和第一种一样
function checkItem(str)
{
    var e = window.event.srcElement;
    var all = eval("document.hrong."+ str);
    if (e.checked)
    {
      var a = document.getElementsByName(e.name);
      all.checked = true;
      for (var i=0; i<a.length; i++)
      {
        if (!a[i].checked){ all.checked = false; break;}
      }
    }
    else all.checked = false;
}

//验证IP
function isip(s,name)
{
	
	var check=function(v){try{return (v<=255 && v>=0)}catch(x){return false}};
	var re=s.split(".")
	if((re.length==4))
	{
		check(re[0]) && check(re[1]) && check(re[2]) && check(re[3]);
		return true;
	}
	else
	{
		alert("［"+name+"］不是有效的IP地址（格式：255.255.255.255），请检查！");
		return false;
	}
	
}

//打开页面
function winopen(target,name,width,height,replace)//显示目标页面，名称，宽度，高度，是否可以替换
{
var tarpage=target;
var tarname=name;
var replaceif=replace;
var windowH = height;//窗口高度
var windowW = width; //窗口宽度
var windowX = Math.ceil( (window.screen.width-windowW)/2 ); //窗口在屏幕中的X坐标
var windowY = Math.ceil( window.screen.height/4 );     //窗口在屏幕中的Y坐标
window.open(tarpage,tarname,"toolbar=no,top="+windowY+",left="+windowX+",width="+windowW+",height="+windowH+"",Replace="+replaceif+" );
}

//验证textarea字符输入长度
function   textCounter(field, maxlimit)   {     
	//定义函数，传入3个参数，分别为表单区的名字，字符限制；     
	if   (field.value.length   >   maxlimit)     
		//如果元素区字符数大于最大字符数，按照最大字符数截断；     
		field.value   =   field.value.substring(0,   maxlimit);       
	}  


//半角转全角
function halfChar2fullChar(str){
	var result='';
	for(var i=0;i<str.length;i++){
		code=str.charCodeAt(i);  //获取当前字符的UNICODE编码
		if((code>=33&&code<=47)||(code>58&&code<=64)||(code==91)||(code>=93&&code<=96)||(code>=123&&code<=127)){//此范围为半角
		result+=String.fromCharCode(str.charCodeAt(i)+65248);//加65248后为全角
		}else if(code==32){	//32为空格
			result+=str.charAt(12288);//全角空格
		}else {
			result+=str.charAt(i);	
		}
		}
		return result;                   
}
  /*************************************************************   
  名称：issbccase   
  功能：判断字符串中是否存在全角字符串   
  参数：source，源字符串；   
  返回：是否存在全角字符，true或false   
  *************************************************************/   
  function  issbccase(source)   {   
  if   (source=="")   {   
  return   true;   
  }   
  var   reg=/^[\w\u4e00-\u9fa5\uf900-\ufa2d]*$/;   
  if   (reg.test(source))   {   
  return   false;   
  }   else   {   
  return   true;   
  }   
  }
//不能键入tab键
function fileEvent(){
	var code = event.keyCode;
		
	if(code == 9){
		return true;
	}else{
		return false;
	}
}

//验证是否为浮点数（可以为负数）
//整数也可以输入到浮点数的地方
//格式为
function isFloat(s,name){
	var re = /^[+|-]{0,1}\d*\.\d+$/;
	var re1 = /^[+|-]{0,1}\d+$/;
	if (re.test(s) || re1.test(s)) {
		return true;
	} else {
		alert("［"+name+"］不是有效的正整数或正小数（格式：10或10.1），请检查！");
		return false;
	}
}

//验证是否为浮点数（非负数）
//整数也可以输入到浮点数的地方
function isFloatNotNav(s,name){
	var re = /^[+]{0,1}\d*\.\d+$/;
	var re1 = /^[+]{0,1}\d+$/;
	if (re.test(s) || re1.test(s)) {
		var front = 0;
		var end = 1;
		if(s.indexOf("+") != -1){
		    front = 1;
		    end = 2;
		}

		if(s.indexOf(".") == -1){
			if(s.substring(front,end) == 0){
				alert("不是有效的正整数或正小数（格式：10或10.1），请检查！");
				return false;
			}else{
				return true;
			}
		}else{
			return true;
		}
	} else {
		alert(name + "不是有效的正整数或正小数（格式：10或10.1），请检查！");
		return false;
	}
}

//验证是否为浮点数（负数）
//整数也可以输入到浮点数的地方
function isFloatNav(s,name){
	var re = /^[-]{0,1}\d*\.\d+$/;
	var re1 = /^[-]{0,1}\d+$/;
	if (re.test(s) || re1.test(s)) {
		var front = 0;
		var end = 1;
		if(s.indexOf("-") != -1){
		    front = 1;
		    end = 2;
		}

		if(s.indexOf(".") == -1){
			if(s.substring(front,end) == 0){
				alert(name + "不是有效的负整数或负小数（格式：-10或-10.1），请检查！");
				return false;
			}else{
				return true;
			}
		}else{
			return true;
		}
		return true;
	} else {
		alert(name + "不是有效的负整数或负小数（格式：-10或-10.1），请检查！");
		return false;
	}
}

//验证值的长度
//src 为控件的值，如果src为空字符，折返回false.
//length 为要求的最大长度
//name为要验证的控件的名称
// 提示某字段不能为空，或超长
function vLength(src, length, nameStr) {
	if (src == "") {
		alert(nameStr + "不能为空，请检查！");
		return false;
	}
	if (src.length > length) {
		alert(nameStr + "的字符数不能多于" + length + "个字符，请检查！");
		return false;
	}
	return true;
}

//只验证值的长度，不判断是否为空
//src 为控件的值，如果src为空字符，折返回false.
//length 为要求的最大长度
//name为要验证的控件的名称
// 提示某字段不能为空，或超长
function vLengthOnly(src, length, nameStr) {
	if (src.length > length) {
		alert(nameStr + "的字符数不能多于" + length + "个字符，请检查！");
		return false;
	}
	return true;
}

//只能输入数字
//使用的时候onkeydown="onlyNum();"
function onlyNum() {
	if (event.keyCode != 8) {
		if (event.shiftKey) {
			event.returnValue = false;
		}
		if (!((event.keyCode >= 48 && event.keyCode <= 57) || (event.keyCode >= 96 && event.keyCode <= 105))) {
			event.returnValue = false;
		}
	}
}

//检查是否整数
function isInt(s,name)
{
     var re=/^[0-9]*[1-9][0-9]*$/　　//正整数  
     
     if(!re.test(s))
     {
        alert(name + "只能输入整数，请检查！");
        return false;
     }
     else if (s>2147483647)
     {
        alert(name + "输入整数超过范围，请检查！");
        return false;
     }
     return true;
}

//去空格符
function trimSpace(str) {
	str = "" + str;
	str = str.replace(/(^\s*)|(\s*$)/g, "");
	return str;
}

//检查上传文件
//filePath 文件路径
function checkImageFormat(filePath){
			var tmpArray = new Array(".jpg",".jpeg",".png",".bmp");
			var tmp = filePath.substr(filePath.lastIndexOf(".")).toLowerCase();
			var b = false; 
			for(var i = 0;i < tmpArray.length;i ++){
				if(tmp == tmpArray[i]){
				b = true;
				}
			}
			if(!b)
			{
				alert("您上传的不是有效的图片格式，请上传jpg、png、bmp或jpeg格式的图片！");
				return false;
			}else{
				return true;
			}
}

//判断是否是有效的QQ号码
//sValue 输入值
//Str 控件名称
function isQqhm(sValue,str){	
    var tmp=sValue.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/); 
    
    var satry=/^[1-9]{1}[\d]*$/;

	if(satry.test(sValue)||tmp!=-1){
	   return true;
	}else{
        alert(str+'不是有效的QQ号码（格式：258014020），请检查！');
		return false;
	}	
}

//判断是否是有效的MSN号码
//sValue 输入值
//Str 控件名称
function isMSNhm(sValue,str){	
	if (sValue.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1) {
		return true;
	} else {
		alert(str+"不是有效的MSN格式（格式：hello@163.com），请检查！");
		return false;
	}	
}

//分页按钮鼠标事件
function PageMouseEvent(obj)
{
    if(event.type=="mouseenter")
    {
        obj.style.color = "Black";
    }
    else if(event.type=="mouseout")
    {
        obj.style.color="#0a2ba5";
    }
}

function CheckInputDate(dStart,dEnd,StartName,EndName)
{
    var StartValue=document.getElementById(dStart).value;
    var EndValue  =document.getElementById(dEnd).value;
     
    
    if(StartValue!=""&&EndValue!="")
    {
         if(!isShortDate(StartValue,StartName))
         {
          document.getElementById(dStart).focus();
          return false;
         }
         if(!isShortDate(EndValue,EndName))
         {
          document.getElementById(dEnd).focus();
          return false;
         }
        if(!CompareDate(StartValue,EndValue,StartName,EndName))
        {
         document.getElementById(dStart).focus();
         return false; 
        } 
    }
    
    return true;
}
function CheckInputTime(dStart,dEnd,StartName,EndName)
{
    var StartValue=document.getElementById(dStart).value;
    var EndValue  =document.getElementById(dEnd).value;

      if(StartValue!=""&&EndValue!="")
      {
        if(!isTime(StartValue+":01",StartName))
        {
          document.getElementById(dStart).focus();
          return false;  
        }
        if(!isTime(EndValue+":01",EndName))
        {
         document.getElementById(dEnd).focus();
          return false; 
         }
        if(tbSerIntervalBegin>=tbSerIntervalEnd)
        {
            alert(dStart+"不能大于等于"+dEnd+"，请检查！");
            document.getElementById("tbSerIntervalBegin").focus();
            return false;
        }
      }
      return true;
}

// 针对选择人员或部门的文本框事件
function selectPage(id)
{
    var keycode = window.event.keyCode;
    if( keycode == 9) // Tab
        return;
        
    var tips = "请通过【选择按钮】进行操作！\n\n是否直接打开选择页面？";
    if(confirm(tips))
    {
        document.getElementById(id).click();
        return false;
    }
    else
        return false;
}
//检查值是否为空或空串
function CheckValueIsNull(CtrlId,HintStr)
{
    var value1 = document.getElementById(CtrlId).value.trim();
    if(value1==null || value1=="")
    {
       alert(HintStr);
       document.getElementById(CtrlId).focus();
       return true;
    }
    return false;
}

// setDropDownListReadOnly
// 将下拉框，在查看状态时，改为标签方式
// 要求：1. 该页面是查看页面（即有 OState=0）
//       2. 该页面不需要提交
function setDDListReadOnly()
{
    var url = window.location.href;
    if(url.indexOf("OState=0") != -1)
    {
        var ddls = document.getElementsByTagName("select");
        if( ddls && ddls.length > 0)
        {
            for(var i = 0; i<ddls.length; i++)
            {
                var current = ddls[i];
                current.style.display = "none";
                var label = "<input type=\"text\" class=\"input_text\" readonly=\"readonly\" value=\""+ current.options[current.selectedIndex].innerHTML + "\" />";
                current.parentElement.insertAdjacentHTML("afterBegin",label);
            }
        }
    }
}
    //检查值是否为空或空串
    function CheckValueIsNull(CtrlId, Name) {
        var value1 = document.getElementById(CtrlId).value.trim();
        if (value1 == null || value1 == "") {
            alert("[" + Name+"]不能为空，请填写！");
            document.getElementById(CtrlId).focus();
            return true;
        }
        return false;
    }
    // check txt
   function txtCheck(id, name, minLen, isTrim) {
        var obj = $(id);
        if (isTrim) obj.value = this.trim(obj.value);
        if (obj.value.length == 0) return name + "不能为空！";
        if (obj.value.length < minLen) return name + "必须大于或等于 " + minLen.toString() + " 个非空字符！";
        return "";
    } //是否是正整数
    //大于0的整数 （用于传来的ID的验证)
    //strValue 控件输入内容
    //name 控件名称
    function onlyNumber(obj, name) {
        if (obj.value == '') return true;
        var satry = /^[0-9]{1}[\d]*$/;
        if (satry.test(obj.value) == true) {
            return true;
        }
        else {
            alert("［" + name + "］只能填写0和正整数！");
            obj.focus();
            return false;
        }
    }
    function getAbsPosition(obj) {
        var abs = { x: 0, y: 0 }
        while (obj != document.body) {
            abs.x += obj.offsetLeft;
            abs.y += obj.offsetTop;
            obj = obj.offsetParent;
        }
        return abs;
    }
    function SetHeightOnload() {

        if (typeof (window.parent.resizeFrame) == "function") {
            var h = document.body.offsetHeight;

            if (window.parent.location != window.location) {
                window.parent.resizeFrame(h);
            }
        }
    
    }
    //电话号码格式
    function mobile(obj,name)
{
    if(obj.value=='') return true;
   
    var myreg = /^([0-9-\s]+)$/;
    if(!myreg.test(obj.value))
    {
        alert(name+'只能输入数字、-和空格！');
        obj.focus();
        return false;
    }
    return true;
}
