/*
1、字符类

2、数字类

3、时间类

4、表单类

5、浏览器类

6、结合类
	
7、各种<object classid=>相关类，如播放器，flash与脚本互动等



*/
/*
ptnOUinteger=/^\d*$/;	//无符号整数(可选)
ptnUinteger=/^[\d]+$/;	//无符号整数
ptnOInteger=/^-?\d*$/;	//有符号整数(可选)
ptnInteger=/^-?\d+$/;	//有符号整数
ptnUfloat=/^\d+\.?\d*$/;	//无符号浮点数
ptnFloat=/^-?\d+\.?\d*$/;	//有符号浮点数
//ptnDbyte=/^[^x00-xff]+$/;	//双字节字符
ptnCharZhcn=/[\u4e00-\u9fa5]+/;	//匹配中文字符的正则表达式
ptnDbyte=/[^\x00-\xff]+/;	//匹配双字节字符(包括汉字在内)：
ptnSbyte=/^[\x00-\xff]*$/;	//匹配非双字节字符：
ptnHtml=/<(.*)>.*<\/\1>|<(.*)   \/>/;	//匹配HTML标记的正则表达式
ptnCommonOText=/^[\x00-\xff]{0,25}$/;	//匹配最大长度25的单字节字符(可选字段)
ptnCommonText=/^[\x00-\xff]{1,25}$/;	//匹配最大长度25的单字节字符
ptnCommonOTextArea=/^[\x00-\xff]{0,5000}$/;	//匹配最大长度200的单字节字符(可选字段)
//ptnCommonTextArea=/^[\x00-\xff]{100,5000}$/;	//匹配最大长度200的单字节字符
ptnCommonTextArea=/[^\u4e00-\u9fa5]{100,5000}$/;	//匹配最大长度200的单字节字符
ptnCommonEbookArea=/[^\u4e00-\u9fa5]{100,1000}$/;	//匹配最大长度200的单字节字符
ptnPhpArray=/^\w+\[\]$/;	//匹配html中的数组模式
ptnUrl=/^http:\/\/([\w\-\d]+)(.[\w\-\d]+)+$/;	//匹配url字符串
ptnEmail=/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/g;
ptnLetterBegin=/^[a-zA-Z]+/;	//匹配以字母开头的字符串
ptnSpecialCharBegin=/^\W+/;		//匹配"特殊字符"开头的字符串
ptnWithLetter=/[a-zA-Z]+/;		//匹配包含英文字符的字符串
ptnWithSpecialChar=/\W+/;		//匹配包含"特殊字符"的字符串
*/ 
/*1、字符类************************************************************************************************/
//trim:去除两边空格 lTrim:去除左空格 rTrim: 去除右空格
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(str){
    return (str.trim()=="");
}

//email的判断。
function isEmail(mail){
	return(new RegExp(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/).test(mail));
}

//密码的判断。
function isPassword(str){
	return(/^(\w){6,20}$/.test(str));
}

//邮编的判断
function isPostalCode(str){
	return(/^[a-zA-Z0-9 ]{3,12}$/.test(str));
}
//字符串是否为中文
function isChinese(str){
    return (/^([\u4E00-\u9FA5]|[\uFE30-\uFFA0])*$/gi.test(str))
}

//计算字符串的长度，一个汉字两个字符
String.prototype.chineseLength = function(){return this.replace(/[^\x00-\xff]/g,"**").length;}


/*2、数字验证类************************************************************************************************/
//整数
function isInteger(str){
	return (/^(\-?)(\d+)$/.test(str));
}

//包含数字
function inNum(str){
	return (str.match(/\d/g)!=null);
}

//包含字母
function inLetter(str){
	return (str.match(/[a-z]/ig)!=null);
}

//包含中文
function inChinese(str){
	return (str.match(/[^ -~]/g)!=null);
}

