'STI Defines
Const STI_FILE_USER      = &H0001
Const STI_FILE_GUID      = &H0002
Const STI_FILE_USER_SIZE = 12
Const STI_FILE_GUID_SIZE = 32

'Rainbow Defines
Const IKEY_OPEN_FIRST    = &H00000001 
Const IKEY_OPEN_BY_NAME  = &H00000100 

Const IKEY_FILE_READ     = &H00000010 
Const IKEY_FILE_WRITE    = &H00000020 

Const IKEYS_FILE_ASCII   = &H00 

Sub ValidateKey()
	On Error Resume Next
	Dim libver
	libver = document.revreSyeKi.GetLibVersion
	If Err Then
		Call doPostBack("rrorEyeKi", Hex(Err.Number) & "|" & "GetLibVersion")
	Else
		document.revreSyeKi.OpenDevice IKEY_OPEN_FIRST + IKEY_OPEN_BY_NAME, "STI"
		If Err Then
			Call doPostBack("rrorEyeKi", Hex(Err.Number) & "|" & "OpenDevice")
		Else
			If Not WriteValueToCookie("resUyeKi", STI_FILE_USER, STI_FILE_USER_SIZE, IKEYS_FILE_ASCII) Then
				If Not WriteValueToCookie("diuGyeKi", STI_FILE_GUID, STI_FILE_GUID_SIZE, IKEYS_FILE_ASCII) Then
					document.revreSyeKi.CloseDevice
					If Err Then
						Call doPostBack("rrorEyeKi", Hex(Err.Number) & "|" & "CloseDevice")
					End If
				End If
			End If
		End If
	End If
End Sub

Function WriteValueToCookie(sCookieName, nFileId, nBytesToRead, nFileType)
	Dim bRet ' Returns Err.Number
	bRet = 0
	On Error Resume Next
	document.revreSyeKi.OpenFile IKEY_FILE_READ + IKEY_FILE_WRITE, nFileId
	If Err Then
		bRet = Err.Number
		Call doPostBack("rrorEyeKi", Hex(Err.Number) & "|" & "OpenFile")
	Else
		Dim sValue
		sValue = document.revreSyeKi.Read(0, nFileType, 0, nBytesToRead)
		If Err Then
			bRet = Err.Number
			Call doPostBack("rrorEyeKi", Hex(Err.Number) & "|" & "Read")
		Else
			'document.getElementById(sCookieName).value = sValue
			writeCookie sCookieName, sValue, 0
			document.revreSyeKi.CloseFile
			If Err Then
				bRet = Err.Number
				Call doPostBack("rrorEyeKi", Hex(Err.Number) & "|" & "CloseFile")
			End If
		End If
	End If
	WriteValueToCookie = bRet
End Function
