<!--
var CAPICOM_STORE_OPEN_READ_ONLY = 0;
    var CAPICOM_CURRENT_USER_STORE = 2;
    var CAPICOM_CERTIFICATE_FIND_SHA1_HASH = 0;
    var CAPICOM_CERTIFICATE_FIND_EXTENDED_PROPERTY = 6;
    var CAPICOM_CERTIFICATE_FIND_TIME_VALID = 9;
    var CAPICOM_CERTIFICATE_FIND_KEY_USAGE = 12;
    var CAPICOM_DIGITAL_SIGNATURE_KEY_USAGE = 0x00000080;
    var CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME = 0;
    var CAPICOM_INFO_SUBJECT_SIMPLE_NAME =0;
	var CAPICOM_INFO_MAIL_SIMPLE_NAME =2;
    var CAPICOM_ENCODE_BASE64 = 0;
    var CAPICOM_E_CANCELLED = -2138568446;
    var CERT_KEY_SPEC_PROP_ID = 6;

 function changePass() {
	open('http://192.168.1.113/davedap/');
 }
 
 function msg(name)
		 {
		 var na=name
		 
			 alert(na.viewSigndata.value);
			 alert ("sfgdfsh");
			 alert (na);
			 }
	function msgb(tx,temp)
	{
	alert (temp);
	document.composeForm.author.value ="dhgh";
	alert (tx);
	}
	function msgbox(temp)
	 {
	 	//alert (temp);
		msgb(0,temp);
		//init(0,temp);
	 	//alert(mahoa1);
		//alert(mahoa2);
	 	//retursfn ;
	 }
	 function btnVerifySig_OnClick_GET(name)
		{
		//alert(name.viewSigndata.value);
			// CAPICOM Constants");
			CAPICOM_VERIFY_SIGNATURE_ONLY = 0;
			CAPICOM_VERIFY_SIGNATURE_AND_CERTIFICATE = 1;
			// instantiate the CAPICOM objects");
			var SignedData = new ActiveXObject('CAPICOM.SignedData');
			try
				{
				SignedData.Content='I owe you $1';
		// 		SignedData.Verify(txtSignature.value, true, CAPICOM_VERIFY_SIGNATURE_AND_CERTIFICATE);");
				SignedData.Verify(name.viewSigndata.value,true, CAPICOM_VERIFY_SIGNATURE_AND_CERTIFICATE);
				}
			catch (e)
				{
				alert("không có thông tin chứng thực người gửi");
		//		alert(e.description);
		return ;
				}
		 //		alert('Signature Verified! Number of Signers: ' + SignedData.Signers.Item(SignedData.Signers.Count).Certificate.GetInfo());
		 	//	alert(SignedData.Signers.Item(SignedData.Signers.Count));
				//alert(SignedData.Signers.Count);
	//tot alert(SignedData.Signers.Item(1).Certificate.GetInfo(2));
//				for (i = ; i <= 7; i++)
//					{
				//alert(i +"," + SignedData.Signers.Item(1).Certificate.GetInfo(i));
//					}
//				alert(SignedData.Signers.Item(1).Certificate.GetInfo(0));
				
			//	alert(SignedData.Signers.Item(1).Certificates.IssuerName);
		 		//alert('Signature Verified! Number of Signers: ' + SignedData.Signers.Item(1).Signer.Certificate.IssuerName);
		 	Certificate 	= SignedData.Signers.Item(1).Certificate;
			//alert(Certificate.Item(1).GetInfo(1));
			Certificate.Display();
		 	//alert('Thông tin tác giả: ' + Certificate.SubjectName);

		}
  
	 
				 
 function submited(NameFrom)
 




 			
 		{
		if (NameFrom.author.value=="")
			{
			alert("Chưa nhập tên tác giả")
			}
		else if (NameFrom.SignData.value=="")
			{
			alert("Không có chứng thực trên hệ thống ! Bạn hãy cài đặt chứng thực của bạn lên hệ thống :")
			}
		else if (NameFrom.email.value=="")
			{
			alert("Chưa  nhập Email")
			}
		else if (NameFrom.messagesubject.value=="")
			{
			alert("Chưa nhập tiêu đề bài viết")
			}
		else if (NameFrom.messagetext.value=="")
			{
			alert("Chưa nhập nội dung bài viết")
			}
		else
			{
			NameFrom.submit();
			}
		}
 
   function IsCAPICOMInstalled()
   {
	if(typeof(oCAPICOM) == "object")
	{
		if( (oCAPICOM.object != null) )
     		{
      			// We found CAPICOM!
     			return true;
     		}
    	}
   }
