﻿function LoginBox(divDummy, pTopoliszControl)
{
	this.pTopoliszControl = pTopoliszControl;
	var me = this;

	
	this.LoginCallback = function(data)
	{
		if (data && data != "undefined" && data != "null")
		{
			data = eval(data);
			// set user dependent data
			me.favouritePlaces = data.favouritePlaces;
			me.favouriteRoutes = data.favouriteRoutes;
			me.name = data.userName;

			var div = GetBlock("idLoggedIn");
			while(div.firstChild)
				div.removeChild(div.firstChild);

			// labels
			PinLabel.prototype.OnShow = me.OnLabelShow;
			
			var types = ["start","through","stop","findpoi"];
			me.pTopoliszControl.pTopoliszMap.ShowPinLabelsMulti (types);			
			
			// show favourite places
			me.pTopoliszControl.SwitchFavouritePlace (true);
			CUtvonaltervAddressBlock.prototype.OnShowRegistered = me.OnAddressBlockShowRegistered;
			
			var execOnShow = true;
			if (!me.pTopoliszControl.pRouteSearch) {
				execOnShow = false;
				var div = NewTag('div', me.pTopoliszControl.divContent);
				me.pTopoliszControl.pRouteSearch = new CUtvonaltervRouteSearch(div, me.pTopoliszControl.pTopoliszMap);
				me.pTopoliszControl.pRouteResult = new CUtvonaltervRouteResult(me.pTopoliszControl.divRouteResult, me.pTopoliszControl.pTopoliszMap);
				me.pTopoliszControl.pRouteSearch.SetResultHandler(me.pTopoliszControl.pRouteResult);
				me.pTopoliszControl.pRouteSearch.Hide(); //hack: az UnHide jeleníti majd csak meg
			}
			me.pTopoliszControl.pRouteSearch.OnShow = me.OnRouteShow;
			me.pTopoliszControl.pRouteSearch.Show();
			//me.pTopoliszControl.pRouteSearch.OnShow = me.OnRouteShow;
			
			
			/*
			if (execOnShow) {
				me.pTopoliszControl.pRouteSearch.Show();
				me.pTopoliszControl.ShowRouteSearch();
			}
			
			me.pTopoliszControl.ShowLastControl();
			*/
		}
	}
	
	this.CloseAddFav = function(bRedraw, id, x, y, name) {
		g_PopUpHandler.HidePopup();
		if (bRedraw) {
			var length = GetArrayLength(me.favouritePlaces);
			me.favouritePlaces[length] = new CFavouritePlace();
			
			me.favouritePlaces[length].id = id;
			me.favouritePlaces[length].x = x;
			me.favouritePlaces[length].y = y;
			me.favouritePlaces[length].name = name;
			g_TopoliszControls.SwitchFavouritePlace (true);
		}
	}
	
	this.OnLabelShow = function(label)
	{
		var listFavouritablePinTypes = ["start","stop","through","findpoi","pick"];
		var iFound = listFavouritablePinTypes.indexOf(label.pMarker.mainType);		
		
		if (label.registeredButtons != null)
		{		
			if (!label.registeredButtons.hasChildNodes() && (iFound != -1) ) {
				label.registeredA = NewTag("a", label.registeredButtons);
				label.registeredA.onclick = function ()
				{
					var iframe = NewIframe("AddFavPlace.aspx?x=" + label.pMarker.dX + "&y=" + label.pMarker.dY + "&langid=" + g_Babel.GetLang() + "&caption=" + label.pMarker.GetLabelCaption(), 510,100);
					g_PopUpHandler.SetContent(g_Babel.GetWord('capAddFavouritePlace'), iframe);
					g_PopUpHandler.SetSize(520, 150);
					g_PopUpHandler.CenterPopup();
					g_PopUpHandler.ShowPopup();
				};
				
				
				if (g_TopoliszMap.iLabelDesignVersion != 2)
				{
					var img = NewTag("img", label.registeredA);
					img.paddingRight = "2px";
					SetImage(img, "design/BUTTON_favourites_small.gif", 12, 12, "");
					img.onmouseover = function (pEvent) {g_TopoliszMap.ShowToolTip (pEvent, "Kedvencekhez")}; 
					img.onmouseout = function () {g_TopoliszMap.HideToolTip ()};			
				}
				else
				{
					var a5 = label.registeredA;
					NewTextTag(g_Babel.GetWord("capLabHeaderBtnFavourite"), a5);
					a5.onmousedown = function (e) {StopEventPropagation(e); return false;};
					a5.onmouseover = function (pEvent) {g_TopoliszMap.ShowToolTip (pEvent, "Kedvencekhez")}; 
					a5.onmouseout = function () {g_TopoliszMap.HideToolTip ()};
					a5.ondragstart = function() { return false; };
					a5.onselectstart = function() { return false; };														
				}
					
			}
		}
	}
	
	this.OnFindPoiLabelShow = function (label) 
	{
		if (!label.registeredButtons.hasChildNodes()) {
			label.registeredA = NewTag("a", label.registeredButtons);
			label.registeredA.onclick = function ()
			{
				var iframe = NewIframe("AddFavPlace.aspx?x=" + label.pMarker.dX + "&y=" + label.pMarker.dY + "&langid=" + g_Babel.GetLang()+ "&caption=" + label.pMarker.GetLabelCaption(), 510,100);
				g_PopUpHandler.SetContent(g_Babel.GetWord('capAddFavouritePlace'), iframe);
				g_PopUpHandler.SetSize(520, 150);
				g_PopUpHandler.CenterPopup();
				g_PopUpHandler.ShowPopup();
			};
			var img = NewTag("img", label.registeredA);
			img.paddingRight = "2px";
			SetImage(img, "design/ICON_favourites_on.gif", 12, 12, "Kedvencekhez");	 
		}
	}
	
	this.CloseAddFavRoute = function(bRedraw, name, data) {
		g_PopUpHandler.HidePopup();
		if (bRedraw) {
			var length = GetArrayLength(me.favouriteRoutes);
			me.favouriteRoutes[length] = new CFavouriteRoute();
			me.favouriteRoutes[length].id = -1;
			me.favouriteRoutes[length].name = name;
			me.favouriteRoutes[length].data = data;

			var option = NewTag("option", me.routeSelect);
			option.text = me.favouriteRoutes[length].name;
			option.value = length;
		}
	}

	this.OnRouteShow = function()
	{
		var div = NewTag('div', me.pTopoliszControl.pRouteSearch.divRegistered);
		div.style.padding = "3px";

		var panel = new Panel(div);
		var td = NewTag('td', panel.tr);
		var txtBtn = new TextButton(td);
		txtBtn.CreateImage(15, 15, "design/ICON_addfavourites_off.gif", "design/ICON_addfavourites_on.gif", null, null, false);
		var a = txtBtn.CreateText(g_Babel.GetWord('regAddFavRoute'));
		txtBtn.OnClick = function () {
			var iframe = NewIframe("AddFavRoute.aspx?data=" + g_TopoliszMap.SaveState() + "&langid=" + g_Babel.GetLang(), 510, 100);
			g_PopUpHandler.SetContent(g_Babel.GetWord('capNewFavRoute'), iframe);
			g_PopUpHandler.SetSize(520, 150);
			g_PopUpHandler.CenterPopup();
			g_PopUpHandler.ShowPopup();
		};

		// warning! ide this kell!!!
		this.aRegAddFavRoute = a;

		var space = NewTag("h3", div);
		
		var tt = NewTextTag(g_Babel.GetWord("capFavouriteRoutes"),space);
		
		space.style.fontSize = "11px";
		space.style.marginTop = "10px";

		me.routeSelect = NewTag("select", div);
		me.routeSelect.style.width = "100%"//GetLayerWidth(retval) + "px";

		var option = NewTag("option", me.routeSelect);
		option.text = "---- " + g_Babel.GetWord('regSelect') + " ----";
		option.value = i;

		// warning! ide this kell!!!
		this.optionRegSelect = option;

		for (var i = 0; i < me.favouriteRoutes.length; i++) {
			option = NewTag("option", me.routeSelect);
			option.text = me.favouriteRoutes[i].name;
			option.value = i;
		}

		me.routeSelect.onchange = function () {
			if (this.selectedIndex > 0) {
				g_TopoliszMap.LoadState(me.favouriteRoutes[this.options[this.selectedIndex].value].data);
			}
		}
		
		space = NewTag("div", div);
		space.style.height = "6px";

		// email sender control
		cancelSendMail = function() {
			GetBlock("idModalDialogHolder").style.display = "none";
		}
	}

	this.ShowFavPlacesList = function (addrBlock) 
	{
		var addrList = new Array();
		for (var i = 0; i < GetArrayLength(me.favouritePlaces); i++) {
			addrList[i] = new Object();
			addrList[i].dX = me.favouritePlaces[i].x;
			addrList[i].dY = me.favouritePlaces[i].y;
			addrList[i].strAddress = me.favouritePlaces[i].name;
		}
		var obj = new CAddressSearchUserState();
		obj.strInputText = "";
		obj.arrAddressList = addrList;

		// this is the addressbox
		addrBlock.pSearch.SetUserState(obj);
		addrBlock.pSearch.Show();
	}

	this.OnAddressBlockShowRegistered = function(addrBlock)
	{
		var td = addrBlock.inputbox.AppendIconTd();
		var a = NewTag('a', td);
		new ImgLink(a, 22, 22, "design/BUTTON_favourites_off.gif", "design/BUTTON_favourites_on.gif", null, null, g_Babel.GetWord("cFavouritePlace"), false);
		
		AddEvent(a, "click", function() {me.ShowFavPlacesList(addrBlock) } );		

		//addrBlock.pBOX.customButton.onmouseover = function (pEvent) { g_TopoliszMap.ShowToolTip (pEvent, 'Kedvenc helyek'); };
		//addrBlock.pBOX.customButton.onmouseout = function () { g_TopoliszMap.HideToolTip (); };
	}

}
