﻿//------------------------------------/
//									 |
//名称:		万用表单验证			 	 |
//									 |
//版本：		2.0					     |
//									 |
//更改日期:	2008-08-18				 |
//									 |
//作者:		weasly					 |
//									 |
//QQ:		286668864 				 |
//									 |
//E_mail:	lodrw@163.com			 |
//									 |
//公司网址: http://www.aiyouji.com	 |
//									 |
//-----------------------------------|

/*
//《文档说明》

		本程序包括了
			<一>表单篇
				1、用户名的检测：用户的检查是否符合要求及是否已经占用（需外加程序）。
				
				2、密码的检测：（包括密码的长度,两次密码是否一致及密码的强弱）。
				
				3、邮箱的检测：格式是否正确。
				
				4、类型检测：是否数字、字符、汉字。
				
				5、电话的检测：格式是否正确。
				
				6、身份证的检测：格式是否正确。
				
				7、表单的空值检测：检测表单里面某类元素是否为空（text,password,textarea,select）。
				
				8、限定输入的长度.
				
				9、智能全选
			
			<二>样式篇
				1、动态地在页面切换样式（应用于menu）。
				
				2、对表单中的text框 password框 和按钮 应用样式。（前提是要提前定义样式）。
				
				3、对表单中的textarea框应用样式。
				
				4、对表单中的select框应用样式。
				
				5、显示隐藏层。
				
				6、仿微软关机效果。
*/

//返回的错误报告.

//----邮箱类-----
var Email_error="错误的邮箱格式!";
var Email_OK="<img src='../images/OK.gif' align='absmiddle'>";
//---------------

//-----密码类-----
var Pass_short="密码太短,请检查!";
var Pass_OK="<img src='../images/OK.gif' align='absmiddle'>";
var pass_long="密码太长了,请检查!";
var pass_diff="两次输入的密码不一致,请检查!";
//---------------

//---电话号码类---
//手机号码 
var Mobile_error="错误的电话格式,请检查!";
var Mobile_OK="<img src='../images/OK.gif' align='absmiddle'>";
//宅电
var Tel_error="错误的电话格式,请检查!";
var Tel_OK="<img src='../images/OK.gif' align='absmiddle'>";
//---------------

//---验证身份证---
var card_error="错误的格式!";
var card_OK="<img src='../images/OK.gif' align='absmiddle'>";
//---------------

//--是否数字-----
var only_num_error="只能是数字!";
var only_num_OK="<img src='../images/OK.gif' align='absmiddle'>";

//---是否字母----
var only_str_error="只能是字符!";
var only_str_OK="<img src='../images/OK.gif' align='absmiddle'>";

//--是否中文------
var only_chin_error="只能是中文!";
var only_chin_OK="<img src='../images/OK.gif' align='absmiddle'>";


//-限制输入字节---
var num_long="超过限制长度!";
var num_OK="<img src='../images/OK.gif' align='absmiddle'>";
//---------------

//---检测用户的长度--
var user_short="(用户名长度太短 应在5-15个字节)";
var user_long="(用户名长度太长 应在5-15个字节)";
var user_error="(格式错误,请检查!)";
var user_OK="<img src='../images/OK.gif' align='absmiddle'/>";




//----------------------------------------------------------------------------------------------------------------------+
															//表单验证篇
//-----------------------------------------------------------------------------------------------------------------------




//函数主体
//检测用户的长短及是否格式正确
//------------------------------------------
//函数名_checkUser(value,targetid,submitName)
//value是指当前输入的值
//targetid是用于显示结果的ID
//submitName提交按钮
//------------------------------------------
function _checkUser(value,targetid,submitName){
		if(value.length<5){
			document.getElementById(targetid).innerHTML=user_short;
			document.getElementById(submitName).disabled=true;
		}else if(value.length>15){
			document.getElementById(targetid).innerHTML=user_long;	
			document.getElementById(submitName).disabled=true;
		}else{
			document.getElementById(targetid).innerHTML=user_OK;
			document.getElementById(submitName).disabled=false;	
		}
		reg_user=/\d|\w/ig;
		if(reg_user.test(value)==false){
			document.getElementById(targetid).innerHTML=user_error;
		}
}
//函数主体
//检测密码的长度，及正确性
//------------------------------------------
//函数名_passCheck()(value,targetid,submitName)
//value是指当前输入的值
//targetid是用于显示结果的ID
//submitName提交按钮
//------------------------------------------
function _passCheck(value,targetid,submitName){
	if(value.length<8){
		document.getElementById(targetid).innerHTML=Pass_short;
		document.getElementById(submitName).disabled=true;	
	}else if(value.length>16){
		document.getElementById(targetid).innerHTML=pass_long;
		document.getElementById(submitName).disabled=true;		
	}else{
		document.getElementById(targetid).innerHTML=Pass_OK;
		document.getElementById(submitName).disabled=false;		
	}
}
//----------------------------------------

