//字符串去掉前后空格
String.prototype.Trim = function(){ 
	return this.replace(/(^\s*)|(\s*$)/g, ""); 
 }
 //设为首页
 function SetHome(obj,url)
    {
        try
        {
                obj.style.behavior='url(#default#homepage)';obj.setHomePage(url);
        }
        catch(e){
                if(window.netscape) {
                        try {
                                netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); 
                        } 
                        catch (e) { 
                                alert("此操作被浏览器拒绝！\n请在浏览器地址栏输入“about:config”并回车\n然后将[signed.applets.codebase_principal_support]设置为'true'"); 
                        }
                        var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch);
                        prefs.setCharPref('browser.startup.homepage',url);
                 }
        }
    }
//加入收藏
function addBookmark(title, url) {
	if (window.sidebar) {
		try
  {
		window.sidebar.addPanel(title, url, "");
		} catch (e2){
			alert('加入收藏失败，请您手工加入。')
			}
	} else {
		if (document.all) {
		try
  {
			window.external.AddFavorite(url, title);
			} catch (e1){
			alert('加入收藏失败，请您手工加入。')
			}
		} 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("安全信息验证失败。<a href='/eplat/pages/autoDelMacBind/autoDelMacBinding.jsp'>自助解除网卡绑定？</a>");
	else if(error =='40000') showWorngMessages("获取安全信息失败，请安装新版安全控件。<a href='/eplat/pages/newHelpCenter/security_plugin.html'  target='_blank'>如何安装?</a>");
	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 = "";
}
/* 隐藏错误信息 */
function hiddenWorngmessages(worngMessages){
	if(document.getElementById('wrongMessages').innerHTML=="<span>" + worngMessages + "</span>"){
		document.getElementById('wrongMessages').style.display = "none";	
		document.getElementById('wrongMessages').innerHTML = "";	
	}
}

/*画面项目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("您还没有输入密码。");
		if(document.getElementById("useSafeTool").checked&&document.getElementById("safepasswordObject")){
			document.getElementById("safepasswordObject").focus();
		}else{
			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();
}

 /**
 *功能：获取客户端MAC地址
 *参数:无
 *返回值：客户端机器MAC地址
 */
function macGet(){
  var macAddress="";
     try{
		if(window.ActiveXObject){    				
			var oc = document.getElementById("MacGet");   
			macAddress =  oc.semaphore();//MAC地址使用约定的KEY做DES加密后的结果
			if(macAddress == ""){
		        var Sys = {};
		        var ua = navigator.userAgent.toLowerCase();
		        window.ActiveXObject ? Sys.ie = ua.match(/msie ([\d.]+)/)[1] :
		        document.getBoxObjectFor ? Sys.firefox = ua.match(/firefox\/([\d.]+)/)[1] :
		        window.MessageEvent && !document.getBoxObjectFor ? Sys.chrome = ua.match(/chrome\/([\d.]+)/)[1] :
		        window.opera ? Sys.opera = ua.match(/opera.([\d.]+)/)[1] :
		        window.openDatabase ? Sys.safari = ua.match(/version\/([\d.]+)/)[1] : 0;			        
		        if(Sys.ie=="6.0"){
			        var a = confirm("请升级您的IE版本到更高的版本！");
			        if(a==true){
			            window.open("/eplat/pages/newHelpCenter/IE_update.html");
			        }
		        }
			}											
		}else{
		   alert("很抱歉,获取安全信息失败.您的浏览器禁用ActiveX控件,请使用IE访问19e");	
		}   										  
   }catch(e){
	   alert("很抱歉,获取安全信息失败.ActiveX控件加载错误,请升级您的控件");
   }
   return  macAddress;	
}
/*用户点击【登录】或输入框回车*/
function checkSecurityMode(gongYao,random){
	if(document.getElementById("useSafeTool").checked){
		 var oo = document.loginForm;
 		 oo.safepasswordObject.SetRandomData('01',random);//设置随机数
 		 oo.safepasswordObject.SetPubKey(gongYao);//设置公钥
		 var safepassword = oo.safepasswordObject.GetPassword();//返回密码密文
		 document.getElementById("safepassword").value = safepassword;
	}

	unWorngMessages();
	var loginFlag = document.getElementById("loginFlag").value;//1:代理商登录 2:员工登录
	var user = document.getElementById("userName").value.Trim();
	document.getElementById("userName").value = user;
	if(document.getElementById("useSafeTool").checked){
		var pass = safepassword;
	}else{
		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 macAdd = macGet();
	var urlvalue="/checkSecurity.jhtml?userName="+user+"&workerName="+worker+"&verifyWord="+verify+"&macAdd="+macAdd;
 $.ajax({
            type: "post", 
            url: encodeURI(encodeURI(urlvalue)),
			dataType:'json',
			error:function(){
				showWorngMessages("该账户名不存在，请重新输入。");
				return;
			},
            success:function(data, textStatus){	
            	if(data['verify']=='0004'){
            		showWorngMessages("您输入的验证码有误，请重试。");
            		document.getElementById("verifyWord").focus();
				  	return false;
            	}            
            	if(data['usbkey']=='0001'){
            		if(worker != ""){
            			showWorngMessages("该员工名不存在，请重新输入。");
            			document.getElementById("workerName").focus();
            		}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;
				   	var oldactiveX = document.createElement("object");
			   		oldactiveX.setAttribute("CLASSID", "clsid:0272DA76-96FB-449E-8298-178876E0EA89");
			   		oldactiveX.setAttribute("BORDER","0");
			   		oldactiveX.setAttribute("VSPACE","0");
			   		oldactiveX.setAttribute("HSPACE","0");
			   		oldactiveX.setAttribute("ALIGN","TOP");
			   		oldactiveX.setAttribute("HEIGHT","0");
			   		oldactiveX.setAttribute("WIDTH","0");
//			   		var newactiveX = document.createElement("object");
//			   		newactiveX.setAttribute("CLASSID", "clsid:CECFB72F-E4CA-438B-A6ED-C100572D7036");
//			   		newactiveX.setAttribute("id","LivActiveX");
//			   		newactiveX.setAttribute("type","hidden");
//			   		newactiveX.setAttribute("width","0");
//			   		newactiveX.setAttribute("height","0");
					document.getElementById("forActivx").insertBefore(oldactiveX);	
//					document.getElementById("forActivx").insertBefore(newactiveX);	 

					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 if(data['usbkey'][0]=='New'){
							instance.CloseResource();
							showWorngMessages("请插入新版UK");
							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' && macAdd!=""){
			    	if(data['macWrong']=='N'){
				    	if(data['environmentVar']!=''){
		    	 			var environmentVar = data['environmentVar'];
		    	 			$("#environmentVar").val(environmentVar);
		    	 			var obj = document.getElementById("MacGet");
							var res = obj.scu(environmentVar.toUpperCase(),"1");
							if(res != 0){//写环境变量失败
								//alert("写环境变量失败");
								$("#writeEnv").val('1');
							}else{
								//alert("写环境变量成功");
							}						
				    	 } else{
				    	 	$("#writeEnv").val('1');
				    	 }			    	 
			    	 }
			    	 
					var hardDiskID="";
					if(window.ActiveXObject){    				
						var oc = document.getElementById("MacGet");   
						hardDiskID =  oc.ABCD("",0);										
					}
					$("#hardID").val(hardDiskID);

			    	if(data['randomNum']!=''){
	    	 			var randomNum = data['randomNum'];
	    	 			$("#randomNum").val(randomNum);
	    	 			var type = data['bindType'];
	    	 			var signValue = MacGet.sign(randomNum,type);
	    	 			$("#signValue").val(signValue);
			    	 }
					var macAddress;
					try{
						macAddress=document.getElementById("MacGet").semaphore();
					}catch(error){
						showWorngMessages("请确认安装安全控件 <a href='http://dl.19e.cn/pages/helpCenter/http-thread-2-65.html' target='_blank'>如何安装</a>?");
						return false;
					}						
					if(macAddress == null || macAddress == ""){
						showWorngMessages("安全信息获取失败，建议使用windows XP操作系统。");
						return false;
					}
					document.loginForm.macAddress.value = macAddress;
				}else if(data['mac']!='N'){
					return false;
				}
				if(flag){
					return;
				}				
				document.loginForm.submit();
			}
		});			
}

/**
 * 变换密码使用类型
 * 
 */
function changePwdType(checkBox){
	if(checkBox.checked){
		document.getElementById("safePwd").style.display="block";
		document.getElementById("normalPwd").style.display="none";
		try{
			document.getElementById("safepasswordObject").GetPassword();
		}catch(error){
			showWorngMessages("您没有安装安全控件。");
		}	
	}else{
		document.getElementById("normalPwd").style.display="block";
		document.getElementById("safePwd").style.display="none";
		hiddenWorngmessages("您没有安装安全控件。");		
	}
	document.getElementById("passWord").value="";
}

function regist(){
	window.open("/eplat/pages/html/regist.jsp");
}
function changePasswordBoxBdColor(){
	document.getElementById("safepasswordObject").BdColor = "#838383";
	document.getElementById("safepasswordObject").attachEvent("LogIn",submitData);
}
