﻿	var TrafficNa2HintCnt = 0;

	HideTrafficNa2Hint = function (pEvent)
	{{		
		var div = GetBlock("idTrafficNa2Hint");
		if ((div != null) && (div != undefined))
		{{
			div.style.display = "none";
		}}
	}}
	
	HideTrafficNa2HintTO = function (pEvent)
	{{
		TrafficNa2HintCnt--;
		var div = GetBlock("idTrafficNa2Hint");
		if ((div != null) && (div != undefined) && (TrafficNa2HintCnt == 0))
		{{
			div.style.display = "none";
		}}
	}}

	OnMouseOut_TMC2_cbx = function (pEvent)
	{{				
		var div = GetBlock("idTrafficNa2Hint");
		if ((div != null) && (div != undefined))
		{{
			if (div.style.display == "")
				window.setTimeout(HideTrafficNa2HintTO, 2700);			
		}}		
	}}
		
	OnMouseOver_TMC2_cbx = function (pEvent)
	{{
    if (g_strAppID.toLowerCase() == "trafficnav") {
      return;
    }
		HideUTVHint ();	
		HideTrafficNavHint();
		HideDailyNewsHin();
		
		TrafficNa2HintCnt++;
		var div = GetBlock("idTrafficNa2Hint");
		if ((div != null) && (div != undefined))
		{{
			div.style.display = "";
			return ;
		}}
		 
		var div = NewTag ("div", document.body);
		div.id = "idTrafficNa2Hint";
		
		div.style.position = "absolute";
		div.style.left = (GetAbsLayerLeft(GetBlock("idButtonPaletteTMC")) + 157) + "px";
		div.style.top = GetAbsLayerTop(GetBlock("idButtonPaletteTMC")) + "px";		
		div.style.padding = "2px";
		div.style.border = "1px solid black";
		div.style.backgroundColor = "white";
		div.style.zIndex = "200";

		var div1 = NewTag ("div", div);		
		var a1 = NewTag("a", div1);
		a1.setAttribute("href", "http://TrafficNav.hu");
		a1.setAttribute("target", "_blank");				
		var img = NewTag("img", a1);
		SetImage(img, "images/buttonpalette/logo_TrafficNav.png", 58, 43, "TrafficNav");				
		
		var div2 = NewTag ("div", div);
		div2.style.fontSize = "10px";
		var a2 = NewTag("a", div2);
		a2.setAttribute("href", "http://TrafficNav.hu");
		a2.setAttribute("target", "_blank");		
		NewTextTag ("TrafficNav.hu", a2);										
	}}
	
	// --------------------------------------------------------------------------------------

	var TrafficNavHintCnt = 0;

	HideTrafficNavHint = function (pEvent)
	{{		
		var div = GetBlock("idTrafficNavHint");
		if ((div != null) && (div != undefined))
		{{
			div.style.display = "none";
		}}
	}}
	
	HideTrafficNavHintTO = function (pEvent)
	{{
		TrafficNavHintCnt--;
		var div = GetBlock("idTrafficNavHint");
		if ((div != null) && (div != undefined) && (TrafficNavHintCnt == 0))
		{{
			div.style.display = "none";
		}}
	}}

	OnMouseOut_TMC_cbx = function (pEvent)
	{{				
		var div = GetBlock("idTrafficNavHint");
		if ((div != null) && (div != undefined))
		{{
			if (div.style.display == "")
				window.setTimeout(HideTrafficNavHintTO, 2700);			
		}}		
	}}
		
	OnMouseOver_TMC_cbx = function (pEvent)
	{{
    if (g_strAppID.toLowerCase() == "trafficnav") {
      return;
    }
		HideUTVHint ();	
		HideTrafficNa2Hint ();
		HideDailyNewsHint();
		
		TrafficNavHintCnt++;
		var div = GetBlock("idTrafficNavHint");
		if ((div != null) && (div != undefined))
		{{
			div.style.display = "";
			return ;
		}}
		 
		var div = NewTag ("div", document.body);
		div.id = "idTrafficNavHint";
		
		div.style.position = "absolute";
		div.style.left = (GetAbsLayerLeft(GetBlock("idButtonPaletteTMC")) + 157) + "px";
		div.style.top = GetAbsLayerTop(GetBlock("idButtonPaletteTMC")) + "px";		
		div.style.padding = "2px";
		div.style.border = "1px solid black";
		div.style.backgroundColor = "white";
		div.style.zIndex = "200";

		var div1 = NewTag ("div", div);		
		var a1 = NewTag("a", div1);
		a1.setAttribute("href", "http://trafficnav.hu");
		a1.setAttribute("target", "_blank");				
		var img = NewTag("img", a1);
		SetImage(img, "images/buttonpalette/logo_trafficnav.png", 58, 43, "TrafficNav");				
		
		var div2 = NewTag ("div", div);
		div2.style.fontSize = "10px";
		var a2 = NewTag("a", div2);
		a2.setAttribute("href", "http://trafficnav.hu");
		a2.setAttribute("target", "_blank");		
		NewTextTag ("trafficnav.hu", a2);										
	}}
	
	// --------------------------------------------------------------------------------------
	
	var UTVHintCnt = 0;

	HideUTVHint = function (pEvent)
	{{		
		var div = GetBlock("idUTVHint");
		if ((div != null) && (div != undefined))
		{{
			div.style.display = "none";
		}}
	}}
	
	HideUTVHintTO = function (pEvent)
	{{
		UTVHintCnt--;
		var div = GetBlock("idUTVHint");
		if ((div != null) && (div != undefined) && (UTVHintCnt == 0))
		{{
			div.style.display = "none";
		}}
	}}

	OnMouseOut_UTV_cbx = function (pEvent)
	{{				
		var div = GetBlock("idUTVHint");
		
		if ((div != null) && (div != undefined))
		{{
			if (div.style.display == "")
				window.setTimeout(HideUTVHintTO, 2700);			
		}}		
	}}
		
	OnMouseOver_UTV_cbx = function (pEvent)
	{{		
		HideTrafficNavHint ();	
		HideTrafficNa2Hint ();	
		HideDailyNewsHint();
		
		UTVHintCnt++;
		var div = GetBlock("idUTVHint");
		if ((div != null) && (div != undefined))
		{{
			div.style.display = "";
			return ;
		}}
		 
		var div = NewTag ("div", document.body);
		div.id = "idUTVHint";
		
		div.style.position = "absolute";
		div.style.left = (GetAbsLayerLeft(GetBlock("idButtonPaletteTMC")) + 157) + "px"; // nem elírás
		div.style.top = GetAbsLayerTop(GetBlock("idButtonPaletteTMC")) + "px";		
		div.style.padding = "2px";
		div.style.border = "1px solid black";
		div.style.backgroundColor = "white";
		div.style.zIndex = "200";

		var div1 = NewTag ("div", div);		
		var a1 = NewTag("a", div1);
		a1.setAttribute("href", "http://www.utv.hu");
		a1.setAttribute("target", "_blank");				
		var img = NewTag("img", a1);
		SetImage(img, "images/buttonpalette/logo_utv.png", 41, 74, "UTV");				
		
		var div2 = NewTag ("div", div);
		div2.style.fontSize = "10px";
		div2.style.textAlign = "center";
		var a2 = NewTag("a", div2);
		a2.setAttribute("href", "http://www.utv.hu");
		a2.setAttribute("target", "_blank");		
		NewTextTag ("utv.hu", a2);										
	}}

	//--------------------------------------------------------------	
		
	var DailyNewsHintCnt = 0;

	HideDailyNewsHint = function (pEvent)
	{{		
		var div = GetBlock("idDailyNewsHint");
		if ((div != null) && (div != undefined))
		{{
			div.style.display = "none";
		}}
	}}
	
	HideDailyNewsHintTO = function (pEvent)
	{{
		DailyNewsHintCnt--;
		var div = GetBlock("idDailyNewsHint");
		if ((div != null) && (div != undefined) && (DailyNewsHintCnt == 0))
		{{
			div.style.display = "none";
		}}
	}}

	OnMouseOut_DailyNews_cbx = function (pEvent)
	{{				
		var div = GetBlock("idDailyNewsHint");
		
		if ((div != null) && (div != undefined))
		{{
			if (div.style.display == "")
				window.setTimeout(HideDailyNewsHintTO, 2700);			
		}}		
	}}
		
	OnMouseOver_DailyNews_cbx = function (pEvent)
	{{		
		HideTrafficNavHint ();	
		HideTrafficNa2Hint ();	
		HideUTVHint();
		
		DailyNewsHintCnt++;
		var div = GetBlock("idDailyNewsHint");
		if ((div != null) && (div != undefined))
		{{
			div.style.display = "";
			return ;
		}}
		 
		var div = NewTag ("div", document.body);
		div.id = "idDailyNewsHint";		
		div.style.position = "absolute";
		div.style.left = (GetAbsLayerLeft(GetBlock("idButtonPaletteTMC")) + 157) + "px"; // nem elírás
		div.style.top = GetAbsLayerTop(GetBlock("idButtonPaletteTMC")) + "px";		
		div.style.padding = "2px";
		div.style.border = "1px solid black";
		div.style.backgroundColor = "white";
		div.style.zIndex = "200";

		var div1 = NewTag ("div", div);		
		div1.style.textAlign = "center";
		var a1 = NewTag("a", div1);
		a1.setAttribute("href", "http://fovinform.hu");
		a1.setAttribute("target", "_blank");				
		var img = NewTag("img", a1);
		SetImage(img, "images/buttonpalette/logo_fovinform.png", 53, 69, "Fővinform");				
		
		var div2 = NewTag ("div", div);
		div2.style.fontSize = "10px";
		div2.style.textAlign = "center";
		var a2 = NewTag("a", div2);
		a2.setAttribute("href", "http://fovinform.hu");
		a2.setAttribute("target", "_blank");		
		NewTextTag ("fovinform.hu", a2);										
	}}

	//--------------------------------------------------------------			
	
	ResetHints = function ()
	{{
		HideTrafficNavHint ();
		HideTrafficNa2Hint ();
		HideDailyNewsHint ();
		HideUTVHint ();
	}}