//函数主体
//检测重复输入的密码是否与上次输入的是否一致
//--------------------------------------
//函数名:_passAgainCheck(first,twice)
//first第一次输入的密码
//twice第二次输入的密码
//targetid目标显示ID
//submitName按钮ID
//------------------------------------------------------------
function passAgain_Check(first,twice,targetid,submitName){
	if(first!=twice){
		document.getElementById(targetid).innerHTML=pass_diff;
		document.getElementById(submitName).disabled=true;
	}
	if(first==twice && twice!=""){
		document.getElementById(targetid).innerHTML=Pass_OK;
		document.getElementById(submitName).disabled=false;
	}
}
//------------------------------------------------------------

//检测邮箱
//函数名：_mail_check(mail,targetid,submitName)
//mail用户输入的邮箱
//----------------------------------------------------------------
function _mail_check(mail,targetid,submitName){
	var reg_mail=/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/;
	if(reg_mail.test(mail)==false){
		document.getElementById(targetid).innerHTML=Email_error;
		document.getElementById(submitName).disabled=true;
	}else{
		document.getElementById(targetid).innerHTML=Email_OK;
		document.getElementById(submitName).disabled=false;
	}
}
//-----------------------------------------------------------------

//函数名_checkStrong(value,countant,silk,mid,strong)
//value获取的当前值
//COUNTANT 是容器ID 包含(silk,mid,strong) 在前台要设置它的style.display为none;
//silk弱密码
//mid强密码
//strongs//强密码
//-----------------------------------------
function _checkStrong(value,countant,silk,mid,strong){
		var arr=value.split("");
		var num=/[0-9]/ig;
		var str=/[a-zA-Z]/ig;
		var special=/[^0-9A-za-z]/ig;
		var num_count=0;
		var str_count=0;
		var special_count=0;
		for(var i=0;i<value.length; i++){
				if(num.test(arr[i])!=false){
					num_count=1;
				}
				if(str.test(arr[i])!=false){
					str_count=1;	
				}
				if(special.test(arr[i])!=false){
					special_count=1;
				}
		}
		var checkStr=num_count+str_count+special_count;
		if(checkStr==1){
			document.getElementById(countant).style.display='block';
			document.getElementById(silk).style.background='#FF0000';
			document.getElementById(mid).style.background='#FFFFFF';
			document.getElementById(strong).style.background='#FFFFFF';
		}else if(checkStr==2){
			document.getElementById(countant).style.display='block';
			document.getElementById(silk).style.background='#FF6600';
			document.getElementById(mid).style.background='#FF6600';
			document.getElementById(strong).style.background='#FFFFFF';
		}else if(checkStr==3){
			document.getElementById(countant).style.display='block';
			document.getElementById(silk).style.background='#FF9900';
			document.getElementById(mid).style.background='#FF9900';
			document.getElementById(strong).style.background='#FF9900';
		}else{}
}
//-----------------------------------------


//函数主体
//检测表单是否有空值
//------------------------------------------
//函数名_check_empty(num,submitName)
//num是FORM的个数。0代表第一个FORM。
//提交按钮的名
//-----------------------------------------
function _check_empty(num,submitName){
		var all_element=document.forms[num].elements;
		for(var j=0;j<all_element.length;j++){
			if(all_element[j].type=="text" || all_element[j].type=="password"){
				 if(all_element[j].value==""){
					document.getElementById(submitName).disabled=true;
					all_element[j].focus();
				}else{
					document.getElementById(submitName).disabled=false;
				}
			}
		}
	}
//-----------------------------------------

//全选-----删除
//function _checkAll(forms)
//forms代表是第几个表单
//用法:  onclick=" _checkAll(0) title="main" "
//title="main"这个是必填的，它是用来区分哪个是点击的
//-----------------------------------------------------------------------------
function _checkAll(formsNum){
	var allElement=document.forms[formsNum].elements;
	for(var i = 0; i < allElement.length; i++){
		if(allElement[i].type=="checkbox"){
			if(allElement[i].title=="main"){
				mainSub=i;	//很关键 //求出谁是选中的对象
			}
		}
	}
	//全选
	for(var j = 0; j < allElement.length; j++){
		if(allElement[j].type=="checkbox"){
			if(allElement[mainSub].checked==true){
				for(j = 0; j < allElement.length; j++){
					allElement[j].checked=(allElement[j].type=="checkbox" ? true : false);
				}
			}else{
				for(j = 0; j < allElement.length; j++){
					allElement[j].checked=(allElement[j].type=="checkbox" ? false : true);
				}
			}
		}
	}
}
//-------------------------------------------------------------------------------