function isWeb(str){
    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 
    + "((/?)|" // a slash isn't required if there is no file name 
    + "(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)$"; 
    var re=new RegExp(strRegex); 
	return re.test(str);
}




//包含特殊字符
function inChar(str){
	return (str.match(/[^\da-zA-Z]/g)!=null);
}

//大于0的整数 （用于传来的ID的验证)自然数    
function isNatural(str){
	return (/^\d+$/.test(str));
} 

//负整数的验证
function isNegative(str){
	return (/^-\d+$/.test(str));
}       
  
      
/*3、时间类*************************************************************************************************/
//短时间，形如 (13:04:06)
function isTime(str){
	var a = str.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/);
    if (a == null) return false;
	return (a[1]>24||a[3]>60||a[4]>60);
}

// 短日期，形如 (2003-12-05)
function isDate(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]); 
    return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
}

//长时间，形如 (2003-12-05 13:04:06)
function isDateTime(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 false; 
	var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]); 
	return (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]);
}

//校验两个日期的先后
function DateEarlier(strStart,strEnd){
    if(isDate(strStart) == false || isDate(strEnd) == false)return false;
    var arr1 = strStart.split("-");
    var arr2 = strEnd.split("-");
    var date1 = new Date(arr1[0],parseInt(arr1[1].replace(/^0/,""),10) - 1,arr1[2]);
    var date2 = new Date(arr2[0],parseInt(arr2[1].replace(/^0/,""),10) - 1,arr2[2]);
    if(arr1[1].length == 1)arr1[1] = "0" + arr1[1];
    if(arr1[2].length == 1)arr1[2] = "0" + arr1[2];
    if(arr2[1].length == 1)arr2[1] = "0" + arr2[1];
    if(arr2[2].length == 1)arr2[2]="0" + arr2[2];
    var d1 = arr1[0] + arr1[1] + arr1[2];
    var d2 = arr2[0] + arr2[1] + arr2[2];
    return (parseInt(d1,10) < parseInt(d2,10));
}



/*4、表单类************************************************************************************************/



/*5、浏览器类************************************************************************************************/
/*
  判断浏览器的类型
      window.navigator.appName
  判断ie的版本
      window.navigator.appVersion
  判断客户端的分辨率
      window.screen.height;  window.screen.width;
*/


/*6、结合类************************************************************************************************/

function show(obj){ 
	obj.style.display="";
} 
function hide(obj){ 
	obj.style.display="none";
} 

/*7、各种<object classid=>相关类，如播放器，flash与脚本互动等**************************************************/

//<object classid="clsid:8856f961-340a-11d0-a96b-00c04fd705a2" name=wb height=0 width=0></object> 
//打印设置
function printsetup(){ 
	wb.execwb(8,1); 
	wb.Portrait = true;   
}  
//打印预览
function printpreview(){ 
	wb.execwb(7,1);  
	wb.Portrait = true;                    
}   
//打印
function printit(){   
	wb.Portrait = true;
	wb.execwb(6,6)    
}  



/*8、表单类************************************************************************************************/

/*9、文件************************************************************************************************/
// 得到文件的后缀名
function getFileSuffix(oFile){
    if(oFile == null)return null;
    var pattern = /(.*)\.(.*)$/gi;
    if(typeof(oFile) == "object"){
        if(oFile.value == null || oFile.value == "")return null;
        var arr = pattern.exec(oFile.value);
        return RegExp.$2;
    }else if(typeof(oFile) == "string"){
        var arr = pattern.exec(oFile);
        return RegExp.$2;
    }else return null;
}

function byId(id) {
	if (document.getElementById) {
		return document.getElementById(id);
	} else if (document.all) {
		return document.all[id];
	} else if (document.layers) {
		return document.layers[id];
	} else {
		return null;
	}
}


function addCookie(){
	if (window.sidebar) { 
		window.sidebar.addPanel('CIS工业资源网', 'http://www.cisregister.com'); 
	} else if( document.all ) {
		window.external.AddFavorite( 'http://www.cisregister.com','CIS工业资源网');
	} else if( window.opera && window.print ) {
		return true;
	}
}


