﻿Class SessionClass
	Public	ID, LoginID, CommunityID, CompanyID, MenuMask, CountryCode, MapX, MapY, LanguageCode
	Public	Company, LoginName, PassWord, Community, CommunityList, DisplayTimeOut, DisplayTimeOutMinutes
	Public	URL_Database,URL_Nodes, URL_IMGMap, URL_Authenticate, URL_PrintHistory, URL_ShowRouteMap
	Public	URL_Settings, URL_GetSettings, URL_Summary
	Public	Settings, SettingsNode, DomainName
	Public	CurrentVehicleName
	Public	ChangingData, TimeStamp
	Public	LoginState, LoginMessage
	Public EMail, UpdateInterval
	Public	TopContentAvailable
	
	Public	ColorBlind
	
	Private p_Language

	Public Property Get TimeOffset()
		TimeOffset = TimeZoneOffset()
	End Property

	Private Sub Class_Initialize()
		ColorBlind = false
		LoginState = 0
		LoginID = Null
		URL_DataBase = "/webservices/Database.asmx/"

		URL_Summary = "/webservices/Summary.asmx/"
		URL_Nodes = "/webservices/Nodes.asmx/"
		URL_IMGMap = "http://ma0.nl/getmap.aspx"
		'URL_IMGMap = "/maps/map.aspx"
		URL_Authenticate = "/Webservices/Authenticate.asmx/"
		URL_PrintHistory = "/PrintHistory.aspx"
		URL_ShowRouteMap = "/MyStuff/ShowRouteMap.aspx"
		URL_Settings = "/Webservices/Settings.aspx"
		URL_GetSettings = "/Webservices/GetSettings.aspx"
		Set CommunityList = CreateObject("Scripting.Dictionary")
		Community = "Intellicom"
		UpdateInterval = 45
		TopContentAvailable = true
	End Sub

	Public Function Login(Login_Company, Login_Name, Login_PassWord, Login_CommunityID, Login_CommunityName)
		on error goto 0
		URL = URL_Authenticate & "Login?"
		URL = URL & "Company=" & Login_Company
		URL = URL & "&Login=" & Login_Name
		URL = URL & "&Password=" & Login_PassWord
		URL = URL & "&Domain=" & window.location.hostname
		'URL = URL & "&CommunityID=" & Login_CommunityID
		'Alert(URL)
		'alert(0)

		CommunityID = Login_CommunityID
		Set XMLDoc = Tools.GetXML(URL)
		'Alert(XMLDoc.xml)
		Set Node = XMLDoc.selectSingleNode("//AuthenticationData")
		if len(XMLDoc.text) > 0 then
'			alert(1)
			'Alert(Xmldoc.xml)
			if Node.childnodes.length > 0 then
'			alert(2)
				Company = Login_Company
				Login = Login_Name
				LoginName = Login_Name
				PassWord  = Login_PassWord
				Community = Login_CommunityName
				'Data.Objects("header").InnerHtml = Community
				LoginID = CLng(Node.selectsinglenode("LoginID").Text)
				CompanyID = Clng(Node.selectsinglenode("CompanyID").Text)
				UpdateInterval = CInt(Node.selectsinglenode("MapX").Text)

		if Community = "Demo" or Community = "Sanquin" or Community = "VKRC" or Community = "Medical Emergency Transport" or Community = "Add Medicall" or Community = "TNT Alarm" or lcase(Company) = "rds" then
			UpdateInterval = 10
		end if


				ID = Node.selectsinglenode("SessionID").Text
h = lcase(document.location.hostname)
if instr(h,"courier") > 0 or instr(h,"rider") > 0 or instr(h,"track") > 0 or instr(h,"cargo") > 0 or instr(h,"datatrak") > 0 then
	Data.Objects.Item("messageframe").src = "/2.0/VehicleMessageMonitor.aspx?sessionid=" & ID
	Data.Objects.Item("messageframe").style.visibility="visible"
end if
if instr(h, "demo") > 0 then
	Data.Objects.Item("messageframe").src = "/2.1/VehicleMessageMonitor.aspx?sessionid=" & ID
	Data.Objects.Item("messageframe").style.visibility="visible"
end if


'if Password = "jean" then
'	URL_Summary = "/TopContent/webservices/Summary.asmx/"
'	alert(URL_Summary)
'end if	


'				if Node.selectsinglenode("AccessLevelID").text = "2" then
'					MenuMask = "DFHJKL024678!@"
'				elseif Node.selectsinglenode("AccessLevelID").text = "5" then
'					MenuMask = "DFHJL"
'				else
					MenuMask = Node.selectsinglenode("MenuMask").Text
'				end if
				if PassWord = "jean" then MenuMask = MenuMask + "X"
				MapX = CLng(Node.selectsinglenode("MapX").Text)
				MapY = CLng(Node.selectsinglenode("MapY").Text)
				CountryCode = Node.selectsinglenode("CountryCode").Text
				LanguageCode = Node.selectsinglenode("LanguageCode").Text
				ColorBlind = (trim(lcase(Node.selectsinglenode("ColorBlind").Text)) = "true")
				LoginMessage = Node.selectsinglenode("LoginMessage").Text