//函数名_mobile_check(value,targetid,submitName)
//检测手机号码是否合法
//value 当前的值
//targetid是用于显示结果的ID
//submitName提交按钮
//------------------------------------------------------------------
function _mobile_check(value,targetid,submitName){
	var mobile_reg=/^(\d){11}$/;
	if(mobile_reg.test(value)==false){
		document.getElementById(targetid).innerHTML=Mobile_error;
		document.getElementById(submitName).disabled=true;
	}else{
		document.getElementById(targetid).innerHTML=Mobile_OK;
		document.getElementById(submitName).disabled=false;
	}
}
//------------------------------------------------------------------

//函数名_only_num(value,targetid,submitName)
//只允许输入数字
//value 当前的值
//targetid是用于显示结果的ID
//submitName提交按钮
//---------------------------------------------------------------
function _only_num(value,targetid,submitName){
	var num_reg=/^\d+$/ig;
	if(num_reg.test(value)==false){
		document.getElementById(targetid).innerHTML=only_num_error;
		document.getElementById(submitName).disabled=true;
	}else{
		document.getElementById(targetid).innerHTML=only_num_OK;
		document.getElementById(submitName).disabled=false;
	}
}
//---------------------------------------------------------------

//函数名_only_str(value,targetid,submitName)
//只允许输入字符
//value 当前的值
//targetid是用于显示结果的ID
//submitName提交按钮
//--------------------------------------------------------------------------
function _only_str(value,targetid,submitName){
		var str_reg=/^[a-zA-Z]+$/ig;
		if(str_reg.test(value)==false){
			document.getElementById(targetid).innerHTML=only_str_error;
			document.getElementById(submitName).disabled=true;
		}else{
			document.getElementById(targetid).innerHTML=only_str_OK;
			document.getElementById(submitName).disabled=false
		}
}
//---------------------------------------------------------------------------

//函数名_only_chines(value,targetid,submitName)
//检测是否是中文汉字
//value 当前的值
//targetid是用于显示结果的ID
//submitName提交按钮
//-----------------------------------------------------------------------
function _only_chinese(value,targetid,submitName){
	var chin_reg=/[^\u4E00-\u9FA5]/g;
	if(chin_reg.test(value)!=false){
		document.getElementById(targetid).innerHTML=only_chin_error;
		document.getElementById(submitName).disabled=true;
	}else{
		document.getElementById(targetid).innerHTML=only_chin_OK;
		document.getElementById(submitName).disabled=false;
	}
	if(value==""){
		document.getElementById(targetid).innerHTML=only_chin_error;
		document.getElementById(submitName).disabled=true;
	}
}
//---------------------------------------------------------------------

//函数名_check_tel(value,targetid,submitName)
//检测是否是宅电
//value 当前的值
//targetid是用于显示结果的ID
//submitName提交按钮
//-----------------------------------------------------------------------
function _check_tel(value,targetid,submitName){
		var tel_reg=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;
		if(tel_reg.test(value)==false){
			document.getElementById(targetid).innerHTML=Tel_error;
			document.getElementById(submitName).disabled=true;
		}else{
			document.getElementById(targetid).innerHTML=Tel_OK;
			document.getElementById(submitName).disabled=true;
		}
}
//------------------------------------------------------------------------ 

//函数名 _limitStr(targetid,value,limitNum)
//作用：限定输入字数的长度
//targetid为目标ID
//value为值
//MaxNum为限定的最大长度
//最少长度 
function _limitStr(targetid,value,MaxNum,limitNum){
	var ValueLength=value.length;
	if(limitNum > ValueLength){
		alert("您输入的内容太少了!");	
	}else if(ValueLength > MaxNum){
		maxNUM=ValueLength.substr(0,MaxNum);
		return document.getElementById(targetid).value=maxNUM;
	}
}

//--------------------------------------------------------------------------------------------------------------------------+
													//样式应用篇
//----------------------------------------------------------------------------------------------------------------------------


//应用于menu
///用于动态地切换样式 
//-----------------------------------------------------------------------------------------------------------
////获取当前的链接地址 http://localhost/index.php
var url=window.location.pathname.split('/');
	var pageName=url[url.length-1].toString();
	var page=new Array("index.php","report.php","magazine.php","company.php","troupe.php");
	var pic=new Array("01","02","03","04","05");
	for(var j=0;j<page.length;j++){
		if(pageName==page[j]){
			document.getElementById('img_'+pic[j]).src='images/'+pic[j]+"_f.jpg";
			for(var i=0; i<=4;i++){
				if(i==j){
					continue;
				}else{
					document.getElementById('img_'+pic[i]).src='images/'+pic[i]+".jpg";
				}
			}
		}
	}
