	var rc=null;
	var snum=null;
	var pharse=0;

	var username=null;
	var email=null;
	var cer=null;
	var ulen=0;
	var elen=0;
	var ilen=0;

	function usbkey_logout()
	{
 		var strHref = window.document.location.href;
 		var intPos = strHref.indexOf("&");
 		var info = strHref.substr(0,intPos);
		info += "&form=logout";
                window.open(info, "_self");
	}

	function check_key()
	{
		try{
			API.CebcGetCertFromToken();
			errcode = API.ErrCode;
			if(errcode.substring(0,1)!='0')
				return false;
			else
			{
				cer= API.CerBuffer;
				cerlen= API.CerLen;
				username =  API.UserName;
				email 	 =  API.userEmail;
				issuer	 =  API.Issuer;

				for(elen=0; elen<email.length && email.charAt(elen)!='\0'; elen++)
					;
				for(ilen=0; ilen<issuer.length && issuer.charAt(ilen)!='\0'; ilen++)
					;
				for(ulen=0; ulen<username.length && username.charAt(ulen)!='\0'; ulen++)
					;
				return true;
			}
		}
		catch(e){
			return false;
		}
	}

	function nokey_close()
	{
		usbkey_logout();
		self.opener="";
		self.close();
	}

	function usbkey_monitor()
	{
		if(check_key()==false)
		{
			nokey_close();
			return;
		}
		else
		{
			setTimeout("usbkey_monitor()",6000);
			return;
		}
	}

	function usbkey_login()
	{
            	if(document.logon.password.value==""){
			alert("请输入密码！");
			return;
            	}
	     	else
	    	{

			if(check_key()==false)
				document.write("未检测到key");
			else
			{
				var info  = "/cgi-bin/eqwebmail?keycert="; 
					info += encodeURIComponent(cer.substring(0,cerlen*3));
					info += "&Kcerlen=" + cerlen;
					info += "&Kemail=" + encodeURIComponent(email.substring(0,elen));
					info += "&Kissuer=" + encodeURIComponent(issuer.substring(0,ilen));
					info += "&Kuser=" + encodeURIComponent(username.substring(0,ulen));

				pharse=1;
				loadXMLDoc(info);
			}
	    	}
      }

	function check_sign()
	{
            	var keypass = null;
            	keypass = "null";
		var sign;
			keypass=document.logon.password.value;
	                API.KeyPassword=keypass;
                        API.StringBuffer=snum;
                        API.StringBufferLens=snum.length;
                        API.CebcSignMessage();
                        sign=API.SignedData;
                        if (!sign){
                                  alert("用户不存在或者密码错误，请重新输入！");
                                  alert("连续输错密码三次KEY将锁死！");
                                  document.logon.password.value="";
                        }
                        else
                        {
                                  info  = "/cgi-bin/eqwebmail?Ksign=";
                                  info += encodeURIComponent(sign);
                                  info += "&Kemail=" + encodeURIComponent(email.substring(0,elen));
				  pharse=2;
                                  loadXMLDoc(info);
                        }
	}

	var xmlhttp=false;
	function xmlhttpChange()
	{
		if(xmlhttp.readyState==4)
		{
			retdoc = xmlhttp.responseXML;
			try
			{
				rco=retdoc.documentElement.getElementsByTagName("rc")
				if(rco)
				{
					rc=rco[0].childNodes[0].nodeValue;
					snumo=retdoc.documentElement.getElementsByTagName("snum");
					if(snumo)
						snum=snumo[0].childNodes[0].nodeValue;
				}
			}
			catch(e){
				document.logon.password.value="";
				processbar.style.visibility="hidden";
				alert("网络出现连接错误，请检查以后重试！");
				return false;
			}
			if(pharse==1 || pharse==2) processbar.style.visibility="hidden";
			if(rc==0)
			{
				if(pharse==1)
					check_sign();
				else if(pharse==2)	
                               		window.open(decodeURIComponent(snum), "_self");
			}
			else
			{
				if(pharse==1)
				{
					document.logon.password.value="";
					processbar.style.visibility="hidden";
					alert("USBKEY校验失败，请确认USBKEY的正确性");
			 		return false;
				}
				else if(pharse==2)
				{
					document.logon.password.value="";
					processbar.style.visibility="hidden";
					alert("USBKEY校验失败，请确认USBKEY的正确性");
			 		return false;
				}
			}
		}
		else
			processbar.style.visibility="";
	}

        function loadXMLDoc(url)
        {
                var aVersions = [ "MSXML2.XMLHttp.6.0", "MSXML2.XMLHttp.5.0",
                        "MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0",
                        "MSXML2.XMLHttp","Microsoft.XMLHttp"
                        ];

                try{
                        if(window.XMLHttpRequest){
                                xmlhttp = new XMLHttpRequest();
                        }
                        else if(window.ActiveXObject){
                                for (var i = 0; i < aVersions.length; i++) {
                                        try {
                                                xmlhttp = new ActiveXObject(aVersions[i]);
                                                break;
                                        } catch (e) {
						xmlhttp = false;
                                                //Do nothing
                                        }
                                }
                        }
                        if(!xmlhttp)
                        {
                                alert("抱歉，您的浏览器不支持XMLHttp组件");
                                return;
                        }
			xmlhttp.onreadystatechange=xmlhttpChange;
			xmlhttp.open("GET",url,true);
			xmlhttp.send("");
                }
                catch(e)
                {
			document.logon.password.value="";
			processbar.style.visibility="hidden";
			alert("网络出现连接错误，请检查以后重试！");
			return false;
                }
        }
