function cl_isEmail(str){
   var reg = new RegExp("^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z-]+\.)+[a-zA-Z]{2,3}$");
   if(str.search(reg)!=-1)
      return true;
   else
      return false;
}
function cl_isInteger(p_in) {
   var p_val = p_in.toString();
   for(var i=0;i<p_val.length; i++)  {
       var oneChar = p_val.charAt(i);
       if(i==0 && oneChar =="-")       continue;
       if(oneChar<"0" || oneChar>"9")  return false;
   }
   return true;
}
function op(p_form,p_op,p_nbr)  {
    var frm = eval("document."+p_form);
    frm.Op.value=p_op;
    frm.Nbr.value=p_nbr;
    frm.submit();
    return false;
}
function cl_ltrim(p_str,p_char)  {
    for(var i=0;i<p_str.length;)  {
        if(p_str.substr(i,1) != p_char)  break;
        p_str = p_str.substr(i+1);
    }
    return p_str
}
function cl_rtrim(p_str,p_char)  {
    for(var i=p_str.length-1;i>=0;i--)  {
        if(p_str.substr(i,1) != p_char)  break;
        p_str = p_str.substr(0,i);
    }
    return p_str
}
function cl_trim(p_str,p_char)  {
    p_str = cl_ltrim(p_str,p_char);
    p_str = cl_rtrim(p_str,p_char);
    return p_str;
}
function checkIP(ip)
{
    var re = /^((\d)|(([1-9])\d)|(1\d\d)|(2(([0-4]\d)|5([0-5]))))\.((\d)|(([1-9])\d)|(1\d\d)|(2(([0-4]\d)|5([0-5]))))\.((\d)|(([1-9])\d)|(1\d\d)|(2(([0-4]\d)|5([0-5]))))\.((\d)|(([1-9])\d)|(1\d\d)|(2(([0-4]\d)|5([0-5]))))$/;
    if(re.test(ip))
        return true;
    else
        return false;
}
//正整数
function isInt(str){
	var reg = /^[0-9]*[1-9][0-9]*$/;
	
	if (!reg.test(str))
	{
		return false;
	}
	else
	{
		return true;
	}
}
//非负整数
function isNumber(str){
	var reg = /^[0-9]+[0-9]*$/;
	if (!reg.test(str))
	{
		return false;
	}
	else
	{
		return true;
	}
}

function isFloat(str)
{
	reg = /^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/;
	if (!reg.test(str))
	{
		return false;
	}
	else
	{
		return true;
	}
}

function isFloat2(str)
{
	reg = /^\d+(\.\d+)?$/;
	if (!reg.test(str))
	{
		return false;
	}
	else
	{
		return true;
	}
}

function isMoney(str)
{
	reg = /^[0-9]{1,8}[.]{0,1}[0-9]{0,2}$/;
	if (!reg.test(str))
	{
		return false;
	}
	else
	{
		return true;
	}
}

function isMobile(str)
{
	reg = /^0{0,1}(13[4-9]|15[7-9]|15[0-2]|18[7-8])[0-9]{8}$/;
	if (!reg.test(str))
	{
		return false;
	}
	else
	{
		return true;
	}
}
function isQQ(str)
{
	reg = /^[1-9]\d{4,10}$/;
	if (!reg.test(str))
	{
		return false;
	}
	else
	{
		return true;
	}
}

