//字符串去掉前后空格
String.prototype.Trim = function(){ 
	return this.replace(/(^\s*)|(\s*$)/g, ""); 
 }
//加入收藏
function addBookmark(title, url) {
	if (window.sidebar) {
		window.sidebar.addPanel(title, url, "");
	} else {
		if (document.all) {
			window.external.AddFavorite(url, title);
		} else {
			if (window.opera && window.print) {
				return true;
			}
		}
	}
}
/*字符串长度，一个汉字相当于2个字符*/
function strLength(str){
	var length = 0;
	for(var i=0;i<str.length;i++){
		if(str.charCodeAt(i)>=0 && str.charCodeAt(i)<=255){
			length = length + 1;
		}else{
			length = length + 2;
		}
	}
	return length;
}
/*根据错误码显示相应的错误信息*/
function errorMessage(error){
	if(error =='10000') showWorngMessages("用户IP不在限定范围之内。");
	else if(error =='20000') showWorngMessages("网卡验证失败，请使用绑定网卡的电脑登录或联络客服。");
	else if(error =='40000') showWorngMessages("网卡地址获取失败，建议使用windows XP操作系统。");
	else if(error =='50001') showWorngMessages("请插入UK。");
	else if(error =='50002') showWorngMessages("UK验证失败，请联络客服。");
	else if(error =='50003') showWorngMessages("UK验证失败，请联络客服。");
	else if(error =='50004') showWorngMessages("UK验证失败，请联络客服。");
	else if(error =='50005') showWorngMessages("UK验证失败，请联络客服。");
	else if(error =='50006') showWorngMessages("UK验证失败，请联络客服。");
	else if(error =='50007') showWorngMessages("请插入UK。");
    else if(error =='50008') showWorngMessages("UK验证失败，请联络客服。");
	else if(error =='50009') showWorngMessages("UK驱动未安装。");
	else if(error =='50010') showWorngMessages("请插入UK。");
	else if(error =='60001') showWorngMessages("帐户已经冻结请联系客服!");
	else showWorngMessages("登录超时，请重试。");
}
/*清楚错误信息内容并隐藏，显示【您好,欢迎登录!】*/
function unWorngMessages(){
	document.getElementById('wrongMessages').innerHTML = "";	
	document.getElementById('wrongMessages').style.display = "none";
}
/*显示错误信息*/
function showWorngMessages(worngMessages){
	var loginFlag = document.getElementById("loginFlag").value;
	document.getElementById("userName").focus();
	if(loginFlag == '1'){
		document.getElementById("workerName").value = "";
	}
	document.getElementById("passWord").value = "";
	document.getElementById("verifyWord").value = "";
	document.getElementById('wrongMessages').style.display = "";	
	document.getElementById('wrongMessages').innerHTML = "<span>" + worngMessages + "</span>";		
	document.getElementById('help').style.display = "";
	document.getElementById('parentDiv').onclick = "";
}
/*画面项目check*/
function checkMyData(user,worker,pass,verify,loginFlag){
	if (user == "") {
		showWorngMessages("您还没有输入账户名。");
		document.getElementById("userName").focus();
		return false;
	}
	if(loginFlag == '2'){
		if(worker == ""){
			showWorngMessages("您还没有输入员工名。");
			document.getElementById("workerName").focus();
			return false;
		}
	}
	if (pass == "") {
		showWorngMessages("您还没有输入密码。");
		document.getElementById("passWord").focus();
		return false;
	}
	if (pass.length < 6) {
		showWorngMessages("密码长度不能小于6个字符。");
		document.getElementById("passWord").focus();
		return false;
	}
	if (strLength(user) > 20) {
		showWorngMessages("账户名长度英文字符不能大于20个；汉字不能大于10个。");
		document.getElementById("userName").focus();
		return false;
	}
	if (worker != "" && strLength(worker) > 20) {
		showWorngMessages("员工名长度英文字符不能大于20个；汉字不能大于10个。");
		document.getElementById("workerName").focus();
		return false;
	}
	var loginFailCount = document.getElementById("loginFailCount").value;
	var showVerifyType = document.getElementById('showVerifyType').value;//验证码标示(1:代理商 2:员工)
	if(loginFailCount != "" && loginFailCount <= 2 && showVerifyType == loginFlag){
		var verify = document.getElementById("verifyWord").value;
		if (verify == "") {
			showWorngMessages("您还没有输入验证码。");
			document.getElementById("verifyWord").focus();
			return false;
		} 
		if (verify.length < 4) {
			showWorngMessages("验证码不能小于4个字符。");
			document.getElementById("verifyWord").focus();
			return false;
		}
	}
	return true;
}
/*【代理商登录】与【员工登录】切换*/
function showTitle(showType){
	unWorngMessages();
	document.getElementById('help').style.display = "none";
	document.getElementById('parentDiv').onclick = function logoClick(){};
	var loginFailCount = document.getElementById('loginFailCount').value;//密码输入错误剩余次数
	var showVerifyType = document.getElementById('showVerifyType').value;//验证码标示 1 代理商 2 员工
	if(showType == '1'){
		document.getElementById('showWorkerName').style.display = "none";
		document.getElementById('_showDealer').className = "tabdis";
		document.getElementById('_showWorker').className = "tabundis";	
		document.getElementById('wrongMessages').style.display = "none";		
		document.getElementById("userName").value = "";
		document.getElementById("workerName").value = "";
		document.getElementById("passWord").value = "";
		document.getElementById("verifyWord").value = "";	
		if(loginFailCount != "" && loginFailCount != undefined){
			if(showVerifyType != "" && showVerifyType != undefined){
				if(loginFailCount <= 2 && showVerifyType == showType){
					document.getElementById("showVerify").style.display = '';
					document.getElementById("webCodeImg").src= "/userinfo/webCode.jhtml?red=250&green=252&blue=255";
				}else{
					document.getElementById("showVerify").style.display = 'none';
					document.getElementById("webCodeImg").src= "";
				}
			}
		}
	}
	if(showType == '2'){
		document.getElementById('showWorkerName').style.display = "";
		document.getElementById('_showDealer').className = "tabundis";
		document.getElementById('_showWorker').className = "tabdis";
		document.getElementById('wrongMessages').style.display = "none";		
		document.getElementById("userName").value = "";
		document.getElementById("workerName").value = "";
		document.getElementById("passWord").value = "";
		document.getElementById("verifyWord").value = "";		
		if(loginFailCount != "" && loginFailCount != undefined){
			if(showVerifyType != "" && showVerifyType != undefined){
				if(loginFailCount <= 2 && showVerifyType == showType){
					document.getElementById("showVerify").style.display = '';
					document.getElementById("webCodeImg").src= "/userinfo/webCode.jhtml?red=250&green=252&blue=255";
				}else{
					document.getElementById("showVerify").style.display = 'none';
					document.getElementById("webCodeImg").src= "";
				}
			}
		}
	}
	document.getElementById("loginFlag").value = showType;
	document.getElementById("userName").focus();
}
/*用户点击【登录】或输入框回车*/
function checkSecurityMode(){
	unWorngMessages();
	var loginFlag = document.getElementById("loginFlag").value;//1:代理商登录 2:员工登录
	var user = document.getElementById("userName").value.Trim();
	document.getElementById("userName").value = user;
	var pass = document.getElementById("passWord").value;
	var verify = document.getElementById("verifyWord").value;
	var worker = "";
	if(loginFlag == '2'){
		worker = document.getElementById("workerName").value.Trim();
		document.getElementById("workerName").value = worker;
	}	
	if (!checkMyData(user,worker,pass,verify,loginFlag)) {//画面项目check
		return;
	}
	var urlvalue="/checkSecurity.jhtml?userName="+user+"&workerName="+worker+"&verifyWord="+verify;
 $.ajax({
            type: "post", 
            url: encodeURI(encodeURI(urlvalue)),
			dataType:'json',
			error:function(){
				showWorngMessages("该账户名不存在，请重新输入。");
				return;
			},
            success:function(data, textStatus){	
            	if(data['verify']=='0004'){
            		showWorngMessages("您输入的验证码有误，请重试。");
            		document.getElementById("passWord").focus();
				  	return false;
            	}            
            	if(data['usbkey']=='0001'){
            		if(worker != ""){
            			showWorngMessages("该员工名不存在，请重新输入。");
            		}else{
            			showWorngMessages("该账户名不存在，请重新输入。");
            		}
				  	return false;
            	}
            	if(data['usbkey']=='0002'){
            		showWorngMessages("账户未审核，请联络拓展人员。");
				  	return false;
            	}
            	if(data['usbkey']=='0003'){
            		showWorngMessages("您的账号已冻结，请联络客服。");
				  	return false;
            	}            	
            	if(data['usbkey']=='E'){
            	  var loginFailCount = data['loginFail'];
            	  if(loginFailCount <= 2){
            	  	document.getElementById("showVerifyType").value = loginFlag;
            	  	document.getElementById("showVerify").style.display = '';
            	  	document.getElementById("webCodeImg").src= "${pageContext.request.contextPath}/userinfo/webCode.jhtml?red=250&green=252&blue=255";
            	  }            	  
            	  document.getElementById("loginFailCount").value = loginFailCount;
            	  if(loginFailCount <= 0){
            	  	showWorngMessages("账号已锁定，请10分钟之后再试。");
            	  }else{	  	
            	  	showWorngMessages("您输入的密码有误，还能重试"+loginFailCount+"次。");       
            	  	document.getElementById("passWord").focus();
            	  }            	  
				  return false;
				}
				if(data['usbkey']=='L'){
				  showWorngMessages("账号已锁定，请10分钟之后再试。");
				  return false;
				}		
				if(data['usbkey']=='F'){
				  showWorngMessages("登录超时，请重试。");
				  return false;
				}				
				if(data['usbkey']!='N'){			
					var ukType = 0;
					try{
						var instance = new AInstance();				  		
						instance.InitResource();//初始化UK全局变量						
						var ret = instance.FindDevice(0,1,'Ed@!J*kl');//查找UK相应设备
						if(ret>=0){							
							ret = instance.open();//打开UK
							if( ret >= 12 )
							{							
								//is_Hex=0表示直接读字符串，is_Hex=1表示读字符的16进制字符串
								var serialNum = instance.getserialnumfuntion(0);
								if(serialNum<0){
									ret = instance.close();
									instance.CloseResource();
									showWorngMessages("UK验证失败(获取序列号失败)，请联络客服。");
									return false;			
								}								
								ret = instance.passwd(1, 'Ed@!J*kl');//获取普通权限								
								var usbkeysn = instance.readfunction(0,0,4,20);//获取usbkeysn								
								//根据序列号查询PIN
								var urlpin="/getUsbkeyPinForLogin.jhtml?usbkeysn="+usbkeysn+"&userName="+user+"&workerName="+worker;
								var flag = false;
								$.ajax({
									type: "post",
						            async:false,
						            cache:false,  
						            url: encodeURI(encodeURI(urlpin)),
									success: function(resPin){
											var usbkeyPin = resPin;											
											ret = instance.passwd(2,usbkeyPin);//获取权限
											if(ret == 0)
											{
												var usbkeysn = instance.readfunction(0,0,4,20);
												var urlvalue1="/getUsbkey.jhtml?SN="+usbkeysn+"&symbol=2&userName="+user;
												$.ajax({
													type: "post",
										            async:false,
										            cache:false,  
										            url: encodeURI(encodeURI(urlvalue1)),
													success: function(res){
														var arry = res.split(",");
														if(arry[0] == -1){
															ret = instance.close();
															instance.CloseResource();
															ukType = 1;
														}
														if(arry[0] == 1){
															var random = arry[1];															
															var degest = instance.hmac( 0 , random , random.length );//硬件计算hmac															
															document.loginForm.symbolUK.value = 2; 
															document.loginForm.sn.value = usbkeysn;
															document.loginForm.hiddenField2.value = degest;
															ret = instance.close();
															instance.CloseResource();
														}
													}
												});
											}else{
												ret = instance.close();
												instance.CloseResource();
												showWorngMessages("UK验证失败(获取权限失败)，请联络客服。");
												flag = true;
												return false;			
											}
										}
									   });							
							}else{
								showWorngMessages("UK验证失败(打开设备失败)，请联络客服。");
								instance.CloseResource();
								return false;
							}
						}else{							
							instance.CloseResource();//未找到新版UK，关闭新版UK
							ukType = 1;
						}
					}catch(e)
				  	{
				  		ukType = 1;
				  	}
				  	if(ukType == 1){				  
						//识别老版UK
						var ePass;
						try{
							ePass = new ActiveXObject("ET99_FULL.ET99Full.1");
						}catch(error){
							 showWorngMessages("UK驱动未安装，<a href='http://dl.19e.cn/pages/helpCenter/http-thread-2-63.html' target='_blank'>如何安装</a>?");
						     return false;
						}
						 var ePassPID = "FFC5EB78";
						 var soPIN="FFC5EB786A2F0D73";	
						 var ePassNum;
						 try{
						     var ePassNum = ePass.FindToken(ePassPID);
						 }catch(error){
						 	 showWorngMessages("请插入UK。");	
						     return false;
						 }
						 if(ePassNum!=1){
						 	showWorngMessages("请插入一个UK。");
							return false;
						 }
						 try{
							ePass.OpenToken(ePassPID,1);
						 }catch(error){
						 	showWorngMessages("UK验证失败(打开设备失败)，请联络客服。");
						   	return false;
						 }
						try{
							ePass.VerifyPIN(1,soPIN);
						}catch(error){
							showWorngMessages("UK验证失败(PIN值错误)，请联络客服。");
					   	    return false;
					   	}
					   	var sn;
					   	try{
						  sn = ePass.Read(0,2,11);
						}catch(error){
							showWorngMessages("UK验证失败(SN获取失败)，请联络客服。");
					   	    return false;
					    }
					   var urlvalue1="/getUsbkey.jhtml?SN="+sn+"&symbol=1&userName="+user;
					   var userKeyRandom = "";
					   var flag = false;
						 $.ajax({
						 	    type: "post",
					            async:false,
					            cache:false,  
					            url: encodeURI(encodeURI(urlvalue1)),
								success:function(data1){
									var oldUkQuerySn = data1.split(",");
									if(oldUkQuerySn[0] == -1){
										showWorngMessages("UK验证失败(插入的UK不正确)，请联络客服。");
										flag = true;
										return false;
									}								
									if(oldUkQuerySn[0] == 2){
										var key=Math.ceil(Math.random()*1000000000)
										 var fkey = ePass.Soft_MD5HMAC(0,"1234",key);
									     ePass.SetKey(1,1,fkey);
									     var urlvalue2="/updateusbkey.jhtml?userName="+user+"&workerName="+worker+"&SN="+sn+"&usbkeyType=2&key="+key;
									     $.ajax({
											url:encodeURI(encodeURI(urlvalue2)),
											type: "POST",
											async:false,
											cache: false,
											success: function(res1){
											}
											});																
									}
									userKeyRandom = oldUkQuerySn[1];
								}
						 });						 
						   var ClientDigest
		                      try{												
								ClientDigest = ePass.MD5HMAC(1,userKeyRandom,12);
							}catch(error){
								showWorngMessages("UK验证失败(获取KEY失败)，请联络客服。");
		    					return false;
							} 
							ePass.CloseToken(); 
							document.loginForm.symbolUK.value = 1; 
							document.loginForm.clientDigest.value = ClientDigest;						         
		                    document.loginForm.sn.value = sn;
				  	}
				}
			    if(data['mac']!='N'){			   
					var macAddress;
					try{
						macAddress=document.getElementById("jxmac").GetMacAdd();
					}catch(error){
						showWorngMessages("请确认安装网卡安全控件 <a href='http://dl.19e.cn/pages/helpCenter/http-thread-2-65.html' target='_blank'>如何安装</a>?");
						return false;
					}						
					if(macAddress == "" || macAddress == null){
						showWorngMessages("网卡地址获取失败，建议使用windows XP操作系统。");
						return false;
					}
					document.loginForm.macAddress.value = macAddress;
				}
				if(flag){
					return;
				}				
				document.loginForm.submit();
			}
		});			
}

function regist(){
	window.open("/eplat/pages/html/regist.jsp");
}