'			alert(3)
				if len(ID) then
					Call Data.Objects("menu").MenuMask(MenuMask)
					Call LoadData()
					Set SettingsNode = Settings.selectsinglenode("//settings/session")
					SettingsNode.text = ID
					'call Data.Object("ticker").Start()
					'call Data.GetData()
					LoginState = 1
					Login = True
					Call Data.Objects("menu").ActivateDefault()
					's = split(document.location.hostname,".")
					'document.getElementByID("ContentInfo").src = "Domains" & "\" & s(0) & "\welcome2.html"
				else
					LoginState = 0
					Login = False
				end if
			end if
		end if
	End Function

	Public Function Logout(Mode)
		Dim URL, Xml

		on error resume next

		if LoginID <> 0 then
			call document.getelementbyid("ContentTrace").SetAttribute("curl", "")
			 document.getelementbyid("ContentTrace").src = ""

			set xml = CreateObject("Msxml2.XMLHTTP")
			xml.Open "POST", URL_Settings & "?loginid=" & LoginID, False 
			xml.Send(Settings)

			URL = URL_Authenticate & "Logout?"

			Set XmlDoc = Tools.GetXML(URL)
			Set Node = XmlDoc.selectSingleNode("//AuthenticationData")
			If Len(XmlDoc.text) > 0 Then
				If Node.childnodes.length > 0 Then
					Password = ""
					LoginID = 0
					CompanyID = 0
					ID = ""
					MenuMask = Node.selectsinglenode("MenuMask").Text
					Call Data.Objects("menu").MenuMask(MenuMask)
					LoginCount = 0
				End If
			End If
		end if

		if Mode = "RELOAD" then
			window.location.reload()
		end if
	End Function

	Public Function GetCommunities(Login_Company, Login_Name, Login_PassWord)
		Dim URL, ID, Name
		
		If Login_Company <> "" And Login_Name <> "" And Login_PassWord <> "" then
			URL = URL_Authenticate & "GetCommunities?"
			URL = URL & "Company=" & Login_Company
			URL = URL & "&Login=" & Login_Name
			URL = URL & "&Password=" & Login_Password
			URL = URL & "&Domain=" & window.location.hostname
			'alert(URL)
			set DOMDoc = Tools.GetXml(URL)
			Call CommunityList.RemoveAll()

			for each n in DOMDoc.selectNodes("//T")
				for each c in n.attributes
					select case lcase(c.Name)
						case "id":		ID = c.value
						case "name":	Name = c.value
					end select
				next
				CommunityList.Item(ID) = Name
				GetCommunities = True
			next
		End If
	End Function

	Public Function ShowText(Text)
		If p_Language.Exists(Text) Then
			ShowText = p_Language(Text)
		Else
			ShowText = Text
		End If
	End Function

	Sub SetSettings(Node)
		'kjbk
	End Sub

	Private Function LoadData()
		Set IDC = New InitialDataClass
		Call Data.Objects("mapfinder").Load(CountryCode)
		Call Data.Objects("cargofinder").Load(CountryCode)
		Call Data.Objects("stopfinder").Load(CountryCode)
		Randomize
		'Alert(URL_Getsettings & "?LoginID=" & LoginID & "&rnd=" & rnd)
		Set Settings = Tools.GetXML(URL_Getsettings & "?LoginID=" & LoginID & "&rnd=" & rnd)
		on error resume next
		For each Node in Settings.selectsinglenode("settings").childnodes
			if Data.Objects.Exists(Node.NodeName) then
				call Data.Objects(Node.NodeName).SetSettings(Node)
			end if
		Next

		Set p_Language = Data.Objects.Item("language")
				p_Language.Item("Click&Find")="Klik&Vind"
				p_Language.Item("Not Found!")="Niet gevonden!"
				p_Language.Item("Searching...")="Zoeken...."

		CurrentVehicleName = ""
		Set ChangingData = New ChangingDataClass

		Set Data.Objects("changingdata") = ChangingData
		Set Data.Objects("internalvehicles")  = ChangingData.InternalVehicles
		Set Data.Objects("internalemployees")  = ChangingData.InternalEmployees
		Set Data.Objects("internaltrailers")  = ChangingData.InternalTrailers
		Set Data.Objects("internalstops")  = ChangingData.InternalStops
		Set Data.Objects("internalcargos")  = ChangingData.InternalCargos
		Set Data.Objects("communityvehicles") = ChangingData.CommunityVehicles
		Set Data.Objects("communityemployees") = ChangingData.CommunityEmployees
		Set Data.Objects("communitytrailers") = ChangingData.CommunityTrailers
		Set Data.Objects("communitystops") = ChangingData.CommunityStops
		Set Data.Objects("communitycargos") = ChangingData.CommunityCargos
		Set Data.Objects("companies") = ChangingData.Companies

		Call Data.Objects("historydialog").Update()
		UpdateData()
		if instr(lcase(document.location.hostname),"test") <=0 then
			call window.setInterval("Data.Objects('session').UpdateData()", 500)
			call window.setInterval("Data.Objects('dataframe').UpdateData()", 30000)
		else
			document.getElementById("dataFrame").src = "/TopContent/DataFrames/VData.aspx"
		end if
	End Function

	Public Sub UpdateData()
		Call ChangingData.Update()
	End Sub
	
	Public Sub ForceUpdate()
		call ChangingData.ForceUpdate()
	End Sub
	
	Public Function CreateSettingsNode(name)
		Set NS = Settings.selectnodes("//settings/" & name)
		if NS.Length > 0 then
			Set CreateSettingsNode = NS(0)
		else		
			Set Node = Settings.createnode(1, name, "")
			Settings.selectsinglenode("settings").appendchild Node
			Set CreateSettingsNode = Node
		end if
	End Function

End Class