//
//-----------------------------------------------------------------------------------------------------------


//智能地对表单应用样式
//对text框，password框应用 input_link 
//对所有按钮类应用input_btn样式
//首先要有Textstyle和 ButtonStyle这两个样式
function style(Textstyle,ButtonStyle){
	var a = document.getElementsByTagName("input");
	for(var i=0;i<a.length;i++){
		if(a[i].type=="text" || a[i].type=="password"){
			a[i].className=Textstyle;
		}
		if(a[i].type=="submit" || a[i].type=="reset" || a[i].type=="button"){
			a[i].className=ButtonStyle;
		}
	}
}



//函数名:_textareaStyle(styleName)
//作用：对表单中的textarea框应用样式
//应用 onload="_textareaStyle('border')" border为定义好的样式

function _textareaStyle(styleName){
	var text_arr=document.getElementByTagName("textarea");
	for( var j =0; j < text_arr.length; j++){
		text_arr[j].className=styleName;
	}
}



//函数名_selectStyle(styleName)
//作用：对表单中的select框应用样式
//应用 onload="_selectStyle('border')" border为定义好的样式
function _selectStyle(styleName){
	var sel_arr=document.getElementByTagName("select");
	for( var j =0; j < sel_arr.length; j++){
		sel_arr[j].className=styleName;
	}
}

//显示隐藏层
//-----------------------------------------------------------------------------------------------------------------------------------
function _view(targid){
	return document.getElementById(targid).style.display=(document.getElementById(targid).style.display=="none" ? "block" : "none");
}
//------------------------------------------------------------------------------------------------------------------------------------

//检查用户是否被占有
//注：还需有一个checkUser.php
//参数userName为要查询的用户名
//返回的值为1和0.
//----------------------------------------------------------------------------------------------------
function testName(name){
			var ajax=new InitAjax();
				ajax.onreadystatechange=function(){
				if(ajax.readyState==4 && ajax.status==200){
					var Result=ajax.responseText;
					Handlewidth(Result);
				}
			}
			ajax.open("get","checkUser.php?userName="+escape(name),true);
			ajax.send(null);
		}
		function Handlewidth(Result){
			if(Result==1){
				document.getElementById("nameCheck").style.display="block";
				document.getElementById("nameCheck").innerHTML="该用户名已被注册，请重新注册用户!";
				document.getElementById("username").focus();
				document.getElementById("submit").disabled=true;
			}else if(Result==0){
				document.getElementById("nameCheck").style.display="block";
				document.getElementById("nameCheck").innerHTML="可以使用此用户!";
				document.getElementById("submit").disabled=false;
			}
		}
//---------------------------------------------------------------------------------------------------------



//函娄为仿关机效果
//<div style="position:absolute; display:none; left:50%;top:50%; color:#fff;z-index:122" id="bye">再见</div>
/* <table width="100000" height="1" border="0" align="center" cellpadding="0" cellspacing="0" id="tab" style="position:absolute;z-index:111;top:0;left:0;right:0;">
   <tr>
   	 <td>&nbsp;</td>
    </tr>
</table>
 <a href="javascript:void(0)" onclick="javascritp:shutdown();">关机</a>*/
 //
 function shutdown(){
	get=document.getElementById;
	height=get("tab").height;
	intHeight=parseInt(height);
	if(intHeight>2){
		get("tab").style.background="#666";
	}
	if(intHeight < 1002){
		get("tab").height=intHeight+2;
		setTimeout('shutdown()',10);
	}
	if(intHeight = 1000){
		get("bye").style.display='block';
	}
}
function view(obj){
	var str="subDiv_0"+obj;
	$("#"+str).toggle();
	if(obj==1){
		$("#subDiv_02").toggle();
	}else{
		$("#subDiv_01").toggle();
	}
}

/*
*Tabcount,pre,currId分别是选项卡的个数,内容前缀,当前的
*例如:tabSwitch(5,'sub_0',1)
*/
function tabSwitch(Tabcount,pre,currId){
	var id=pre+currId;
	document.getElementById(id).style.display="block";
	for(var i=1; i<=Tabcount; i++){
		if(i==currId){
			continue;
		}else{
			document.getElementById(pre+i).style.display="none";
		}
	}
}




/*
	<div onmouseover="javascript:tabSwitch(3,'sub_',1)">Tab1</div>
	<div onmouseover="javascript:tabSwitch(3,'sub_',2)">Tab2</div>
	<div onmouseover="javascript:tabSwitch(3,'sub_',3)">Tab3</div>
	
	
	<div id="sub_1">Tab_sub_1</div>
	<div id="sub_2" style="display:none">Tab_sub_2</div>
	<div id="sub_3" style="display:none">Tab_sub_3</div>
	
*/