function CutStirng(string)
	{
//	alert (string);
	if (string=="null")
	{
	
	return string; 
	}
	var Store;
	Store="";
	var loai;
	
	
		//alert(string.length)
		//string="hd j(tin)";
		len =string.indexOf("(");

/*		if (len==0)
		{
		return ;
		}
*/		if(len<0)
		{
		Store=string;
		}
		else
		{
		for (i=0;i <= len-1;i++)
		{
		Current = string.substr(i,1);
		//alert (Current);
		if(Current == " ") 
			{
		//	loai=loai+Current;
		//		alert =string.substr(i,);
        	}
			else
			{
			Store=Store+Current;
			}
  
//		Store=Store+Current;
		
		}
		}
		//alert (Store); 
		return Store;
			//	ra=Store;
			//	alert(Store);
			//	alert(ra);
	}
	
   function init(kt,gt)
   {
//   document.composeForm.signed.focus()

	   // Filter the certificates to only those that are good for my purpose
	   var FilteredCertificates = FilterCertificates();
		//alert (gt);
		//alert (kt);
		if (document.composeForm.signed.checked)
		{
//		   alert ("kem tra ");
		

	   // if only one certificate was found then lets show that as the selected certificate
	   if (FilteredCertificates.Count == 1)
	   	
	   {
	   
	   	if (kt==1)
			{
			 
			name =" &lt; "+FilteredCertificates.Item(1).GetInfo(CAPICOM_INFO_MAIL_SIMPLE_NAME)+"&gt;";
			//name =name+" "+ FilteredCertificates.Item(1).Thumbprint ;
			result=name;
			//alert(result);
			//alert ("kt1");
			return result	
				
				
			}
			else
			{   
			//alert ("kt0");
			//gt="";
			//var x=document.forms[0].identity
		//	gt=document.composeForm.logmail.value;
			//alert (gt);
	//		alert ( CutStirng(gt));	
			 email=FilteredCertificates.Item(1).GetInfo(CAPICOM_INFO_MAIL_SIMPLE_NAME);
			// alert (email);
			 //email="ducth@research.com.vn"
//cat xau khi gap ky tu "(" ke qua duoc tra ve CutStirng
//alert("kt");
//alert(gt);
//alert("ducth");
var out
 	gt=CutStirng(gt);
//	alert(out);
	//gt=out;
	
//	alert(gt);
//	alert(email);
			//gt="ducth@research.com.vn"
				if (gt==email)
				
			{
			//alert ("kt2");
				
				document.composeForm.author.value = FilteredCertificates.Item(1).GetInfo(CAPICOM_INFO_SUBJECT_SIMPLE_NAME);
				document.composeForm.author.hash = FilteredCertificates.Item(1).Thumbprint;
				document.composeForm.author.readOnly=true;
				document.composeForm.email.value=FilteredCertificates.Item(1).GetInfo(CAPICOM_INFO_MAIL_SIMPLE_NAME); 
				document.composeForm.email.hash = FilteredCertificates.Item(1).Thumbprint;
			   	document.composeForm.email.readOnly=true;
				btnSignedData_OnClick();
			}
			else
			{
				alert ("Địa chỉ email trong chứng thực không đúng với địa chỉ mail đăng nhập vào hệ thống nên thông tin người gửi không trong chứng thực không được chấp nhận");			
				document.composeForm.signed.checked =false;
			}
			}

	   }
	   else
	   {
	   	  alert("Không có chứng thực trên hệ thống ! Bạn hãy cài đặt chứng thực của bạn lên hệ thống :");
		  document.composeForm.signed.checked =false;
		document.composeForm.author.value = "";
		document.composeForm.author.hash = "";
		document.composeForm.email.value = "";
			document.composeForm.email.hash = "";
	   }
	   }
		else
		{
			//alert ("kiem tra loai bo");
			document.composeForm.author.value = "";
			document.composeForm.author.hash = "";
			document.composeForm.email.value = "";
			document.composeForm.email.hash = "";
			document.composeForm.SignData.value="";
			gt="null";
			CutStirng(gt);
			//CutStirng();
		}

	   // clean up	
	   FilteredCertificates = null;
   }
   function FilterCertificates()
   {
	   // instantiate the CAPICOM objects
	   var MyStore = new ActiveXObject("CAPICOM.Store");
	   var FilteredCertificates = new ActiveXObject("CAPICOM.Certificates");

	   // open the current users personal certificate store
	   try
	   {
	 //   CAPICOM_STORE_OPEN_READ_WRITE = 1, 
	 //CAPICOM_STORE_OPEN_READ_ONLY
	   	MyStore.Open(CAPICOM_CURRENT_USER_STORE, "My",CAPICOM_STORE_OPEN_READ_ONLY );
		// CAPICOM_OTHER_STORE
		// MyStore.Open(CAPICOM_OTHER_STORE, "My", CAPICOM_STORE_OPEN_READ_ONLY);
	   }
	   catch (e)
	   {
		if (e.number != CAPICOM_E_CANCELLED)
		{
	   		alert("An error occurred while opening your personal certificate store, aborting");
			return false;
		}
	   }

	   // find all of the certificates that:
	   //   * Are good for signing data
	   //	* Have PrivateKeys associated with then - Note how this is being done :)
	   //   * Are they time valid
	//   var CAPICOM_CERTIFICATE_FIND_KEY_USAGE = 12;
	 //  	   CAPICOM_CERTIFICATE_FIND_TIME_VALID = 9;
	//	   var CERT_KEY_SPEC_PROP_ID = 6;
	 //  CAPICOM_DIGITAL_SIGNATURE_KEY_USAGE = 0x00000080;
	   var FilteredCertificates = MyStore.Certificates.Find(CAPICOM_CERTIFICATE_FIND_KEY_USAGE,CAPICOM_DIGITAL_SIGNATURE_KEY_USAGE).Find(CAPICOM_CERTIFICATE_FIND_TIME_VALID).Find(CAPICOM_CERTIFICATE_FIND_EXTENDED_PROPERTY,CERT_KEY_SPEC_PROP_ID);
	   return FilteredCertificates;

	   // Clean Up
	   MyStore = null;
	   FilteredCertificates = null;
  }