function setHomepage(){
	if (document.all){
        document.body.style.behavior='url(#default#homepage)';
  		document.body.setHomePage('http://www.cisregister.com');
    }else if (window.sidebar){
    	if(window.netscape){
			try{ 
				netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); 
			}catch (e) { 
				alert( "该操作被浏览器拒绝，如果想启用该功能，请在地址栏内输入 about:config,然后将项 signed.applets.codebase_principal_support 值该为true" ); 
			}
    	}
    	var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components. interfaces.nsIPrefBranch);
    	prefs.setCharPref('browser.startup.homepage','http://www.cisregister.com');
	}
}


function addfavorite(name,url){
	if (document.all){
		window.external.addFavorite(url,name);
	}else if (window.sidebar){
		window.sidebar.addPanel(name,url, "");
	}
}

//创建ajax对象++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

/*
var name_re = false; 
   function name_xml()
   {
   try { 
     name_re = new XMLHttpRequest(); 
   } catch (trymicrosoft) { 
     try { 
       name_re = new ActiveXObject("Msxml2.XMLHTTP"); 
     } catch (othermicrosoft) { 
       try { 
         name_re = new ActiveXObject("Microsoft.XMLHTTP"); 
       } catch (failed) { 
         name_re = false; 
       }   
     } 
   } 
   if (!name_re) 
     alert("Error initializing XMLHttpRequest!"); 
}

var name_use;
var mail_use;



//ajax密码强度验证
function allNumber(v)
 {
  var reg = /^[0-9]*$/;
  if(reg.test(v))
  { 
   return true;
  }
  return false;
 }
 
 function CharMode(iN){
  if(iN>=48 && iN<=57)//数字
   return 1;
  if(iN>=65 && iN<=90)//大写字母
   return 2;
  if(iN>=97 && iN<=122)//小写
   return 4;
  else
   return 8;//特殊字符
 }

 //计算出当前密码当中一共有多少种模式
 function bitTotal(num){
  var modes=0;
  for(i=0;i<4;i++){
   if(num&1)
    modes++;
   num >>=1;
  }
  return modes;
 }
  
 //返回密码的强度级别
 function checkStrong(sPW){
  if(sPW.length<6)
   return 0;//密码太短 
  var Modes=0;
  for(i=0;i<sPW.length;i++){
  //测试每一个字符的类别并统计一共有多少种模式.
  Modes|=CharMode(sPW.charCodeAt(i));
  }
 // alert(bitTotal(Modes));
  return bitTotal(Modes);
 }


 function showStrongPic()
 {
  var v = document.getElementById('u_pass').value;
  var m = checkStrong(v);
  if(m < 2)
  {
   document.getElementById('lowPic').style.display="";
   document.getElementById('midPic').style.display="none";
   document.getElementById('highPic').style.display="none";
  }
  else if(m==2)
  {
   document.getElementById('lowPic').style.display="none";
   document.getElementById('midPic').style.display="";
   document.getElementById('highPic').style.display="none";
  }
  else 
  {
   document.getElementById('lowPic').style.display="none";
   document.getElementById('midPic').style.display="none";
   document.getElementById('highPic').style.display="";
  }
 }
 
//邮箱格式验证
function isEmail() {
var u_mail=document.getElementById('u_mail').value;
if (u_mail.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1){
email_ajax(u_mail);
}
else{
document.getElementById('mail_re').innerHTML='<img src=check_error.gif>';
document.getElementById('mail_re_m').innerHTML='<span class=msg>请输入正确的邮箱地址，格式为：123456@qq.com</span>';
return false;
}
}

function email_ajax(u_mail){
var email=u_mail;
var url="ajax.asp?action=email&mail="+ escape(email); 
     name_xml();
     name_re.open("GET", url, true); 
     name_re.setRequestHeader("content-type","text/xml");
     name_re.onreadystatechange = mail_requst; 
name_re.setRequestHeader("If-Modified-Since","0");
     name_re.send(null); 

}

function mail_requst(){
if(name_re.readyState==4 && name_re.status==200)//返回完成
{
var msg=name_re.responseText;
if (msg=="yes"){
document.getElementById('mail_re').innerHTML='<img src=check_error.gif>';
document.getElementById('mail_re_m').innerHTML='<span class=msg>该邮箱已被使用，请换一个</span>';
mail_msg(0);
return false;
}
else{
document.getElementById('mail_re').innerHTML='<img src=check_right.gif>';
document.getElementById('mail_re_m').innerHTML='<span class=msg2>可以使用</span>';
mail_msg(1);
return true;
}
}
}
function mail_msg(n){
var n=n;
if(n==0){
mail_use=true;
}
else{
mail_use=false; 
}
}


//ajax验证码验证
function isCheckCode(){
var CheckCode = document.getElementById('CheckCode').value;
if (CheckCode==""){
document.getElementById('CheckCode_re').innerHTML='<img src=check_error.gif>';
document.getElementById('CheckCode_re_m').innerHTML='<span class=msg>验证码不能为空！</span>';
return false;
}else{
Code_ajax(CheckCode)
}
}

function Code_ajax(CheckCode){
var Code=CheckCode;
var url="code_ajax.asp?Code="+ escape(Code); 
     name_xml();
     name_re.open("GET", url, true); 
     name_re.setRequestHeader("content-type","text/xml");
     name_re.onreadystatechange = Code_requst; 
name_re.setRequestHeader("If-Modified-Since","0");
     name_re.send(null); 
}

function Code_requst(){
if(name_re.readyState==4 && name_re.status==200)//返回完成
{
var msg=name_re.responseText;
if (msg=="yes"){
document.getElementById('CheckCode_re').innerHTML='<img src=check_error.gif>';
document.getElementById('CheckCode_re_m').innerHTML='<span class=msg>验证码错误！</span>';
Code_msg(0);
return false;
}
else{
document.getElementById('CheckCode_re').innerHTML='<img src=check_right.gif>';
document.getElementById('CheckCode_re_m').innerHTML='<span class=msg2>输入正确！</span>';
Code_msg(1);
return true;
}
}
}
function Code_msg(n){
var n=n;
if(n==0){
Code_use=true;
}
else{
Code_use=false;
}
}

//ajax用户名验证
function isName(){
var u_name = document.getElementById('u_name').value;
if (u_name==""){
document.getElementById('name_re').innerHTML='<img src=check_error.gif>';
document.getElementById('name_re_m').innerHTML='<span class=msg>用户名不能为空，4-10个字符</span>';
return false;
}else{
user_ajax(u_name)
}
}

function user_ajax(u_name){
var name=u_name;
var url="ajax.asp?action=names&name="+ escape(name); 
     name_xml();
     name_re.open("GET", url, true); 
     name_re.setRequestHeader("content-type","text/xml");
     name_re.onreadystatechange = name_requst; 
name_re.setRequestHeader("If-Modified-Since","0");
     name_re.send(null); 
}

function name_requst(){
if(name_re.readyState==4 && name_re.status==200)//返回完成
{
var msg=name_re.responseText;
if (msg=="yes"){
document.getElementById('name_re').innerHTML='<img src=check_error.gif>';
document.getElementById('name_re_m').innerHTML='<span class=msg>该用户名已经存在！</span>';
name_msg(0);
return false;
}
else{
document.getElementById('name_re').innerHTML='<img src=check_right.gif>';
document.getElementById('name_re_m').innerHTML='<span class=msg2>可以注册！</span>';
name_msg(1);
return true;
}
}
}
function name_msg(n){
var n=n;
if(n==0){
name_use=true;
}
else{
name_use=false;
}
}
*/
