﻿function CUtvonaltervRouteParams(pRouteSearch)
{
	this.div = null;

	this.pRouteSearch = pRouteSearch;

	this.aShowDetails = null;
	this.inputTrafficTime = null;
	this.inputTrafficTime2 = null;
	this.divTimeList = null;
	this.bSkipNextBlur = false;
	this.killTimer = null;
	this.colorpanel = null;
	this.bDetailsVisible = false;
	this.divDetails = null;
	// Autos beállítások
	this.arrRadioCarOptims = new Array();
	this.checkFerry = null;
	this.checkPay = null;
	this.checkDirtyRoad = null;
	this.inputConsumption = null;
	this.inputFuelPrice = null;
	// Bkvs beállítások

	this.checkPTLocal = true;
	this.checkPTTrain = true;
	this.arrRadioGetOnTypes= new Array();

	this.pLanguageSupporter = new LanguageSupporter ();

	var me = this;

	this.SetDiv = function(div)
	{
		me.div = div;
	}

	/// protected:
	this.GetDiv = function()
	{
		return me.divMain;
	}

	this.ChangeDetailsVisibility = function()
	{
		me.bDetailsVisible = !me.bDetailsVisible;
		if(me.bDetailsVisible)
		{
			if(me.divDetails && me.divDetails.parentNode)
			{
				if(me.aShowDetails)
					me.aShowDetails.style.display = "none";
				me.divDetails.style.display = "";
			}
			else
				me.ShowDetails();
		}
		else
		{
			if(me.aShowDetails)
				me.aShowDetails.style.display = "";
			if(me.divDetails)
				me.divDetails.style.display = "none";
		}
	}
	
	this.HideDetails = function()
	{
		if(me.bDetailsVisible)
		{
			me.bDetailsVisible = false;
			if(me.aShowDetails)
				me.aShowDetails.style.display = "";
			if(me.divDetails)
				me.divDetails.style.display = "none";
		}
	}
	
	

	this.Show = function()
	{
		if(me.div && me.pRouteSearch)
		{
			while(me.div.firstChild)
				me.div.removeChild(me.div.firstChild);
			me.bDetailsVisible = false;

			if(me.pRouteSearch.IsByCar() || me.pRouteSearch.IsByTaxi() || me.pRouteSearch.IsByPublicTransport())
			{
				me.colorpanel = new ColorPanel(me.div);
				//me.colorpanel.CreateCaption(g_Babel.GetWord('capRouteSettings'), "design/icon_settings_off.gif",14, 14);
	
				//me.ShowTime2(me.colorpanel.td);
				if(me.pRouteSearch.IsByPublicTransport())
				{				
					//me.ShowPTServiceProviders(me.colorpanel.td);
					//if(g_InitSettings.iMultiModalVersion == 1)
					//	me.ShowPTGetOnVehicleTypes(me.colorpanel.td);
					me.aShowDetails = NewTag("div", me.colorpanel.td);					
					var a = NewTag('a', me.aShowDetails);
					a.setAttribute('href', 'javascript:void(0)');
					AddEvent(a, "click", me.ShowDetails);
					NewTextTag(g_Babel.GetWord('capPTServiceProviders') + "...", a);
					me.pLanguageSupporter.Add (a, "innerHTML", "capPTServiceProviders", "", "...");

					if(me.bDetailsVisible)
						me.ShowDetails();																	
				}
				if(me.pRouteSearch.IsByCar())
				{
					//me.ShowCarFuelParams(me.colorpanel.td);
					me.aShowDetails = NewTag("div", me.colorpanel.td);					
					var a = NewTag('a', me.aShowDetails);
					a.setAttribute('href', 'javascript:void(0)');
					AddEvent(a, "click", me.ShowDetails);
					NewTextTag(g_Babel.GetWord('capRouteSettingsCarMore') + "...", a);
					me.pLanguageSupporter.Add (a, "innerHTML", "capRouteSettingsCarMore", "", "...");

					if(me.bDetailsVisible)
						me.ShowDetails();
				}
				if(me.pRouteSearch.IsByTaxi())
				{
					//me.ShowTaxiParams(me.colorpanel.td);																												
					me.aShowDetails = NewTag("div", me.colorpanel.td);					
					var a = NewTag('a', me.aShowDetails);
					a.setAttribute('href', 'javascript:void(0)');
					AddEvent(a, "click", me.ShowDetails);
					NewTextTag(g_Babel.GetWord('capRouteSettingsTaxiMore') + "...", a);
					me.pLanguageSupporter.Add (a, "innerHTML", "capRouteSettingsTaxiMore", "", "...");

					if(me.bDetailsVisible)
						me.ShowDetails();													
				}
			}
			if (me.pRouteSearch.IsByBicycle() || me.pRouteSearch.IsOnFoot())
			{
				me.colorpanel = new ColorPanel(me.div);
				me.aShowDetails = NewTag("div", me.colorpanel.td);
				var a = NewTag('a', me.aShowDetails);
				a.setAttribute('href', 'javascript:void(0)');
				AddEvent(a, "click", me.ShowDetails);
				NewTextTag(g_Babel.GetWord('capRouteSettingsMore') + "...", a);
				me.pLanguageSupporter.Add (a, "innerHTML", "capRouteSettingsMore", "", "...");
				if(me.bDetailsVisible)
					me.ShowDetails();				
			}			
		}
	}

	this.ShowDetails = function()
	{
		me.bDetailsVisible = true;
		if(me.div && me.pRouteSearch)
		{
			if(me.aShowDetails)
				me.aShowDetails.style.display = "none";
			me.divDetails = NewTag("div", me.colorpanel.td);
			if(me.pRouteSearch.IsByCar() || me.pRouteSearch.IsByTaxi() || me.pRouteSearch.IsByPublicTransport()|| me.pRouteSearch.IsOnFoot() || me.pRouteSearch.IsByBicycle())
			{
				var div = NewTag('div', me.divDetails);
//				div.style.textAlign = "right";
				var a = NewTag('a', div);
				a.setAttribute('href', 'javascript:void(0)');
				NewTextTag(g_Babel.GetWord('HideDetails'), a);
				me.pLanguageSupporter.Add (a, "innerHTML", "HideDetails", "", "");
				AddEvent(a, "click", me.HideDetails);

				if(me.pRouteSearch.IsByCar())
					me.ShowCarParams(me.divDetails);
				if(me.pRouteSearch.IsByTaxi())
					me.ShowTaxiParams(me.divDetails);
				if(me.pRouteSearch.IsByPublicTransport())
					me.ShowPTParams(me.divDetails);
				if(me.pRouteSearch.IsOnFoot())
					me.ShowFootParams(me.divDetails);
				if(me.pRouteSearch.IsByBicycle())
					me.ShowBicycleParams(me.divDetails);

				var div = NewTag('div', me.divDetails);
//				div.style.textAlign = "right";
				var a = NewTag('a', div);
				a.setAttribute('href', 'javascript:void(0)');
				NewTextTag(g_Babel.GetWord('HideDetails'), a);
				me.pLanguageSupporter.Add (a, "innerHTML", "HideDetails", "", "");
				AddEvent(a, "click", me.HideDetails);
			}
		}
	}
	
	this.ShowTime = function(divParent)
	{
	/*
		var fieldset = NewTag('fieldset', divParent);
		var legend = NewTag('legend', fieldset);
		NewTextTag(g_Babel.GetWord('capTime'), legend);
		me.pLanguageSupporter.Add (legend, "innerHTML", "capTime", "", "");
*/

		var inputbox = new InputBox(divParent);
		inputbox.tdInput.style.width = "100px"
		inputbox.input.setAttribute('maxlength', 16);
		inputbox.input.value = me.pRouteSearch.GetTrafficTime();
		me.inputTrafficTime = inputbox.input;
		me.inputTrafficTime2 = null;
		AddEvent(inputbox.input, "blur", me.SetTrafficTime);
		AddEvent(inputbox.input, "focus", inputbox.input.select);
		AddEvent(inputbox.input, "keypress", me.OnKeyPressTrafficTime);
		var td = inputbox.InsertTd();
		td.style.whiteSpace = "nowrap";
		NewTextTag(g_Babel.GetWord('capTimeToTravel'), td);
		me.pLanguageSupporter.Add (td, "innerHTML", "capTimeToTravel", "", "");
	}
	
	this.ShowTime2 = function(divParent)
	{
	/*
		var a = NewTag('a', divParent);
		a.setAttribute('href', 'javascript:void(0)');
		AddEvent(a, 'click', function(){alert(me.pRouteSearch.GetTrafficTime());});
		NewTextTag('teszt', a);
*/
	
		var inputbox = new InputBox(divParent);
		var td = inputbox.InsertTd();
		td.style.whiteSpace = "nowrap";
		NewTextTag(g_Babel.GetWord('capTimeToTravel'), td);
		me.pLanguageSupporter.Add (td, "innerHTML", "capTimeToTravel", "", "");
		inputbox.tdInput.style.width = "70px"
		inputbox.input.setAttribute('maxlength', 10);
		inputbox.input.value = me.pRouteSearch.GetTrafficTime().substr(0, 10);
		me.inputTrafficTime = inputbox.input;
		AddEvent(inputbox.input, "blur", me.SetTrafficTime);
		AddEvent(inputbox.input, "focus", inputbox.input.select);
		AddEvent(inputbox.input, "keypress", me.OnKeyPressTrafficTime);

		td = inputbox.AppendTd();
		NewTextTag('\u00a0', td);

		inputbox.CreateInput();
		inputbox.tdInput.style.width = "35px"
		inputbox.input.setAttribute('maxlength', 5);
		inputbox.input.value = me.pRouteSearch.GetTrafficTime().substr(11);
		AddEvent(inputbox.input, "blur", me.OnTimeBlur);
		AddEvent(inputbox.input, "focus", inputbox.input.select);
		AddEvent(inputbox.input, "focus", me.ShowTimeList);
		me.inputTrafficTime2 = inputbox.input;
	}
	
	this.ShowCarParams = function(divParent)
	{
		//me.ShowCarFuelParams(me.colorpanel.td); // ujhoz minta
		me.ShowCarFuelParams(divParent);
		
		var fieldset = NewTag('fieldset', divParent);
		var legend = NewTag('legend', fieldset);
		
		NewTextTag(g_Babel.GetWord('capRoute'), legend);
		me.pLanguageSupporter.Add (legend, "innerHTML", "capRoute", "", "");
		
		var input = CreateRadioButton("radioCarOptim", "idCarFastestRoute", "0");
		input.className = "checkbox";
		AddTag(input, fieldset);
		AddEvent(input, 'change', me.SetCarOptim);
		var label = NewTag('label', fieldset);
		label.setAttribute('for', 'idCarFastestRoute');
		NewTextTag(g_Babel.GetWord('FastestRoute'), label);
		me.pLanguageSupporter.Add (label, "innerHTML", "FastestRoute", "", "");
		NewTag('br', fieldset);
		me.arrRadioCarOptims[0] = input;

		var input = CreateRadioButton("radioCarOptim", "idShortestRoute", "1");
		input.className = "checkbox";
		AddTag(input, fieldset);
		AddEvent(input, 'change', me.SetCarOptim);
		var label = NewTag('label', fieldset);
		label.setAttribute('for', 'idShortestRoute');
		NewTextTag(g_Babel.GetWord('ShortestRoute'), label);
		me.pLanguageSupporter.Add (label, "innerHTML", "ShortestRoute", "", "");
		NewTag('br', fieldset);
		me.arrRadioCarOptims[1] = input;

		if(me.pRouteSearch.iCarOptim >= 0 && me.pRouteSearch.iCarOptim < 2)
			me.arrRadioCarOptims[me.pRouteSearch.iCarOptim].checked = true;

		var input = NewTag ('input');
		input.setAttribute('type', 'checkbox');
		input.className = "checkbox";
		input.setAttribute("id", "idCheckPay");
		AddTag (input, fieldset);
		var label = NewTag('label', fieldset);
		label.setAttribute('for', 'idCheckPay');
		NewTextTag(g_Babel.GetWord('UseTolledRoute'), label);
		me.pLanguageSupporter.Add (label, "innerHTML", "UseTolledRoute", "", "");
		NewTag('br', fieldset);

		me.checkPay = input;
		if(me.pRouteSearch.bUseTolledRoute)
			me.checkPay.checked = true;
		AddEvent(me.checkPay, 'click', me.SetPay);

		var input = NewTag ('input');
		input.setAttribute('type', 'checkbox');
		input.className = "checkbox";
		input.setAttribute("id", "idCheckFerry");
		AddTag (input, fieldset);
		var label = NewTag('label', fieldset);
		label.setAttribute('for', 'idCheckFerry');
		NewTextTag(g_Babel.GetWord('UseFerry'), label);
		me.pLanguageSupporter.Add (label, "innerHTML", "UseFerry", "", "");
		NewTag('br', fieldset);

		me.checkFerry = input;
		if(me.pRouteSearch.bUseFerry)
			me.checkFerry.checked = true;
		AddEvent(me.checkFerry, 'click', me.SetFerry);

		var input = NewTag ('input');
		input.setAttribute('type', 'checkbox');
		input.className = "checkbox";
		input.setAttribute("id", "idCheckDirtyRoad");
		AddTag (input, fieldset);
		var label = NewTag('label', fieldset);
		label.setAttribute('for', 'idCheckDirtyRoad');
		NewTextTag(g_Babel.GetWord('UseDirtyRoad'), label);
		me.pLanguageSupporter.Add (label, "innerHTML", "UseDirtyRoad", "", "");
		NewTag('br', fieldset);

		me.checkDirtyRoad = input;
		if(me.pRouteSearch.bUseDirtyRoad)
			me.checkDirtyRoad.checked = true;
		AddEvent(me.checkDirtyRoad, 'click', me.SetDirtyRoad);
	}
	
	this.ShowCarFuelParams = function(divParent)
	{
		// Fogyasztás

		var fieldset = NewTag('fieldset', divParent);
		var div = NewTag('div', fieldset);
		div.style.color = "#999999";
		NewTextTag(g_Babel.GetWord('capFuelPriceHint') + ":", div);
		me.pLanguageSupporter.Add(div, "innerHTML", 'capFuelPriceHint', "", ":");

		//var legend = NewTag('legend', fieldset);
		//NewTextTag(g_Babel.GetWord('capVehicle'), legend);
		//me.pLanguageSupporter.Add (legend, "innerHTML", "capVehicle", "", "");
		var inputbox = new InputBox(fieldset);
		inputbox.tdInput.style.width = "50px";
		var td = inputbox.InsertTd();
		td.style.width = "120px";
		NewTextTag(g_Babel.GetWord('Consumption'), td);
		me.pLanguageSupporter.Add (td, "innerHTML", "Consumption", "", "");
		td = inputbox.AppendTd();
		td.style.width = "40px";
		td.style.paddingLeft = "5px";
		NewTextTag("l/100km", td);

		me.inputConsumption  = inputbox.input;
		if(me.pRouteSearch.dConsumption > 0)
			me.inputConsumption.value = me.pRouteSearch.dConsumption;
		AddEvent(me.inputConsumption, 'change', me.SetConsumption);

		// Üzemanyag ár
		var inputbox = new InputBox(fieldset);
		inputbox.tdInput.style.width = "50px";
		var td = inputbox.InsertTd();
		td.style.width = "120px";
		NewTextTag(g_Babel.GetWord('capPrice'), td);
		me.pLanguageSupporter.Add (td, "innerHTML", "capPrice", "", ":");
		td = inputbox.AppendTd();
		td.style.width = "40px";
		td.style.paddingLeft = "5px";
		NewTextTag("Ft/l", td);
		me.inputFuelPrice  = inputbox.input;
		if(me.pRouteSearch.dFuelPrice > 0)
			me.inputFuelPrice.value = me.pRouteSearch.dFuelPrice;
		AddEvent(me.inputFuelPrice, 'change', me.SetFuelPrice);
	}

	this.ShowBicycleParams = function(divParent)
	{
		var fieldset = NewTag('fieldset', divParent);
		var legend = NewTag('legend', fieldset);
		
		NewTextTag(g_Babel.GetWord('capRoute'), legend);
		me.pLanguageSupporter.Add (legend, "innerHTML", "capRoute", "", "");
		

		var input = NewTag ('input');
		input.setAttribute('type', 'checkbox');
		input.className = "checkbox";
		input.setAttribute("id", "idCheckFerry");
		AddTag (input, fieldset);
		var label = NewTag('label', fieldset);
		label.setAttribute('for', 'idCheckFerry');
		NewTextTag(g_Babel.GetWord('UseFerry'), label);
		me.pLanguageSupporter.Add (label, "innerHTML", "UseFerry", "", "");
		NewTag('br', fieldset);

		me.checkFerry = input;
		if(me.pRouteSearch.bUseFerry)
			me.checkFerry.checked = true;
		AddEvent(me.checkFerry, 'click', me.SetFerry);


		var input = NewTag ('input');
		input.setAttribute('type', 'checkbox');
		input.className = "checkbox";
		input.setAttribute("id", "idCheckDirtyRoad");
		AddTag (input, fieldset);
		var label = NewTag('label', fieldset);
		label.setAttribute('for', 'idCheckDirtyRoad');
		NewTextTag(g_Babel.GetWord('UseDirtyRoad'), label);
		me.pLanguageSupporter.Add (label, "innerHTML", "UseDirtyRoad", "", "");
		NewTag('br', fieldset);

		me.checkDirtyRoad = input;
		if(me.pRouteSearch.bUseDirtyRoad)
			me.checkDirtyRoad.checked = true;
		AddEvent(me.checkDirtyRoad, 'click', me.SetDirtyRoad);
	}

	this.ShowFootParams = function(divParent)
	{
		var fieldset = NewTag('fieldset', divParent);
		var legend = NewTag('legend', fieldset);
		
		NewTextTag(g_Babel.GetWord('capRoute'), legend);
		me.pLanguageSupporter.Add (legend, "innerHTML", "capRoute", "", "");
		

		var input = NewTag ('input');
		input.setAttribute('type', 'checkbox');
		input.className = "checkbox";
		input.setAttribute("id", "idCheckFerry");
		AddTag (input, fieldset);
		var label = NewTag('label', fieldset);
		label.setAttribute('for', 'idCheckFerry');
		NewTextTag(g_Babel.GetWord('UseFerry'), label);
		me.pLanguageSupporter.Add (label, "innerHTML", "UseFerry", "", "");
		NewTag('br', fieldset);

		me.checkFerry = input;
		if(me.pRouteSearch.bUseFerry)
			me.checkFerry.checked = true;
		AddEvent(me.checkFerry, 'click', me.SetFerry);


		var input = NewTag ('input');
		input.setAttribute('type', 'checkbox');
		input.className = "checkbox";
		input.setAttribute("id", "idCheckDirtyRoad");
		AddTag (input, fieldset);
		var label = NewTag('label', fieldset);
		label.setAttribute('for', 'idCheckDirtyRoad');
		NewTextTag(g_Babel.GetWord('UseDirtyRoad'), label);
		me.pLanguageSupporter.Add (label, "innerHTML", "UseDirtyRoad", "", "");
		NewTag('br', fieldset);

		me.checkDirtyRoad = input;
		if(me.pRouteSearch.bUseDirtyRoad)
			me.checkDirtyRoad.checked = true;
		AddEvent(me.checkDirtyRoad, 'click', me.SetDirtyRoad);
	}

	this.ShowTaxiParams = function(divParent)
	{		
		// Fogyasztás

		var fieldset = NewTag('fieldset', divParent);
		var div = NewTag('div', fieldset);
		div.style.color = "#999999";
		NewTextTag(g_Babel.GetWord('capTaxiFeeHint') + ":", div);
		me.pLanguageSupporter.Add(div, "innerHTML", 'capTaxiFeeHint', "", ":");

		//var legend = NewTag('legend', fieldset);
		//NewTextTag(g_Babel.GetWord('capVehicle'), legend);
		//me.pLanguageSupporter.Add (legend, "innerHTML", "capVehicle", "", "");
		var inputbox = new InputBox(fieldset);
		inputbox.tdInput.style.width = "50px";
		var td = inputbox.InsertTd();
		td.style.width = "120px";
		NewTextTag(g_Babel.GetWord('capTaxiFeeBasic'), td);
		me.pLanguageSupporter.Add (td, "innerHTML", "capTaxiFeeBasic", "", "");
		td = inputbox.AppendTd();
		td.style.width = "40px";
		td.style.paddingLeft = "5px";
		NewTextTag("Ft", td);

		me.inputTaxiFeeBasic = inputbox.input;
		if(me.pRouteSearch.dTaxiFeeBasic > 0)
			me.inputTaxiFeeBasic.value = me.pRouteSearch.dTaxiFeeBasic;
		AddEvent(me.inputTaxiFeeBasic, 'change', me.SetTaxiFeeBasic);

		// Üzemanyag ár
		var inputbox = new InputBox(fieldset);
		inputbox.tdInput.style.width = "50px";
		var td = inputbox.InsertTd();
		td.style.width = "120px";
		NewTextTag(g_Babel.GetWord('capTaxiFeeKm'), td);
		me.pLanguageSupporter.Add (td, "innerHTML", "capTaxiFeeKm", "", ":");
		td = inputbox.AppendTd();
		td.style.width = "40px";
		td.style.paddingLeft = "5px";
		NewTextTag("Ft/km", td);
		me.inputTaxiFeeKm  = inputbox.input;
		if(me.pRouteSearch.dTaxiFeeKm> 0)
			me.inputTaxiFeeKm.value = me.pRouteSearch.dTaxiFeeKm;
		AddEvent(me.inputTaxiFeeKm, 'change', me.SetTaxiFeeKm);

	}

	this.ShowProvider = function(tbody, strID, strBabelID, strImgUrl, iImgWidth, iImgHeight)
	{
		var tr = NewTag('tr', tbody);

		var td = NewTag('td', tr);
		td.className = "checkbox";
		var input = NewTag ('input');
		input.setAttribute('type', 'checkbox');
		input.className = "checkbox";
		input.setAttribute("id", strID);
		AddTag (input, td);

		var td = NewTag('td', tr);
		td.className = "UI_text_with_logo";
		
		var label = NewTag('label', td);
		label.setAttribute('for', strID);
		label.setAttribute('id', 'lab'+strID);
		NewTextTag(g_Babel.GetWord(strBabelID), label);
		
		me.pLanguageSupporter.Add (label, "innerHTML", strBabelID, "", "");
		
		var td = NewTag('td', tr);
		var div = NewTag('div', td);
		div.className = "UI_text_with_logo";
		strImgUrl = null;
		if(strImgUrl != null)
		{
			var img =NewTag('img', div);
			img.className = "UI_text_with_logo";
			SetImage(img, strImgUrl, iImgWidth, iImgHeight, g_Babel.GetWord(strBabelID));
		}
		//me.pLanguageSupporter.Add (label, "innerHTML", "UseBKV", "", "");
		return input;

/*
		me.checkBKV = input;
*/
	}
	
	this.ShowPTGetOnVehicleTypes = function(divParent)
	{
		var span = NewTag('span', divParent);
		NewTextTag("Tömegközlekedési megálló megközelítése", span);
		NewTag('br', divParent);
		
		var fieldset = divParent;

		me.arrRadioGetOnTypes = [];
		var CreateRow = function(strInputID, strInputValue, strInputText)
		{
			var input = CreateRadioButton("radioGetOnType", strInputID, strInputValue);
			input.className = "checkbox";
			AddTag(input, fieldset);
			AddEvent(input, 'change', me.SetGetOnType);
			if(me.pRouteSearch.strGetOnType == strInputValue)
				input.checked = true;
			
			var label = NewTag('label', fieldset);
			label.setAttribute('for', strInputID);
			NewTextTag(strInputText, label);
			//NewTextTag(g_Babel.GetWord(strInputText), label);
			//me.pLanguageSupporter.Add (label, "innerHTML", strInputText, "", "");
			NewTag('br', fieldset);
			me.arrRadioGetOnTypes[me.arrRadioGetOnTypes.length] = input;
		}
		CreateRow("idGetOnFoot", "foot", "Gyalog");
		CreateRow("idGetOnBicycle", "bicycle", "Kerékpárral");
		CreateRow("idGetOnCar", "car", "Autóval");
		CreateRow("idGetOnTaxi", "taxi", "Taxival");

	}
	
	this.PTSorter = function(a, b)
	{
		if(a == null && b == null)
			return 0;
		if(a == null)
			return -1;
		if(b == null)
			return 1;
		if(a.nID == 1 && b.nID == 1)
			return 0;
		if(a.nID == 1)
			return -1;
		if(b.nID == 1)
			return 1;
		if(a.strAreaDescription < b.strAreaDescription)
			return -1;
		if(a.strAreaDescription > b.strAreaDescription)
			return 1;
		return 0;
	}

	this.ShowPTServiceProviders = function(divParent)
	{
		/*var span = NewTag('span', divParent);
		NewTextTag(g_Babel.GetWord('capPTServiceProviders'), span);
		me.pLanguageSupporter.Add (span, "innerHTML", "capPTServiceProviders", "", "");*/

		var fieldset = NewTag('fieldset', divParent);
		divParent = fieldset;

		var tbody, iColSpan;
		
		var table1 = NewTag('table', divParent);
		table1.className = "checkbox";
		table1.cellPadding = 0;
		table1.cellSpacing = 0;
		table1.style.width = "100%";
		var tbody = NewTag('tbody', table1);
		
		var tr = NewTag('tr', tbody);
		var td = NewTag('td', tr);
		

		var td = NewTag('td', tr);
		var table = NewTag('table', td);
		table.className = "checkbox";
		table.cellPadding = 0;
		table.cellSpacing = 0;
		table.style.width = "100%";
		var tbody = NewTag('tbody', table);
		me.checkPTTrain = me.ShowProvider(tbody, "idCheckMAV", "ptProviderRailways", "design/ICON_PT_mavstart.png", 105, 29);
		if(me.pRouteSearch.bUsePTTrain)
			me.checkPTTrain.checked = true;
		AddEvent(me.checkPTTrain, 'click', me.SetPTTrain);

		//me.ShowProvider(tbody, "idCheckVolan", "Távolsági busz", "design/ICON_PT_volanbusz.png", 105, 29);
		
		//me.checkPTLocal = me.ShowProvider(tbody, "idCheckBKV", "Városi tömegközlekedés", "design/ICON_PT_bkv.png", 76, 30);
		me.checkPTLocal = me.ShowProvider(tbody, "idCheckBKV", "ptProviderLocalPublicTransport", null, 76, 30);
		if(me.pRouteSearch.bUsePTLocal)
			me.checkPTLocal.checked = true;
		AddEvent(me.checkPTLocal, 'click', me.SetPTLocal);
		
		var td = me.checkPTLocal.parentNode.nextSibling;
		var arrLocals = [];
		for(var i=0; i<g_arrPTServiceProviders.length; i++)
		{
			if(g_arrPTServiceProviders[i] != null && g_arrPTServiceProviders[i].bLocal && g_arrPTServiceProviders[i].strAreaDescription != null && g_arrPTServiceProviders[i].strAreaDescription.length > 0)
			{
				arrLocals[arrLocals.length] = g_arrPTServiceProviders[i];
			}
		}

		arrLocals.sort(me.PTSorter);

		var MakeUl = function(bColSpan) {
			var ul = NewTag('ul', td);
			if(!bColSpan)
			{
				ul.style.cssFloat = "left";
				ul.style.styleFloat = "left";
				ul.style.paddingRight = "2px";
			}
			return ul;
		}

		var bOdd = arrLocals.length % 2 == 1;
		var ul = MakeUl(bOdd);
		for(var i=0; i<arrLocals.length; i++)
		{
			if(bOdd)
			{
				if(i==1 || i== (arrLocals.length + 1)/2)
					ul = MakeUl(false);
			}
			else
			{
				if(i == arrLocals.length / 2)
					ul = MakeUl(false);
			}

			var li = NewTag('li', ul);
			NewTextTag(arrLocals[i].strAreaDescription, li);
		}
		
	}

	this.ShowPTParams = function (divParent)
	{
		me.ShowPTServiceProviders (divParent);
		if(g_InitSettings.iMultiModalVersion == 1)
			me.ShowPTGetOnVehicleTypes (divParent);
	
	/*
		
		me.ShowPTServiceProviders(divParent)
	
		var fieldset = NewTag('fieldset', divParent);
		var legend = NewTag('legend', fieldset);
		NewTextTag(g_Babel.GetWord('capRoute'), legend);
		me.pLanguageSupporter.Add (label, "innerHTML", "capRoute", "", "");

		var input = CreateRadioButton("radioBkvOptim", "idBkvFastestRoute", "0");
		input.className = "checkbox";
		AddTag(input, fieldset);
		AddEvent(input, 'change', me.SetBkvOptim);
		var label = NewTag('label', fieldset);
		label.setAttribute('for', 'idBkvFastestRoute');
		NewTextTag(g_Babel.GetWord('FastestRoute'), label);
		me.pLanguageSupporter.Add (label, "innerHTML", "FastestRoute", "", "");
		NewTag('br', fieldset);
		me.arrRadioBkvOptims[0] = input;

		var input = CreateRadioButton("radioBkvOptim", "idBkvMinimizeChanges", "1");
		input.className = "checkbox";
		AddTag(input, fieldset);
		AddEvent(input, 'change', me.SetBkvOptim);
		var label = NewTag('label', fieldset);
		label.setAttribute('for', 'idBkvMinimizeChanges');
		NewTextTag(g_Babel.GetWord('MinimizeChanges'), label);
		me.pLanguageSupporter.Add (label, "innerHTML", "MinimizeChanges", "", "");
		NewTag('br', fieldset);
		me.arrRadioBkvOptims[1] = input;

		if(me.pRouteSearch.iBkvOptim >= 0 && me.pRouteSearch.iBkvOptim < 2)
			me.arrRadioBkvOptims[me.pRouteSearch.iBkvOptim].checked = true;
			*/
	}

	this.GetCurrentTime = function()
	{
		var date = new Date();
		var strTimePart = "";
		if(date.getHours() < 10)
			strTimePart += "0";
		strTimePart += date.getHours();
		strTimePart += ":";
		if(date.getMinutes() < 10)
			strTimePart += "0";
		strTimePart += date.getMinutes();
		return strTimePart;
	}

	this.GetTrafficTime = function()
	{
		var strTrafficTime = me.inputTrafficTime.value;
		if(me.inputTrafficTime2)
		{
			var strTimePart = me.inputTrafficTime2.value;
			if(strTimePart == null || strTimePart == "" || strTimePart == g_Babel.GetWord('Now'))
			{
				strTimePart = me.GetCurrentTime();
			}
			
			strTrafficTime += " " + strTimePart;
		}
		return strTrafficTime;
	}
	
	



	this.SetTrafficTime = function()
	{
		var strOldTrafficTime = me.pRouteSearch.GetTrafficTime();
		
		me.pRouteSearch.SetTrafficTime(me.GetTrafficTime());
		
		if(strOldTrafficTime != me.pRouteSearch.GetTrafficTime())
		{
			if(me.inputTrafficTime2)
			{
				me.inputTrafficTime.value = me.pRouteSearch.GetTrafficTime().substr(0, 10);
				me.inputTrafficTime2.value = me.pRouteSearch.GetTrafficTime().substr(11);
			}
			else
			{
				me.inputTrafficTime.value = me.pRouteSearch.GetTrafficTime();
			}
			me.OnSettingsChanged();
		}
	}

	this.HideTimeList = function()
	{
		if(me.divTimeList && me.divTimeList.parentNode)
			me.divTimeList.parentNode.removeChild(me.divTimeList);
		me.divTimeList = null;
	}

	this.OnTimeBlur = function()
	{
		//if(!me.bSkipNextBlur)
		{
			me.killTimer = window.setTimeout(me.OnTimeBlurFunc, 250);
		}
		//me.bSkipNextBlur = true;
	}

	this.OnTimeBlurFunc = function()
	{
		me.HideTimeList();
		me.SetTrafficTime();
	}


	this.KillTimer = function()
	{
		//Dump("KillTimer:" + me.killTimer);
		me.bSkipNextBlur = true;
		if(me.killTimer)
		{
			window.clearTimeout(me.killTimer);
			me.killTimer = null;
		}
	}



	this.ShowTimeList = function(input)
	{
		me.HideTimeList();
		input = me.inputTrafficTime2;
		me.divTimeList = NewTag ('div',document.body);
		me.divTimeList.className = "AddressResult";
		me.divTimeList.style.position = "absolute";
		me.divTimeList.style.top = (GetAbsLayerTop(input)+GetLayerHeight(input)) + "px";
		me.divTimeList.style.left = (GetAbsLayerLeft(input)) + "px";
		me.divTimeList.style.width = (GetLayerWidth(input)-1 + 20) + "px";
		AddEvent(me.divTimeList, "focus", me.KillTimer);
		AddEvent(me.divTimeList, "blur", me.OnTimeBlur);
	

		var SetOnClick = function(a, str, i)
		{
			a.onclick = function()
			{
				me.inputTrafficTime2.value = str;
				me.SetTrafficTime();
				me.HideTimeList();
			}
			AddEvent(a, "focus", me.KillTimer);
			/*
			a.onmouseover = function()
			{
				me.SetActive(iAddress, true);
			}
			a.onkeyup = me.OnKeyPress;
			*/

		}

		var iHour=0;
		var str = "";
		var date = new Date();
		var iTop
		var bDisplayedCurrentTime = false;
					
		for(i=-1; i<24; i++)
		{
			a = NewTag('a', me.divTimeList);
			a.setAttribute('href', 'javascript:void(0)');
			a.className = "AddressResult";
			a.style.zIndex = "5";
			if(i==-1)
			{
				str = g_Babel.GetWord("Now");
			}
			else if(bDisplayedCurrentTime)
			{
				str = me.GetCurrentTime();
			}
			else
			{
				if(i<10)
					str = "0" + i +":00";
				else
					str = i + ":00";
			}
			
			SetOnClick(a, str, i);
			NewTextTag(str, a);
			if(bDisplayedCurrentTime)
			{
				iTop = GetLayerTop(a);
			}
			
			if(!bDisplayedCurrentTime &&  date.getHours() == i && date.getMinutes() != 0)
			{
				bDisplayedCurrentTime = true;
				i--;
				continue;
			}
			bDisplayedCurrentTime = false;
		}
		if(GetLayerHeight(me.divTimeList) > 150)
		{
			me.divTimeList.style.height = "150px";
			me.divTimeList.style.overflowY = "scroll";
			me.divTimeList.scrollTop = iTop;
		}

		
	}


	
	this.OnKeyPressTrafficTime = function(pEvent)
	{
		if(pEvent == null)
			pEvent = window.event;
		if(pEvent.keyCode==13)
		{
			me.SetTrafficTime();
		}
	}

	this.SetCarOptim = function()
	{
		for(var i=0; i<me.arrRadioCarOptims.length; i++)
		{
			if(me.arrRadioCarOptims[i] && me.arrRadioCarOptims[i].checked)
			{
				me.pRouteSearch.iCarOptim = i;
				break;
			}
		}
		setCookie('CarOptim', me.pRouteSearch.iCarOptim);
		me.OnSettingsChanged();
	}

	this.SetPay = function()
	{
		me.pRouteSearch.bUseTolledRoute = me.checkPay.checked;
		setCookie('PayCheck', me.pRouteSearch.bUseTolledRoute);
		me.OnSettingsChanged();
	}

	this.SetFerry = function()
	{
		me.pRouteSearch.bUseFerry = me.checkFerry.checked;
		setCookie('FerryCheck', me.pRouteSearch.bUseFerry);
		me.OnSettingsChanged();
	}

	this.SetDirtyRoad = function()
	{
		me.pRouteSearch.bUseDirtyRoad = me.checkDirtyRoad.checked;
		setCookie('DirtyCheck', me.pRouteSearch.bUseDirtyRoad);
		me.OnSettingsChanged();
	}

	this.SetConsumption = function()
	{
		me.pRouteSearch.dConsumption = parseFloat(me.inputConsumption.value);
		me.inputConsumption.value = me.pRouteSearch.dConsumption > 0 ? me.pRouteSearch.dConsumption : "";
		setCookie('Consumption', me.pRouteSearch.dConsumption);
		if(me.pRouteSearch.pRouteResult)
			me.pRouteSearch.pRouteResult.ShowTotal();
	}

	this.SetFuelPrice = function()
	{
		me.pRouteSearch.dFuelPrice = parseFloat(me.inputFuelPrice.value);
		me.inputFuelPrice.value = me.pRouteSearch.dFuelPrice > 0 ? me.pRouteSearch.dFuelPrice : "";
		setCookie('FuelPrice', me.pRouteSearch.dFuelPrice);
		if(me.pRouteSearch.pRouteResult)
			me.pRouteSearch.pRouteResult.ShowTotal();
	}

	this.SetTaxiFeeBasic = function()
	{
		me.pRouteSearch.dTaxiFeeBasic = parseFloat(me.inputTaxiFeeBasic.value);
		me.inputTaxiFeeBasic.value = me.pRouteSearch.dTaxiFeeBasic > 0 ? me.pRouteSearch.dTaxiFeeBasic : "";
		setCookie('TaxiFeeBasic', me.pRouteSearch.dTaxiFeeBasic);
		if(me.pRouteSearch.pRouteResult)
			me.pRouteSearch.pRouteResult.ShowTotal();
	}


	this.SetTaxiFeeKm = function()
	{
		me.pRouteSearch.dTaxiFeeKm = parseFloat(me.inputTaxiFeeKm.value);
		me.inputTaxiFeeKm.value = me.pRouteSearch.dTaxiFeeKm > 0 ? me.pRouteSearch.dTaxiFeeKm : "";
		setCookie('TaxiFeeKm', me.pRouteSearch.dTaxiFeeKm);
		if(me.pRouteSearch.pRouteResult)
			me.pRouteSearch.pRouteResult.ShowTotal();
	}


	this.SetBkvOptim = function(src)
	{
		for(var i=0; i<me.arrRadioBkvOptims.length; i++)
		{
			if(me.arrRadioBkvOptims[i] && me.arrRadioBkvOptims[i].checked)
			{
				me.pRouteSearch.iBkvOptim = i;
				break;
			}
		}
		setCookie('BkvOptim', me.pRouteSearch.iBkvOptim);
		me.OnSettingsChanged();
	}
	
	this.SetPTLocal = function(src)
	{
		me.pRouteSearch.bUsePTLocal = me.checkPTLocal.checked;
		setCookie('UsePTLocal', me.pRouteSearch.bUsePTLocal);
		me.OnSettingsChanged();
	}

	this.SetPTTrain = function(src)
	{
		me.pRouteSearch.bUsePTTrain = me.checkPTTrain.checked;
		setCookie('UsePTTrain', me.pRouteSearch.bUsePTTrain);
		me.OnSettingsChanged();
	}
	
	this.SetGetOnType = function(src)
	{
		var strGetOnType = "foot";
		for(var i=0; i<me.arrRadioGetOnTypes.length; i++)
		{
			if(me.arrRadioGetOnTypes[i] && me.arrRadioGetOnTypes[i].checked)
			{
				strGetOnType = me.arrRadioGetOnTypes[i].value;
				break;
			}
		}
		me.pRouteSearch.strGetOnType = strGetOnType;
		setCookie('GetOnType', strGetOnType);
		me.OnSettingsChanged();
	}

	
	this.OnSettingsChanged = function()
	{
	}

	this.OnChangeLang = function()
	{
		//me.Show();
		me.pLanguageSupporter.Apply();
	}


	g_Babel.AddListener(this.OnChangeLang);

}

