<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:Locale="urn:Locale-namespace">
	<msxsl:script language="VBScript" implements-prefix="Locale">


		' ***********************************************************************************************************************
		' ErrorMessage
		' Append a debug message to a text file
		' ***********************************************************************************************************************
		Function ErrorMessage(s)
			Set fs = CreateObject("Scripting.FileSystemObject")
			Set file = fs.OpenTextFile("c:\printdebug.txt",8)
			file.WriteLine(s)
		End Function

		' ***********************************************************************************************************************
		' IsEmpower
		' Determine whether Empower is installed on the workstation
		' ***********************************************************************************************************************
		Function IsEmpower()

			On Error Resume Next

			Set WshShell = CreateObject("WScript.Shell") ' "Set" keyword is necessary, but may not be debuggable with vs2005 

			Dim keyname
			keyname = "HKLM\Software\Waters\Empower\BinDirectory"
		
			Dim binDirectory
			binDirectory = WshShell.RegRead(keyname)
			If Err.Number > 0 Then
				IsEmpower = "0"
			Else
				If Len(binDirectory) = 0 Then
					IsEmpower = "0"
				Else
					IsEmpower = "1"
				End If
			End If
			
			On Error Goto 0 ' (Re-enable error trapping)
			Set WshShell = nothing
		End Function
		
		' ***********************************************************************************************************************
		' PressureUnits
		' Fetch the configured pressure units label
		' ***********************************************************************************************************************
		Function PressureUnits()

			On Error Resume Next

			Set WshShell = CreateObject("WScript.Shell") ' "Set" keyword is necessary, but may not be debuggable with vs2005 

			Dim keyname
			keyname = "HKLM\Software\Waters\Instruments\Locale\Pressure\"
			
			PressureUnits = WshShell.RegRead(keyname)
			If Err.Number > 0 Then
				PressureUnits = "psi"
			End If
			
			On Error Goto 0 ' (Re-enable error trapping)
			Set WshShell = nothing
		End Function
		
		' ***********************************************************************************************************************
		' PressureUnitsConversion
		' Fetch the conversion factor required to translate native units (psi) to custom units (e.g. bar)
		' ***********************************************************************************************************************
		Function PressureUnitsConversion()

			On Error Resume Next

			Set WshShell = CreateObject("WScript.Shell") ' "Set" keyword is necessary, but may not be debuggable with vs2005 

			Dim keyname
			keyname = "HKLM\Software\Waters\Instruments\Locale\Pressure\Factor"
			
			PressureUnitsConversion = WshShell.RegRead(keyname)
			If Err.Number > 0 Then
				PressureUnitsConversion = 1.0
			End If
			
			On Error Goto 0 ' (Re-enable error trapping)
			Set WshShell = nothing
		End Function
		
		' ***********************************************************************************************************************
		' PressureUnitsType
		' Fetch the data type for presentation of the custom units
		' ***********************************************************************************************************************
		Function PressureUnitsType()

			On Error Resume Next

			Set WshShell = CreateObject("WScript.Shell") ' "Set" keyword is necessary, but may not be debuggable with vs2005 

			Dim keyname
			keyname = "HKLM\Software\Waters\Instruments\Locale\Pressure\Type"
			
			PressureUnitsType = WshShell.RegRead(keyname)
			If Err.Number > 0 Then
				PressureUnitsType = "float"
			End If
			
			On Error Goto 0 ' (Re-enable error trapping)
			Set WshShell = nothing
		End Function

		' ***********************************************************************************************************************
		' PressureUnitsPrecision
		' Fetch the data precision for presentation of the custom units
		' ***********************************************************************************************************************
		Function PressureUnitsPrecision()

			On Error Resume Next

			Set WshShell = CreateObject("WScript.Shell") ' "Set" keyword is necessary, but may not be debuggable with vs2005 

			Dim keyname
			keyname = "HKLM\Software\Waters\Instruments\Locale\Pressure\Precision"
			
			PressureUnitsPrecision = WshShell.RegRead(keyname)
			If Err.Number > 0 Then
				PressureUnitsPrecision = 0
			End If
			
			On Error Goto 0 ' (Re-enable error trapping)
			Set WshShell = nothing
		End Function
		
		' ***********************************************************************************************************************
		' DecimalSymbol
		' Fetch the current user's configured decimal symbol (i.e. period for US, comma for Germany)
		' ***********************************************************************************************************************
		Function DecimalSymbol()

			On Error Resume Next

			Set WshShell = CreateObject("WScript.Shell") ' "Set" keyword is necessary, but may not be debuggable with vs2005 

			Dim keyname
			keyname = "HKCU\Control Panel\International\sDecimal"
			
			DecimalSymbol = WshShell.RegRead(keyname)
			If Err.Number > 0 Then
				DecimalSymbol = "."
			End If
      
			'If DecimalSymbol = "." Then
			'	DecimalSymbol = "\."
			'End If
			
			On Error Goto 0 ' (Re-enable error trapping)
			Set WshShell = nothing
		End Function
		
		' ***********************************************************************************************************************
		' LocalLanguage
		' Fetch the software local language
		' ***********************************************************************************************************************
		Function LocalLanguage()
		
			On Error Resume Next
		
			Dim VersionSuffix
			Dim EmpowerVersion
			Dim keyname
			Dim length
			Dim SuffixPosition
			Dim Suffix
			
			LocalLanguage = "ENU"
			
			If IsEmpower() Then
				
				Set WshShell = CreateObject("WScript.Shell") ' "Set" keyword is necessary, but may not be debuggable with vs2005 

				keyname = "HKLM\Software\Waters\Empower\SetupVersion"
				
				EmpowerSetupVersion = WshShell.RegRead(keyname)
				
				If Err.Number = 0 Then

					length = Len(EmpowerVersion)
					SuffixPosition = InStr(1,EmpowerSetupVersion,"-",1)

					If (SuffixPosition > 1) Then
						Suffix = Mid(EmpowerSetupVersion,SuffixPosition+1)
						If Suffix = "J" Then
							LocalLanguage = "JPN"
						ElseIf Suffix = "C" Then
							LocalLanguage = "CHI"
						ElseIf Suffix = "K" Then
							LocalLanguage = "KOR"
						ElseIf Suffix = "X" Then
							LocalLanguage = "PSE"
						End If
					End If
				End If
				
				Set WshShell = nothing
			End If
			
			On Error Goto 0 ' (Re-enable error trapping)
		End Function
		
		' ***********************************************************************************************************************
		' LanguageSubfolder
		' Fetch the language subfolder for the local language
		' ***********************************************************************************************************************
		Function LanguageSubfolder()
		
			On Error Resume Next
		
			Dim VersionSuffix
			Dim EmpowerVersion
			Dim keyname
			Dim length
			Dim SuffixPosition
			Dim Suffix
			
			LanguageSubfolder = "en"
			
			If IsEmpower() Then
				
				Set WshShell = CreateObject("WScript.Shell") ' "Set" keyword is necessary, but may not be debuggable with vs2005 

				keyname = "HKLM\Software\Waters\Empower\SetupVersion"
				
				EmpowerSetupVersion = WshShell.RegRead(keyname)
				
				If Err.Number = 0 Then

					length = Len(EmpowerVersion)
					SuffixPosition = InStr(1,EmpowerSetupVersion,"-",1)

					If (SuffixPosition > 1) Then
						Suffix = Mid(EmpowerSetupVersion,SuffixPosition+1)
						If Suffix = "J" Then
							LanguageSubfolder = "ja"
						ElseIf Suffix = "C" Then
							LanguageSubfolder = "zh-CHS"
						ElseIf Suffix = "K" Then
							LanguageSubfolder = "ko"
						ElseIf Suffix = "X" Then
							LanguageSubfolder = "en-US"
						End If
					End If
				End If
				
				Set WshShell = nothing
			End If
			
			On Error Goto 0 ' (Re-enable error trapping)
		End Function
		
	</msxsl:script>
</xsl:stylesheet>
