Function Base64Decode(ByVal base64String)
  Const Base64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
  Dim dataLength, sOut, groupBegin

  'remove white spaces, If any
  base64String = Replace(base64String, vbCrLf, "")
  base64String = Replace(base64String, vbTab, "")
  base64String = Replace(base64String, " ", "")

  'The source must consists from groups with Len of 4 chars
  dataLength = Len(base64String)
  If dataLength Mod 4 <> 0 Then
    Err.Raise 1, "Base64Decode", "Bad Base64 string."
    Exit Function
  End If


  ' Now decode each group:
  For groupBegin = 1 To dataLength Step 4
    Dim numDataBytes, CharCounter, thisChar, thisData, nGroup, pOut
    ' Each data group encodes up To 3 actual bytes.
    numDataBytes = 3
    nGroup = 0

    For CharCounter = 0 To 3
      ' Convert each character into 6 bits of data, And add it To
      ' an integer For temporary storage.  If a character is a '=', there
      ' is one fewer data byte.  (There can only be a maximum of 2 '=' In
      ' the whole string.)

      thisChar = Mid(base64String, groupBegin + CharCounter, 1)

      If thisChar = "=" Then
        numDataBytes = numDataBytes - 1
        thisData = 0
      Else
        thisData = InStr(1, Base64, thisChar, vbBinaryCompare) - 1
      End If
      If thisData = -1 Then
        Err.Raise 2, "Base64Decode", "Bad character In Base64 string."
        Exit Function
      End If

      nGroup = 64 * nGroup + thisData
    Next

    'Hex splits the long To 6 groups with 4 bits
    nGroup = Hex(nGroup)

    'Add leading zeros
    nGroup = String(6 - Len(nGroup), "0") & nGroup

    'Convert the 3 byte hex integer (6 chars) To 3 characters
    pOut = Chr(CByte("&H" & Mid(nGroup, 1, 2))) + _
      Chr(CByte("&H" & Mid(nGroup, 3, 2))) + _
      Chr(CByte("&H" & Mid(nGroup, 5, 2)))

    'add numDataBytes characters To out string
    sOut = sOut & Left(pOut, numDataBytes)
  Next

  Base64Decode = sOut
End Function

Function PlayerSDKVersion()
	' Get the DRM Version running on this computer
	PlayerSDKVersion = netobj.GetDRMVersion
End Function 

Function IsPlayerUpgradeRequired()
	Dim DRMVersion
	Dim TmpStr
	Dim pos

	' Get the DRM Version running on this computer
	DRMVersion = netobj.GetDRMVersion

	' See if their DRM is 11 or higher
	pos = InStr(1,DRMVersion,"11.",1)
	if pos <> 1 then
		IsPlayerUpgradeRequired = true
	else
		IsPlayerUpgradeRequired = false
	end if
End Function 


Function SecurityComponentUpgrade()
   majorVersion = 2
   minorVersion = 4

   Dim   TmpInfo
   dim   TmpOffset
   dim   TmpOffset1
   dim   TmpVersion
   dim   TmpStr
   dim   TmpI

   TmpInfo = netobj.GetSystemInfo

   Offset  = InStr (1, TmpInfo, "<MACHINECERTIFICATE>") + LEN ("<MACHINECERTIFICATE>")
   Offset1 = InStr (Offset, TmpInfo, "<")
   TmpMachineCertificate = Mid (TmpInfo,  Offset, (Offset1 - Offset))
   TmpMachineCertificate = Replace(TmpMachineCertificate,"!","+")
   TmpMachineCertificate = Replace(TmpMachineCertificate,"*","/")

   TmpMachineCertificate = Base64Decode(TmpMachineCertificate)

   svOffset = InStr(1, TmpMachineCertificate, "<c:SecurityVersion>") + LEN ("<c:SecurityVersion>")
   svOffset1  = InStr(svOffset, TmpMachineCertificate, "<")
   sv = Mid (TmpMachineCertificate,  svOffset, (svOffset1 - svOffset))
   SecurityComponentUpgrade = sv
End Function

Function IsSecurityComponentUpgradeRequired()
   majorVersion = 2
   minorVersion = 4

   Dim   TmpInfo
   dim   TmpOffset
   dim   TmpOffset1
   dim   TmpVersion
   dim   TmpStr
   dim   TmpI

   TmpInfo = netobj.GetSystemInfo

   Offset  = InStr (1, TmpInfo, "<MACHINECERTIFICATE>") + LEN ("<MACHINECERTIFICATE>")
   Offset1 = InStr (Offset, TmpInfo, "<")
   TmpMachineCertificate = Mid (TmpInfo,  Offset, (Offset1 - Offset))
   TmpMachineCertificate = Replace(TmpMachineCertificate,"!","+")
   TmpMachineCertificate = Replace(TmpMachineCertificate,"*","/")

   TmpMachineCertificate = Base64Decode(TmpMachineCertificate)

   svOffset = InStr(1, TmpMachineCertificate, "<c:SecurityVersion>") + LEN ("<c:SecurityVersion>")
   svOffset1  = InStr(svOffset, TmpMachineCertificate, "<")
   sv = Mid (TmpMachineCertificate,  svOffset, (svOffset1 - svOffset))
   'MsgBox sv
   
   svArray = split(sv, ".", -1, 1)
   tmpInt = CInt(svArray(3))
   majorInt = CInt(svArray(0))
   minorInt = CInt(svArray(1))
   If tmpInt Mod 2 = 1 and majorInt >= majorVersion and minorInt >= minorVersion Then
   	IsSecurityComponentUpgradeRequired = false
   Else
   	IsSecurityComponentUpgradeRequired = true
   	//document.getElementByID(divName).innerHTML = "You must upgrade a security component of Windows Media Player.  <a href=http://drmlicense.one.microsoft.com/Indivsite/en/indivit.asp?force=1 target=_blank>Please click here to upgrade</a>"
   End If
End Function


Function GetUpgradeInformation()
	GetUpgradeInformation = "You must upgrade a security component of Windows Media Player.  <a href=http://drmlicense.one.microsoft.com/Indivsite/en/indivit.asp?force=1 target=_blank>Please click here to upgrade</a>"
End Function

Sub PutUpgradeInformationInDiv(divToUse)
	document.getElementByID(divName).innerHTML = "You must upgrade a security component of Windows Media Player.  <a href=http://drmlicense.one.microsoft.com/Indivsite/en/indivit.asp?force=1 target=_blank>Please click here to upgrade</a>"
End Sub

Function GetUpgradeLink()
	GetUpgradeLink = "http://drmlicense.one.microsoft.com/Indivsite/en/indivit.asp?force=1"
End Function