function FindCertificateByHash(szThumbprint)
   {
	   // instantiate the CAPICOM objects
	   var MyStore = new ActiveXObject("CAPICOM.Store");

	   // open the current users personal certificate store
	   try
	   {
	   	MyStore.Open(2, "My", 0);
	   }
	   catch (e)
	   {
		if (e.number != CAPICOM_E_CANCELLED)
		{
	   		alert("An error occurred while opening your personal certificate store, aborting");
			return false;
		}
	   }

	   // find all of the certificates that have the specified hash
	   var FilteredCertificates = MyStore.Certificates.Find(CAPICOM_CERTIFICATE_FIND_SHA1_HASH, szThumbprint);
	   
	   
	   return FilteredCertificates.Item(1);
		
	   // Clean Up
	   MyStore = null;
	   FilteredCertificates = null;
  }

function bienra(bien)
{

 var bienra =bien;
 	//alert(bienra);
	   return bienra;

}
function btnVerifySig_OnClick()
		{
		
			// CAPICOM Constants");
			CAPICOM_VERIFY_SIGNATURE_ONLY = 0;
			CAPICOM_VERIFY_SIGNATURE_AND_CERTIFICATE = 1;
			// instantiate the CAPICOM objects");
			var SignedData = new ActiveXObject('CAPICOM.SignedData');
			try
				{
				SignedData.Content='I owe you $1';
		// 		SignedData.Verify(txtSignature.value, true, CAPICOM_VERIFY_SIGNATURE_AND_CERTIFICATE);");
				SignedData.Verify(document.composeForm.SignData.value, true, CAPICOM_VERIFY_SIGNATURE_ONLY);
				}
			catch (e)
				{
				alert(e.description);
				return false;
				}
		// 		alert('Signature Verified! Number of Signers: ' + SignedData.Signers.Item(SignedData.Signers.Count).Certificate.GetInfo());");
		// 		SignedData.Signers.Item(SignedData.Signers.Count);");
		// 		alert('Signature Verified! Number of Signers: ' + SignedData.Signers.Item(1).Signer.Certificate.IssuerName);");
		 	Certificate 	= SignedData.Signers.Item(1).Certificate;
		 	alert('Signature Verified! Number of Signers: ' + Certificate.SubjectName);

		}
  
  function btnSignedData_OnClick()
  {
   // instantiate the CAPICOM objects
	   var SignedData 		= new ActiveXObject("CAPICOM.SignedData");
	   var Signer 			= new ActiveXObject("CAPICOM.Signer");
	   var TimeAttribute 	= new ActiveXObject("CAPICOM.Attribute");

		// only do this if the user selected a certificate
	   if (document.composeForm.author.hash != "")
	   {	   
		// Set the datforma that we want tign
		SignedData.Content = document.composeForm.Sign.value;
	
		try
		{
				// Set the Certificate we would like to sign with
	
			//alert(document.forms[0].txtCertificate.value);
		   	Signer.Certificate = FindCertificateByHash(document.composeForm.author.hash);
	
		   	// Set the time in which we are applying the signature
			var Today = new Date();
			TimeAttribute.Name = 0;
///			alert(TimeAttribute.Name);
					TimeAttribute.Value = Today.getVarDate();
	//					alert(FindCertificateByHash(document.forms[0].author.hash));
			Today = null;
		   	Signer.AuthenticatedAttributes.Add(TimeAttribute);
			
		   	// Do the Sign operation
			
			
			var szSignature = SignedData.Sign(Signer, true, 0);
		//	alert(szSignature);
			//var btnSignedData_OnClick=szSignature;
			//return btnSignedData_OnClick
			
			document.composeForm.SignData.value =szSignature;
			 
			//document.writeln("<textarea cols='65' rows='25' name='txtSignature' id='txtSignature'\>");
	 		//winSigVerify.document.writeln("----- BEGIN PKCS7-----");
			// 	document.write(szSignature);
	 			//winSigVerify.document.writeln("----- END PKCS7 -----");
			// 	document.writeln("</textarea\>");
		//alert(szSignature);
		//document.forms[0].author.hash = 
			
				bienra(szSignature);
			bienra(szSignature);
		
		}
		catch (e)
		{
			if (e.number != -2138568446)
			{
				alert("An error occurred when attempting to sign the content, the errot was: " + e.description);
				return false;
			}
		}

	
	   }
	   else
	   {
		alert("No Certificate has been selected.");
	   }
}