//这个可以验证15位和18位的身份证，并且包含生日和校验位的验证。   
function isIdCardNo(num) 
{   
	num = num.toUpperCase();  
	//身份证号码为15位或者18位，15位时全为数字，18位前17位为数字，最后一位是校验位，可能为数字或字符X。   
	if (!(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(num)))   
	{ 
		alert('输入的身份证号长度不对，或者号码不符合规定！\n15位号码应全为数字，18位号码末位可以为数字或X。'); 
		return false; 
	} 
	
	//校验位按照ISO 7064:1983.MOD 11-2的规定生成，X可以认为是数字10。 
	//下面分别分析出生日期和校验位 
	var len, re; 
	len = num.length; 
	if (len == 15) 
	{ 
		re = new RegExp(/^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/); 
		var arrSplit = num.match(re); 
		//检查生日日期是否正确 
		var dtmBirth = new Date('19' + arrSplit[2] + '/' + arrSplit[3] + '/' + arrSplit[4]); 
		var bGoodDay; 
		bGoodDay = (dtmBirth.getYear() == Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3])) && (dtmBirth.getDate() == Number(arrSplit[4])); 
		if (!bGoodDay) 
		{ 
			alert('输入的身份证号里出生日期不对！');   
			return false; 
		} 
		else 
		{ 
		//将15位身份证转成18位 
		//校验位按照ISO 7064:1983.MOD 11-2的规定生成，X可以认为是数字10。 
		  var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); 
		  var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); 
		  var nTemp = 0, i;   
			num = num.substr(0, 6) + '19' + num.substr(6, num.length - 6); 
		  for(i = 0; i < 17; i ++) 
		  { 
				nTemp += num.substr(i, 1) * arrInt[i]; 
		  } 
		  num += arrCh[nTemp % 11];   
		  return num;   
		}   
	} 
	if (len == 18) 
	{ 
		re = new RegExp(/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/); 
		var arrSplit = num.match(re); 
		
		//检查生日日期是否正确 
		var dtmBirth = new Date(arrSplit[2] + "/" + arrSplit[3] + "/" + arrSplit[4]); 
		var bGoodDay; 
		bGoodDay = (dtmBirth.getFullYear() == Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3])) && (dtmBirth.getDate() == Number(arrSplit[4])); 
		if (!bGoodDay) 
		{ 
		alert(dtmBirth.getYear()); 
		alert(arrSplit[2]); 
		alert('输入的身份证号里出生日期不对！'); 
		return false; 
		} 
		else 
		{ 
		//检验18位身份证的校验码是否正确。 
		//校验位按照ISO 7064:1983.MOD 11-2的规定生成，X可以认为是数字10。 
		var valnum; 
		var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); 
		var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); 
		var nTemp = 0, i; 
		for(i = 0; i < 17; i ++) 
		{ 
			nTemp += num.substr(i, 1) * arrInt[i]; 
		} 
		valnum = arrCh[nTemp % 11]; 
		if (valnum != num.substr(17, 1)) 
		{ 
			alert('18位身份证的校验码不正确！应该为：' + valnum); 
			return false; 
		} 
		return num; 
		}
	} 
	return false; 
}

