 Option Explicit
  Const CAPICOMdnld = "http://www.microsoft.com/downloads/release.asp?ReleaseID=39546"
  Const CAPICOM_VERIFY_SIGNATURE_AND_CERTIFICATE = 1
  Const CAPICOM_ENCODE_BASE64 = 0
  Const CAPICOM_ENCODE_BINARY = 1
  Const CAPICOM_LOCAL_MACHINE_STORE = 1
  Const CAPICOM_STORE_OPEN_READ_ONLY = 0
  Const info = "Signature and Certificate verification "
  Dim Signer, SignedData, Certificate
  Dim datatosign, Message, pkcs7message, contWin
  Dim verifyStatus	: verifyStatus = False

Function isCapicomAvailable()
 Dim oStore
 On Error Resume Next
 Set oStore = CreateObject("CAPICOM.Store")
 oStore.Open CAPICOM_LOCAL_MACHINE_STORE, "Root", CAPICOM_STORE_OPEN_READ_ONLY
 If Err.Number <> 0 Then
  isCapicomAvailable = False
  Exit Function
 End If
 isCapicomAvailable = True
 Set oStore = Nothing
 On Error GoTo 0
End Function

Sub m_oPodaniPage_m_oSignIEButton_onclick()
  Call SignAndSend(document.all.m_oPodaniPage_m_oSouhrnPodaniTextbox.value, document.all.m_oPodaniPage_m_oSignedText)
End Sub

Sub m_oPodaniKvopPage_m_oSignIEButton_onclick()
  Call SignAndSend(document.all.m_oPodaniKvopPage_m_oSouhrnPodaniTextbox.value, document.all.m_oPodaniKvopPage_m_oSignedText)
End Sub

Function SignAndSend(DataToSign,textbox)
  If NOT isCapicomAvailable Then
   MsgBox m_sCapicomText & vbCrLf & _
	m_sNainstalujteText & " " & vbCrLf & _
	CAPICOMdnld, vbCritical, m_sWinTitle
   Exit Function
  End If

 If NOT CheckText(DataToSign) Then  'validate data and size limit
  Exit Function
 End If

 Set SignedData = CreateObject("CAPICOM.SignedData")
 SignedData.Content = DataToSign
 
 On Error Resume Next
 'Try to sign data-string with *attached* content and BASE64 endoced pkcs7
 'Message = SignedData.Sign(Nothing, True, CAPICOM_ENCODE_BINARY)
 Message = SignedData.Sign(Nothing, True, CAPICOM_ENCODE_BASE64)

 If Err.Number <> 0 Then

	If(Hex(Err.Number) <> 80880231) Then
  	  MsgBox m_sPodepisovaniErrText & Err.Description & " " & Hex(Err.Number), _
		vbCritical, m_sWinTitle
	Else
	  MsgBox m_sNelzePodepsatErrText, _
		vbCritical, m_sWinTitle
	End If
 Else
	textbox.value = Message
 End If

 Set SignedData = Nothing
 On Error GoTo 0
End Function