function openHelp()
{
	window.open("themes/nvecom/help.htm","my_new_window","toolbar=yes,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,copyhistory=yes,width=700,height=400,left=12,top=0")
}

function openHelpV(fStr)
{
	window.open(fStr,"my_new_window","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no,copyhistory=yes,width=400,height=400")
}

	function mOvr(src,clrOver) {
		if (!src.contains(event.fromElement)) {
			src.style.cursor = 'hand';
			src.bgColor = clrOver;
		}
	}
	function mOut(src,clrIn) {
		if (!src.contains(event.toElement)) {
			src.style.cursor = 'default';
			src.bgColor = clrIn;
		}
	}
	function mClk(src) {
		if(event.srcElement.tagName=='TD'){
			src.children.tags('A')[0].click();
		}
	}

var rate = 20;
var obj;
var act = 0;
var elmH = 0;
var elmS = 128;
var elmV = 255;
var clrOrg;
var TimerID;

if (navigator.appName.indexOf("Microsoft",0) != -1 && parseInt(navigator.appVersion) >= 4) {
    Browser = true;
} else {
    Browser = false;
}

if (Browser) {
    document.onmouseover = doRainbowAnchor;
    document.onmouseout = stopRainbowAnchor;
}

function doRainbow()
{
    if (Browser && act != 1) {
        act = 1;
        obj = event.srcElement;
        clrOrg = obj.style.color;
        TimerID = setInterval("ChangeColor()",100);
    }
}

function stopRainbow()
{
    if (Browser && act != 0) {
        obj.style.color = clrOrg;
        clearInterval(TimerID);
        act = 0;
    }
}

function doRainbowAnchor()
{
    if (Browser && act != 1) {
        obj = event.srcElement;

        while (obj.tagName != 'A' && obj.tagName != 'BODY') {
            obj = obj.parentElement;
            if (obj.tagName == 'A' || obj.tagName == 'BODY')
                break;
        }

        if (obj.tagName == 'A' && obj.href != '') {
            act = 1;
            clrOrg = obj.style.color;
            TimerID = setInterval("ChangeColor()",100);
        }
    }
}

function stopRainbowAnchor()
{
    if (Browser && act != 0) {
        if (obj.tagName == 'A') {
            obj.style.color = clrOrg;
            clearInterval(TimerID);
            act = 0;
        }
    }
}

function ChangeColor()
{
    obj.style.color = makeColor();
}

function makeColor()
{

	if (elmS == 0) {
        elmR = elmV;    elmG = elmV;    elmB = elmV;
    }
    else {
        t1 = elmV;
        t2 = (255 - elmS) * elmV / 255;
        t3 = elmH % 60;
        t3 = (t1 - t2) * t3 / 60;

        if (elmH < 60) {
            elmR = t1;  elmB = t2;  elmG = t2 + t3;
        }
        else if (elmH < 120) {
            elmG = t1;  elmB = t2;  elmR = t1 - t3;
        }
        else if (elmH < 180) {
            elmG = t1;  elmR = t2;  elmB = t2 + t3;
        }
        else if (elmH < 240) {
            elmB = t1;  elmR = t2;  elmG = t1 - t3;
        }
        else if (elmH < 300) {
            elmB = t1;  elmG = t2;  elmR = t2 + t3;
        }
        else if (elmH < 360) {
            elmR = t1;  elmG = t2;  elmB = t1 - t3;
        }
        else {
            elmR = 0;   elmG = 0;   elmB = 0;
        }
    }

    elmR = Math.floor(elmR);
    elmG = Math.floor(elmG);
    elmB = Math.floor(elmB);

    clrRGB = '#' + elmR.toString(16) + elmG.toString(16) + elmB.toString(16);

    elmH = elmH + rate;
    if (elmH >= 360)
        elmH = 0;

    return clrRGB;
}
// -->	