function ButtonPalette(idContentTable, arrInputIds, arrStates)
{
	this.table = GetBlock(idContentTable);
	this.tableMenu = GetBlock(idContentTable + "Menu");
	this.divMenu = GetBlock(idContentTable + "MenuDiv");
	this.divMenuList = GetBlock(idContentTable + "MenuListDiv");
		
	this.trButtonPaletteBottom = null;
		
	this.pTopoliszMap = null;
	this.inputTMC = null;
	this.inputUTV = null;
	this.inputPTStopsGlobal = null;
	this.inputPTStopsLocal = null;
		
	this.inputDailyNews = null;
	this.inputCoordsLabel = null;
	this.inputPOIBanner = null;
	this.inputTMCWeather = null;
	this.arrInputPOIs = new Array();
	
	this.arrInputIds = arrInputIds;

	var me = this;

	this.Init = function (pTopoliszMap)
	{
		me.pTopoliszMap = pTopoliszMap;
	
		me.divMenuList.style.position = "absolute";
		me.divMenuList.style.paddingTop = "3px";
		me.divMenuList.style.display = "none";		
		var table1 = me.tableMenu;
		if(table1 != null)
		{
			var arrTr = table1.getElementsByTagName("tr");
			if(arrTr != null)
			{
				for(var iTr=0; iTr<arrTr.length; iTr++)
				{
					var tr = arrTr[iTr];
					if(tr.className == "buttonpalette_button_row")
					{
						var arrA = tr.getElementsByTagName("a");
						if(arrA != null)
						{
							for(var iA=0; iA<arrA.length; iA++)
							{
								AddEvent(arrA[iA], "click", me.SwitchDetails);
							}
						}
					} 
					else
					if(tr.className == "buttonpalette_bottom")
					{
						me.trButtonPaletteBottom = tr;
					}
				}
			}

			var i = 0;
			for (i = 0; i < me.arrInputIds.length; i++)
			{		
				if (me.arrInputIds[i] == "idButtonPaletteTMC")
				{
					me.inputTMC = GetBlock("idButtonPaletteTMC");
					me.pTopoliszMap.SetDrawTMC(arrStates[i], true);
					me.inputTMC.checked = me.pTopoliszMap.Get_bDrawTMC();
					me.pTopoliszMap.AddDrawTMCChangedListener(me.RefreshDrawTMCState);
					AddEvent(me.inputTMC, "click", me.SwitchTMC);
				}
				else if (me.arrInputIds[i] == "idButtonPaletteUTV")
				{			
					me.inputUTV = GetBlock("idButtonPaletteUTV");
					me.pTopoliszMap.SetDrawUTV(arrStates[i], true);
					me.inputUTV.checked = me.pTopoliszMap.IsDrawUTV();
					me.pTopoliszMap.AddDrawUTVChangedListener(me.RefreshDrawUTVState);
					AddEvent(me.inputUTV, "click", me.SwitchUTV);
				}
				else if (me.arrInputIds[i] == "idButtonPalettePTStopsGlobal")
				{
					me.inputPTStopsGlobal = GetBlock("idButtonPalettePTStopsGlobal");
					me.pTopoliszMap.SetDrawPTStopsGlobal(arrStates[i], true);
					me.inputPTStopsGlobal.checked = me.pTopoliszMap.IsDrawPTStopsGlobal();
					me.pTopoliszMap.AddDrawPTStopsGlobalChangedListener(me.RefreshDrawPTStopsState);
					AddEvent(me.inputPTStopsGlobal, "click", me.SwitchPTStops);
				}
				else if (me.arrInputIds[i] == "idButtonPalettePTStopsLocal")
				{
					me.inputPTStopsLocal = GetBlock("idButtonPalettePTStopsLocal");
					me.pTopoliszMap.SetDrawPTStopsLocal(arrStates[i], true);
					me.inputPTStopsLocal.checked = me.pTopoliszMap.IsDrawPTStopsLocal();
					me.pTopoliszMap.AddDrawPTStopsLocalChangedListener(me.RefreshDrawPTStopsState);
					AddEvent(me.inputPTStopsLocal, "click", me.SwitchPTStops);
				}
				else if (me.arrInputIds[i] == "idButtonPaletteDailyNews")
				{									
					me.inputDailyNews = GetBlock("idButtonPaletteDailyNews");
					me.pTopoliszMap.SetDrawDailyNews(arrStates[i], true);
					me.inputDailyNews.checked = me.pTopoliszMap.IsDrawDailyNews();
					me.pTopoliszMap.AddDrawDailyNewsChangedListener(me.RefreshDrawDailyNewsState);
					AddEvent(me.inputDailyNews, "click", me.SwitchDailyNews);
				}			
				else if (me.arrInputIds[i] == "idButtonPaletteCoords")
				{									
					me.inputCoordsLabel = GetBlock("idButtonPaletteCoords");
					me.pTopoliszMap.SetDrawCoordsLabel(arrStates[i]);
					me.inputCoordsLabel.checked = me.pTopoliszMap.IsDrawCoordsLabel();
					me.pTopoliszMap.AddDrawCoordsLabelChangedListener(me.RefreshDrawCoordsLabelState);
					AddEvent(me.inputCoordsLabel, "click", me.SwitchCoordsLabel);
				}							
				else if (me.arrInputIds[i] == "idButtonPaletteReklam")
				{									
					me.inputPOIBanner = GetBlock("idButtonPaletteReklam");
					me.pTopoliszMap.SetDrawPOIBanner(arrStates[i], true);
					me.inputPOIBanner.checked = me.pTopoliszMap.IsDrawPOIBanner();
					me.pTopoliszMap.AddDrawCoordsLabelChangedListener(me.RefreshDrawPOIBannerState);
					AddEvent(me.inputPOIBanner, "click", me.SwitchPOIBanner);
				}							
				else if (me.arrInputIds[i] == "idButtonPaletteTMCWeather")
				{									
					me.inputTMCWeather = GetBlock("idButtonPaletteTMCWeather");
					me.pTopoliszMap.SetDrawTMCWeather(arrStates[i], true);
					me.inputTMCWeather.checked = me.pTopoliszMap.Get_bDrawTMCWeather();
					me.pTopoliszMap.AddDrawTMCWeatherChangedListener(me.RefreshDrawTMCWeatherState);
					AddEvent(me.inputTMCWeather, "click", me.SwitchTMCWeather);
				}										
				else if (me.arrInputIds[i].search("idButtonPalettePOI") == 0) // has the prefix idBu...POI...
				{			
					var sernum = me.arrInputIds[i][18];
					var inputPOI = GetBlock(me.arrInputIds[i]);
					inputPOI.poiSerNum = sernum;
					me.pTopoliszMap.SetDrawPOI(sernum, arrStates[i], true);
					inputPOI.checked = me.pTopoliszMap.IsDrawPOI(sernum);
					me.arrInputPOIs.push(inputPOI);
					AddEvent(inputPOI, "click", me.SwitchPOI);
				}						
				/*not else*/ if (me.arrInputIds[i] == "idButtonPalettePOI1")
					me.pTopoliszMap.AddDrawPOIChangedListener(me.RefreshDrawPOIState);			
			}
			me.pTopoliszMap.DrawRoute();

			AddEvent(document, "mousemove", me.OnMouseOut);
			me.HideDetails();
			g_Babel.AddListener(this.OnChangeLang);
			me.divMenu.style.display = "";
		}
	}

	this.OnMouseOut = function(pEvent)
	{		
		var bOnMenuTitle = false;	
		var bOnMenuList = false;
					
		var iMouseX = GetEventXNew(pEvent);
		var iMouseY = GetEventYNew(pEvent);
		var iDelta = 10;
		
		var iMinX = GetAbsLayerLeft(me.tableMenu);
		var iMinY = GetAbsLayerTop(me.tableMenu);
		var iMaxX = GetAbsLayerRight(me.tableMenu);
		var iMaxY = GetAbsLayerBottom(me.tableMenu);
							
		
		if(iMouseX < iMinX-iDelta || iMouseX > iMaxX+iDelta || iMouseY < iMinY-iDelta || iMouseY > iMaxY+iDelta)
			bOnMenuTitle = false;
		else
			bOnMenuTitle = true;

		
		if (me.divMenuList.style.display == "")
		{
			iMinX = GetAbsLayerLeft(me.divMenuList);
			iMinY = GetAbsLayerTop(me.divMenuList);
			iMaxX = GetAbsLayerRight(me.divMenuList);
			iMaxY = GetAbsLayerBottom(me.divMenuList);			
						
			if(iMouseX < iMinX-iDelta || iMouseX > iMaxX-iDelta || iMouseY < iMinY+iDelta || iMouseY > iMaxY+iDelta)
				bOnMenuList = false;
			else
				bOnMenuList = true;
		}
						
		if (!bOnMenuList && !bOnMenuTitle && (me.divMenuList.style.display == ""))
			me.HideDetails();
		//else if ((me.divMenuList.style.display == "none") && bOnMenuTitle)
		//	me.ShowDetails();
	}

	this.ShowDetails = function()
	{
		me.divMenuList.style.display = "";
		//me.trButtonPaletteBottom.style.display = "none";
	}
	this.HideDetails = function()
	{
		me.divMenuList.style.display = "none";
		//me.trButtonPaletteBottom.style.display = "";
	}
	
	this.SwitchDetails = function (pEvent)
	{
		if (me.divMenuList.style.display == "none")
			me.ShowDetails();
		else
			me.HideDetails();				
		return false;
	}

	this.SwitchTMC = function () 
	{
		me.pTopoliszMap.SetDrawTMC(!me.pTopoliszMap.Get_bDrawTMC(), false);
		me.RefreshDrawTMCState();
	}
	
	this.RefreshDrawTMCState = function()
	{
		if(me.inputTMC)
		{
			me.inputTMC.checked = me.pTopoliszMap.Get_bDrawTMC();
		}
	}

	this.SwitchUTV = function () 
	{
		me.pTopoliszMap.SetDrawUTV(!me.pTopoliszMap.IsDrawUTV(), false);
		me.RefreshDrawUTVState();
	}
		
	this.RefreshDrawUTVState = function()
	{
		if(me.inputUTV)
		{
			me.inputUTV.checked = me.pTopoliszMap.IsDrawUTV();
		}
	}
	
	this.SwitchPTStops = function () 
	{
		if(me.inputPTStopsGlobal)
		{
			me.pTopoliszMap.SetDrawPTStopsGlobal(me.inputPTStopsGlobal.checked, false);
		}
		if(me.inputPTStopsLocal)
		{
			me.pTopoliszMap.SetDrawPTStopsLocal(me.inputPTStopsLocal.checked, false);
		}
		me.RefreshDrawPTStopsState();
	}
	
	this.RefreshDrawPTStopsState = function()
	{
		if(me.inputPTStopsGlobal)
		{
			me.inputPTStopsGlobal.checked = me.pTopoliszMap.IsDrawPTStopsGlobal();
		}
		if(me.inputPTStopsLocal)
		{
			me.inputPTStopsLocal.checked = me.pTopoliszMap.IsDrawPTStopsLocal();
		}

	}
				
	this.SwitchDailyNews = function () 
	{
		me.pTopoliszMap.SetDrawDailyNews(!me.pTopoliszMap.IsDrawDailyNews(), false);
		me.RefreshDrawDailyNewsState();
	}
	
	this.RefreshDrawDailyNewsState = function()
	{
		if(me.inputDailyNews)
		{
			me.inputDailyNews.checked = me.pTopoliszMap.IsDrawDailyNews();
		}
	}
	
	this.SwitchCoordsLabel = function () 
	{
		me.pTopoliszMap.SetDrawCoordsLabel(!me.pTopoliszMap.IsDrawCoordsLabel());
		me.RefreshDrawCoordsLabelState();
	}
	
	this.RefreshDrawCoordsLabelState = function()
	{
		if(me.inputCoordsLabel)
		{
			me.inputCoordsLabel.checked = me.pTopoliszMap.IsDrawCoordsLabel();
		}
	}
	
	this.SwitchPOIBanner = function () 
	{
		me.pTopoliszMap.SetDrawPOIBanner(!me.pTopoliszMap.IsDrawPOIBanner());
		me.RefreshDrawPOIBannerState();
	}

	this.RefreshDrawPOIBannerState = function()
	{
		if(me.inputPOIBanner)
		{
			me.inputPOIBanner.checked = me.pTopoliszMap.IsDrawPOIBanner();
		}
	}

	this.SwitchTMCWeather = function () 
	{
		me.pTopoliszMap.SetDrawTMCWeather(!me.pTopoliszMap.Get_bDrawTMCWeather(), false);
		me.RefreshDrawTMCWeatherState();
	}
	
	this.RefreshDrawTMCWeatherState = function()
	{
		if(me.inputTMCWeather)
		{
			me.inputTMCWeather.checked = me.pTopoliszMap.Get_bDrawTMCWeather();
		}
	}

	this.SwitchPOI = function (event) 
	{
		var source = GetEventSourceElement (event);
		var poiSerNum = source.poiSerNum;
		me.pTopoliszMap.SetDrawPOI(poiSerNum, !me.pTopoliszMap.IsDrawPOI(poiSerNum), false);
		me.RefreshDrawPOIState();
	}
	
	this.RefreshDrawPOIState = function()
	{
		var i = 0;
		var bAnySwitchedOn = false;
		for (i = 0; i < me.arrInputPOIs.length; i++)
		{
			var poiSerNum = me.arrInputPOIs[i].poiSerNum;			
			me.arrInputPOIs[i].checked = me.pTopoliszMap.IsDrawPOI(poiSerNum);
			if (me.pTopoliszMap.IsDrawPOI(poiSerNum)) bAnySwitchedOn = true;
		}				
		GetBlock("poilistblock").style.display = bAnySwitchedOn ? "" : "none";
	}	
	
	this.OnChangeLang = function()
	{
		var arrHtmlIDs = ["idButtonPaletteLabel1", "idButtonPaletteLabel2", "idButtonPaletteTMCLabel", "idButtonPaletteUTVLabel", "idButtonPalettePTStops"];
		var arrBabelIDs = ["ButtonPaletteCaption", "cbxTMC", "utv", "cbxPTStops"];
		for(var i=0; i<arrHtmlIDs.length; i++)
		{
			var span = GetBlock(arrHtmlIDs[i]);
			if(span)
			{
				while(span.firstChild)
					span.removeChild(span.firstChild);
				NewTextTag(g_Babel.GetWord(arrBabelIDs[i]), span);
			}
		}
	}
	
	//me.Init();
}