//邮箱格式是否正确
function isEmail(str)
{
	var reg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/;
    return reg.test(str);
}
//是否中文
function isChn(str){
      var reg = /^[\u4E00-\u9FA5]+$/;
      if(!reg.test(str)){
       return false;
      }
      return true;
}
//是否英文
function isEn(str){
	var reg = /^[a-zA-Z]+$/;
	if (!reg.test(str))
	{
		return false;
	}
	return true;
}
//验证是否中文或者英文
function is_En_Chn(str)
{
	if (isChn(str) || isEn(str))
	{
		return true;
	}
	return false;
}
function is_Domain(str)
{
	var reg = /^([a-zA-Z0-9]{1,30}[.])?([a-zA-Z0-9-]{1,50}[.])(ac.at|ac.cn|ac.id|ac.jp|ad.jp|ac.kr|ac.nz|ac.uk|ah.cn|bj.cn|co.at|co.uk|co.id|co.kr|co.jp|co.nz|co.az|co.hu|co.il|co.uz|co.vi|co.tz|co.za|com.bb|com.br|com.bs|com.do|com.gy|com.mx|com.pa|com.pe|com.pr|com.bh|com.eg|com.au|com.hm|com.az|com.mt|com.nf|com.pn|com.sg|com.sc|com.ru|com.ua|com.kz|com.ag|com.ai|com.ar|com.cn|cri.nz|cq.cn|edu.tw|edu.au|edu.cn|eun.eg|fj.cn|ltd.uk|gob.mx|gr.jp|gov.au|govt.nz|gen.nz|gov.cn|gz.cn|gd.cn|gx.cn|gs.cn|he.cn|hk.cn|ha.cn|hb.cn|hn.cn|hl.cn|hi.cn|ind.br|inf.br|iwi.nz|jx.cn|jl.cn|js.cn|ln.cn|ne.jp|net.ae|net.eg|net.au|net.cn|net.nz|net.tw|net.lu|net.ru|net.ar|net.bb|net.br|net.bs|net.mx|net.uk|net.cn|nm.cn|nx.cn|mil.nz|maori.nz|mo.cn|or.jp|org.cn|org.uk|org.ae|org.il|org.ar|org.lu|org.bb|org.nz|org.bs|org.cn|plc.uk|qh.cn|tj.cn|tw.cn|school.nz|sh.cn|sc.cn|sd.cn|sx.cn|sn.cn|xj.cn|xz.cn|zj.cn|yn.cn|ac|ae|ao|aq|as|ad|af|al|am|an|at|aw|biz|bf|bi|bj|bw|bd|bn|bm|bt|ba|bb|be|bg|bo|bv|by|bs|bz|cd|cf|cg|ci|cm|cv|cc|ck|cn|ch|cx|cy|cz|ca|cl|co|cr|cu|cv|com|dj|dz|de|dk|dm|er|et|ee|es|fj|fm|fi|fo|fr|fk|ga|gh|gm|gn|gq|gw|ge|gu|gg|gi|gl|gr|gd|gf|gp|gs|gt|hk|hn|hr|ht|iq|ir|id|in|info|ie|im|is|it|jo|je|jm|ke|km|kw|kg|kh|kn|ky|ki|li|lt|lv|la|lk|lb|lr|ls|ly|ly|lc|mobi|mq|ms|ma|mg|ml|mr|mw|mz|mh|mm|mn|mo|mp|mu|mv|my|mc|md|mk|me|name|net|na|ne|ng|nc|np|nr|nu|nl|no|ni|om|org|pf|pg|ph|pk|pw|pl|pt|pm|py|qa|re|rw|ro|ru|sb|se|si|sj|sk|sm|sa|sd|sh|si|sl|sn|so|st|sy|sz|sr|tf|th|tj|tk|to|tp|tv|tm|td|tg|tn|tr|tc|tt|ec|um|us|uy|ug|vc|ve|vu|va|vn|vg|ws|ye|yu|zm|zr|zw)$/ ;
	if (!reg.test(str))
	{
		return false;
	}
	return true;
}

function IsURL(str_url){  
		 var strRegex = "^((https|http|ftp|rtsp|mms)://)"  
		 + "(([0-9a-z_!~*’().&=+$%-]+: )?[0-9a-z_!~*’().&=+$%-]+@)?" //ftp的user@  
		 + "(([0-9]{1,3}\.){3}[0-9]{1,3}" // IP形式的URL- 199.194.52.184  
		 + "|" // 允许IP和DOMAIN（域名）  
		 + "([0-9a-z_!~*’()-]+\.)*" // 域名- www.  
		 + "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\." // 二级域名  
		 + "[a-z]{2,6})" // first level domain- .com or .museum  
		 + "(:[0-9]{1,4})?" // 端口- :80   
		 var re=new RegExp(strRegex);  
		 if (re.test(str_url)){  
			return (true);  
		 }else{  
			return (false);  
		 }  
}

function copy(txt)  
{ 
      if(window.clipboardData) { 
              window.clipboardData.clearData(); 
              window.clipboardData.setData("Text", txt);
            alert("复制成功"); 
      } else if(navigator.userAgent.indexOf("Opera") != -1) { 
          window.location = txt; 
      } else if (window.netscape) { 
          try { 
                netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); 
          } catch (e) { 
                alert("如果您正在使用FireFox！\n请在浏览器地址栏输入'about:config'并回车\n然后将 'signed.applets.codebase_principal_support'设置为'true'"); 
          } 
          var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard); 
          if (!clip) 
                return; 
          var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable); 
          if (!trans) 
                return; 
          trans.addDataFlavor('text/unicode'); 
          var str = new Object(); 
          var len = new Object(); 
          var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString); 
          var copytext = txt; 
          str.data = copytext; 
          trans.setTransferData("text/unicode",str,copytext.length*2); 
          var clipid = Components.interfaces.nsIClipboard; 
          if (!clip) 
                return false; 
          clip.setData(trans,null,clipid.kGlobalClipboard); 
          alert("复制成功！") 
      } 
}


