// log.
// ################################x BKB Multimedia 2007-2009 bkbatbkbdothu
// | 2009-10-31
// | nem torolte az elozo pontba tett megallokat es huzigalas utan felajanlotta ezeket a megallokat is
// | gl_startStationIds_Array = []; az initialize functioba betettem es a hova ikon mozgatasara is torli a listat
// DEBUG: ha tul kozel van a start es a stop az azonos megallok problemat okoznak
// DEBUG: ha van utvonal, es elmozditom a stop-ot akkkor nem torli a route polilinet
// DEBUG: az infowindoban a link nem jo helyre mukodik
// ============================================================================
// ============================ GLOBAL VARIABLES ==============================
var map;
var point_markers_honnan = []; //a markerek az indulasi pont koruli megallokhoz
var point_markers_hova = []; //a markerek az erkezesi pont koruli megallokhoz
var subs_array = []; // ez a mapinfo ablakban a legordulo szovegek miatt kell
var gl_start =  ''; //start point format string ; string // az ikon erteke
var gl_stop =  '';  //stop point format string ; string 
var gl_Type_honnan_v_hova = 1; // ha 1 akkor honnan, ha 2 akkor hova
var gl_honnan_mypoliline; // a honnan utca polilineja, hogy lehessen törölni
var gl_hovamypoliline; // a hova polilinet irja ide, hogy lehessen torolni, ha kell
var gl_marker_Honnan; // a hova stop markert irja ide, hogy lehessen torolni az uj kiirasakor
var gl_marker_Hova; // a hova stop markert irja ide, hogy lehessen torolni az uj kiirasakor
var gl_start_stop_poliline = false; // ez a kiindulasi alomast koti ossze az erkezessel 
var globalListenerFlag = false; // hogy a mouseoverre kinyiljon az info window
var gl_center; // hogy visszamenjen a helyere, ha lecsukom az infoWdw-t
var gl_markers = []; // az tatalmazza az osszes megallo (12) markert
var gl_honnan_utca; // az tarolja az utca menubol kivalasztott adatait, hogy visszatalaljon az ikonrol
var gl_hova_utca;
var gl_message_wait = '<img src="info/php/plugins/map_bus/img/downloading.gif" valign="left"> adat letöltése folyamatban'
var gl_testRect = []; // ez csak a munkateruletet hatarolo pontjait tarolja a teszteleshez
var gl_my_poliline_rect;  // ez csak a munkateruletet hatarolo polilinet tarolja a teszteleshez
var gl_my_poliline_rect2; // -||-
var gl_test_Stations = []; // this array gl conatains the markers for the test poligon (rect)
var gl_my_poliline_3szog; // this is the test triangle
var gl_allRoutes = []; // az osszes utvonalat tartalmazza, hogy csak 1 layeren jelenjenek meg
var gl_mutasd_a_kov_2_jaratot = false; // ha ez be van kapcsolva, akkor a hol vagyok ablakban és a térképen a piros megallokban mutatja az elso kovetkezo ke jaratot
var browserName = ""; // a bongeszo neve
var gl_newlat = '';
var gl_newlng = '';
var gl_message = '';
var gl_stop_id = '';
// ============================================================================ 
// === Returns the bearing in degrees between two points. ===
// North = 0, East = 90, South = 180, West = 270.
var degreesPerRadian = 180.0 / Math.PI;
var gl_route_1_Poliline = false; // ez tartalmazza az elso utvonal poliline adatait, hogy lehessen torolni
var gl_route_2_Poliline = false;
var gl_route_1_Markers_Arr = []; // ez tartalmazza az elso utvonal megalloinak adatait, hogy lehessen torolni
var gl_route_1_ArrowIcon_Arr = []; // ez tartalmazza az elso utvonal irany-nyilainak adatait, hogy lehessen torolni
var gl_arrowIcon; // azert kell, hogy betegye az iranymutato haromszogeket
var TheZoom; //used by  animateRouter() function
var TheCenter; //used by  animateRouter() function
var gl_the_timeout;//used by  animateRouter() function
var gl_startStationIds_Array = []; // ha ki vannak jelolve az indulasi allomasok, akkor ezek ; -vel elvalasztva ebben a valtozoban vannak

function showWait_01(){
	deleteTexts();
	var ide_el = document.getElementById('holder_honnan');
	ide_el.style.display = "inline";
	ide_el.innerHTML = gl_message_wait;
}

// ***************************************************************************************
//  elovassa az xmltol kapott valid, vagy invalid idopontokat es behelyettesiti linkekkkel
// a korlatozasok leirasanak lekerdezesehez
function getDescriptionLink(InvalidTime){
					var linStart = '<a href="#" onclick="desc(\'';
					var ttlink = '\')">';
					var linStop = '</a>';				
					InvalidTime = InvalidTime.replace(/ttstart/g, linStart);
					InvalidTime = InvalidTime.replace(/ttlink/g, ttlink);
					InvalidTime = InvalidTime.replace(/ttstop/g, linStop);
					return InvalidTime;
}
// 
// ***************************************************************************************



function get_str_numbers(menu, fromOrWhere, varType){
	
	
	// a menubul kivalasztott str_id alapjan elolvassa a send_numbers.php -bol az
	// utcaban levo hazszamokat es felepiti beloluk a szamok listajat
	// a szamok listajanak .display erteket lathatova teszi
	// fromOrWhere lehet menu_szam_1 vagy menu_szam_2 ha = 1 az menu_szam_1 -be teszi az adatokat
	// ha 2 akkor menu_szam_2 -be 
	// ha a glType = 1 akkor honnan, ha 2 akkor hova
	gl_Type_honnan_v_hova = varType;	
	var blocked = false;
	if(varType == 2){
		if(gl_start == false || gl_start == ''){
			alert('Kérjük egyszer válasszon a Hol vagyok? mezőben kiindulási pontot');
			// mutassa a hol vagyok listat
			show_which_tab('holder_hova', 0);
			show_which_tab('holder_keresek', 0);
			show_which_tab('holder_menetrend', 0);	
			show_which_tab('holder_honnan', 1);	
			document.getElementById('tab1').tabber.tabShow(1);
			
			blocked = true;
		}
	}
	
	if(!blocked){	
		if(menu.value != ''){
			if(gl_Type_honnan_v_hova == 1){
				// reset globals
				gl_stop = false;
				// point_markers_honnan = []; 
				// point_markers_hova = []; 
				// gl_start_stop_poliline = false;
				// gl_hovamypoliline; 								
				// gl_center;			
				// gl_marker_Hova; 
				// gl_honnan_utca; 
				// gl_hova_utca;
				gl_start =  '';			
				subs_array = []; 
				deleteAllMarkers();				
				// mutassa a kozeli megallokat a bal oldali mezoben
				// showWait_01();
			}
			if(gl_Type_honnan_v_hova == 2){
				// mutassa a kettes_tab mezot
				show_which_tab('kettes_tab', 1);
			}
			// a menubul kivalasztott str_id alapjan elolvassa  php-bol az
			// utcaban levo hazszamokat es felepiti beloluk a szamok listajat
			// a szamok listajanak .display erteket lathatova teszi
			var str_id = menu.value;
			var url = "info/php/plugins/map_bus/lib/send_numbers.php?str_id="+str_id;
			CDownloadUrl('get', url, function(text){
				var elSel = document.getElementById(fromOrWhere);
				elSel.style.display = 'none';
				// document.getElementById('test').innerHTML = text;
				// alert(text);	
				if(text != ''){
					var array_Szamok = text.split("|");
					
					// var elSel = document.getElementById(fromOrWhere);
					for (i = elSel.length - 1; i>=0; i--) {
						elSel.remove(i);
					}	
					// ==============================================
					var elOptNew = document.createElement('option');
					elOptNew.text = 'Házszám';
					elOptNew.value = '';
					try {
						elSel.add(elOptNew, null); // standards compliant; doesn't work in IE
					}
					catch(ex) {
						elSel.add(elOptNew); // IE only
					}
					// ==============================================
					for (i in array_Szamok){
						var szam = array_Szamok[i];
						var szamArray = szam.split(";");
						if(szam != ''){
							var elOptNew = document.createElement('option');
							elOptNew.text = szamArray[0];
							elOptNew.value = szamArray[1]+';'+szamArray[2] ;
							try {
								elSel.add(elOptNew, null); // standards compliant; doesn't work in IE
							}
							catch(ex) {
								elSel.add(elOptNew); // IE only
							}
						}
					}
					elSel.style.display = 'inline';
					if(fromOrWhere == 'menu_szam_1'){
						elSel2 = document.getElementById('container_honnan');
						elSel2.style.display = 'inline';
					}
					if(fromOrWhere == 'menu_szam_2'){
						elSel2 = document.getElementById('container_hova');
						elSel2.style.display = 'inline';
					}
				}
			});	
			
			// 
			// a hova utcak listat (menu_str_2) az 0-ra azaz utcakra kell allitania
			if(fromOrWhere == 'menu_szam_1'){		
				var selObj = document.getElementById('menu_str_2');			
				selObj.selectedIndex = 0;
			}
			
			// elSel_menu_str_2.options[0].selected =
			// elSel_menu_str_2.style.display = 'inline';
			
			// az utca googleMap geokodja
			GetStrGeocode(str_id, varType);		
			// az utca polilineja
			GetStrPoliline(str_id, varType);
			
		}
	}
	// initialize();
	// alert('uj_Global_honnanPoint '+uj_Global_honnanPoint);
	// alert('gl_honnan_utca '+gl_honnan_utca);	
	
}
// ===============================================================================================
function GetStrGeocode(str_id, varType){
	url = "info/php/plugins/map_bus/lib/send_str_main_geocode.php?str_id="+str_id;		
	CDownloadUrl('get', url, function(text){		
		if(varType == 1){
			document.getElementById('Global_honnanPoint').value = text;
			// uj_Global_honnanPoint = text;
			gl_honnan_utca = text;
		}
		if(varType == 2){
			document.getElementById('Global_hovaPoint').value = text;
			// uj_Global_hovaPoint = text;
			gl_hova_utca = text;
		}
		
	});
	
	
}
// ===============================================================================================
function GetStrPoliline(str_id, varType){	
	var url = "info/php/plugins/map_bus/lib/send_str_geocodes.php?str_id="+str_id; 
	// window.open(url, "blank");
	CDownloadUrl('get', url, function(text) {
	// GDownloadUrl(url, function(text){
			if(varType == 1){
				document.getElementById('Global_honnanUtca').value = text;
				// uj_Global_honnanUtca = text;				
				initialize();
			}
			if(varType == 2){
				document.getElementById('Global_hovaUtca').value = text;
				// uj_Global_hovaUtca = text;
				initialize_hova();
			}
	});
	
}
// 
// ===============================================================================================
// ===============================================================================================
// a honnan szam mezobol kuldi az adatokat 

function set_Map_to_Strnum_honnan(menu){	
	// a hova utcak listat (menu_str_2) az 0-ra azaz utcakra kell allitania
	var selObj = document.getElementById('menu_str_2');			
	selObj.selectedIndex = 0;
	// ----------------------------
	var element = document.getElementById('Global_honnanUtca');	
	element.value = 'NULL';
	
	// uj_Global_honnanUtca = false;
	gl_start = menu.value;	
	gl_Type_honnan_v_hova = 1;
	gl_stop = false;	
	initialize();	
}

function set_Map_to_Strnum_hova(menu){
	// alert(menu.value);
	var element = document.getElementById('Global_hovaUtca');
	element.value = 'NULL';
	gl_stop = menu.value;	
	initialize_hova();
}
// 
// 

function initialize() {	
	if (GBrowserIsCompatible()) {
		gl_startStationIds_Array = [];
		// lezarja a hova utca szamokat,
		// hogy az utcara kelljen kattintani
		deleteStopMarkersandStrPoli();
		elSel2 = document.getElementById('container_hova');
		elSel2.style.display = 'none';
	
		gl_markers = []; // az tatalmazza az osszes megallo (12) markert
		var data = document.getElementById('Global_honnanUtca').value;
		var honnanPoint = document.getElementById('Global_honnanPoint').value
		// alert('uj_Global_honnanUtca  :'+uj_Global_honnanUtca );
		// var data = uj_Global_honnanUtca;
		// var honnanPoint = uj_Global_honnanPoint;		
		// alert('honnanPoint '+ honnanPoint);		
		var array_Sor = data.split(";");
		// ===== Start with an empty GLatLngBounds object =====     
		// var bounds = new GLatLngBounds();
		if(data != 'NULL'){
			// alert('initialize data :' +data);
			var Poliline_points = [] ;
			for (var i = 0; i < array_Sor.length-1; ++i) {
				var sor = array_Sor[i];
				if(sor != ' '){
					var array_adat = sor.split("|");
					// ArrPoints_exist[i]=array_adat[1]+';'+array_adat[2]+';'+array_adat[0];
					lat = parseFloat(array_adat[1]);
					lng = parseFloat(array_adat[2]);
					// alert('lat '+lat);				
					var this_point = new GLatLng(lat,lng);
					// alert(this_point);
					Poliline_points.push(this_point);
					// bounds.extend(point);				
				}
			}
			var color = "#F6DC01";
			var weight = 10;
			var opacity = 0.8;
			// alert(Poliline_points);		
			// anyja picsaja az ie 6-nak - mert a kovetkezo sor igy nem mukodott
			// dolgoztam rajta 3 orat, ameddig megtalaltam a hibat
			// map.addOverlay( new GPolyline( Poliline_points, color, width, weight ) ) ;
			if(gl_honnan_mypoliline){
				map.removeOverlay(gl_honnan_mypoliline);
			}			
			gl_honnan_mypoliline =  new GPolyline(Poliline_points, color, weight, opacity);
			map.addOverlay(gl_honnan_mypoliline);
		}
		// ===== determine the zoom level from the bounds =====		
		// map.setZoom(map.getBoundsZoomLevel(bounds));

		// ===== determine the centre from the bounds ======
		// map.setCenter(bounds.getCenter());
		
		// ============ add moveable marker default street ===============
		var honnanPointArr;
		if(data != 'NULL'){
			honnanPointArr = honnanPoint.split(";");			
		}else{
			// alert('gl_start :' + gl_start);
			honnanPointArr = gl_start.split(";");			
		}
		def_lat = honnanPointArr[0];
		def_lng = honnanPointArr[1];
		var defpoint = new GLatLng(def_lat,def_lng);
		
		var baseIcon = new GIcon(); 
		baseIcon.iconSize=new GSize(32,50);
		baseIcon.shadowSize=new GSize(56,32);
		baseIcon.iconAnchor=new GPoint(16,50);
		baseIcon.infoWindowAnchor=new GPoint(16,0);
		//var pushpin = new GIcon(baseIcon, "http://maps.google.com/mapfiles/kml/pal5/icon14.png", null, "http://maps.google.com/mapfiles/kml/pal5/icon14s.png");
		var pushpin = new GIcon(baseIcon, "http://szfvar.com/info/php/plugins/map_bus/img/start_map.png", null, "http://maps.google.com/mapfiles/kml/pal5/icon14s.png");
		// var marker = new GMarker(defpoint, pushpin, {draggable: true});
		// ha már volt akkor torolje
		if(gl_marker_Honnan){
			map.removeOverlay(gl_marker_Honnan);
		}
		gl_marker_Honnan = new GMarker(defpoint, {draggable:true, icon:pushpin});		
		map.addOverlay(gl_marker_Honnan);
		/* GEvent.addListener(marker, "dragstart", function() {					
		}); */
		
		GEvent.addListener(gl_marker_Honnan, "dragend", function() {
			var p = gl_marker_Honnan.getPoint();
			p = p.toString();
			//marker.openInfoWindowHtml("Just bouncing along..."+p );
			// var myArr=p.split(",");
			// ha elengedem a markert, akkor ez fog tortenni
			gl_startStationIds_Array = [];
			// 
			var myArr=p.split(",");			
			gl_Type_honnan_v_hova = 2;
			var lat=myArr[0].toString();
			lat=lat.replace("(", "");
			var lng=myArr[1].toString();
			lng=lng.replace(")", "");
			
			// alert(lat+";"+lng);
			gl_start = lat+";"+lng;
			gl_Type_honnan_v_hova = 1;
			// ha a stopot huzigalja, akkor ne mutassa az indulo allomasok mezojet
			var DontShow = false;
			if(gl_stop != ""){
				DontShow = true;
			}
			// ha a stoppot huzigalja törölje az utca polilinejat
			if(gl_honnan_mypoliline){
				map.removeOverlay(gl_honnan_mypoliline);
				gl_honnan_mypoliline = false;				
			}
			// ha van osszekoto a hova allomasig, azt is torolje
			if(gl_start_stop_poliline){
				map.removeOverlay(gl_start_stop_poliline);
				gl_start_stop_poliline = false;
			}
			// mutassa a varakozas jelet
			if(gl_stop){
				deleteTexts();
				// var myEl =  document.getElementById('holder_hova');
				// csak a hova_megyek tab -ot mutassa
				showDivForData();
			}			
			showNearbyStations(p, DontShow);
		});
		// mutassa a kozeli megallokat
		var arrHonnan;
		if(data != 'NULL'){
			var honnan = document.getElementById('Global_honnanPoint').value;
			// var honnan = uj_Global_honnanPoint;
			arrHonnan = honnan.split(";");
			p = '('+arrHonnan[0]+','+arrHonnan[1]+')';
		}else{			
			// alert('gl_start :' + gl_start);
			arrHonnan = gl_start.split(";");	
			p = '('+arrHonnan[0]+','+arrHonnan[1]+')';
		}	
		showNearbyStations(p);
		//  set the global gl_start
		Glat = parseFloat(arrHonnan[0]);
		Glng =  parseFloat(arrHonnan[1]);			
		var point = new GLatLng(Glat,Glng);
		gl_start = Glat+';'+Glng;
		// 
		// showNearbyStations(p);
		// alert(gl_start);
		// GoToRouter();		
		
	}
}

// 
function showDivForData(){
	// mutatja az adatmazot, a tobbi mezot elrejti
	show_which_tab('holder_honnan', 0);
	show_which_tab('holder_keresek', 0);
	show_which_tab('holder_menetrend', 0);
	document.getElementById('tab1').tabber.tabShow(1);
	document.getElementById('kettes_tab').tabber.tabShow(0);	
	document.getElementById('tab_data').innerHTML =  gl_message_wait;

}
//  
function initialize_hova() {
	// alert('gl_stop :' + gl_stop);
	if (GBrowserIsCompatible()) {
		 deleteStopMarkersandStrPoli();
				
		var data = document.getElementById('Global_hovaUtca').value;
		var honnanPoint = document.getElementById('Global_hovaPoint').value
		// alert('data :' +data+'\n honnanPoint :'+honnanPoint);
		var array_Sor = data.split(";");
		// ===== Start with an empty GLatLngBounds object =====     
		// var bounds = new GLatLngBounds();
		if(data != 'NULL'){			
			// alert('data:' +data);			
			var Poliline_points = [] ;
			for (var i = 0; i < array_Sor.length-1; ++i) {
				var sor = array_Sor[i];
				if(sor != ' '){
					var array_adat = sor.split("|");
					// ArrPoints_exist[i]=array_adat[1]+';'+array_adat[2]+';'+array_adat[0];
					lat = parseFloat(array_adat[1]);
					lng = parseFloat(array_adat[2]);
					// alert('lat '+lat);				
					var this_point = new GLatLng(lat,lng);
					// alert(this_point);
					Poliline_points.push(this_point);
					// bounds.extend(point);				
				}
			}
			var color = "#F6DC01";
			var weight = 10;
			var opacity = 0.8;
			// alert(Poliline_points);		
			// ************************************************************************
			// ************************************************************************
			// anyja picsaja az ie 6-nak - mert a kovetkezo sor igy nem mukodott
			// dolgoztam rajta 3 orat, ameddig megtalaltam a hibat
			// map.addOverlay( new GPolyline( Poliline_points, color, width, weight ) ) ;
			// ************************************************************************
			// ************************************************************************
			// 
			// ha van elozo poliline, akkor torolje
			if(gl_hovamypoliline){
				map.removeOverlay(gl_hovamypoliline);
			}
			gl_hovamypoliline =  new GPolyline(Poliline_points, color, weight, opacity );
			map.addOverlay(gl_hovamypoliline);
		}
		// ===== determine the zoom level from the bounds =====		
		// map.setZoom(map.getBoundsZoomLevel(bounds));

		// ===== determine the centre from the bounds =========
		// map.setCenter(bounds.getCenter());
		
		// ============ add moveable marker default street ===============
		
		var honnanPointArr;
		if(data != 'NULL'){
			// ha nincs kijelolve hazszam
			honnanPointArr = honnanPoint.split(";");			
		}else{
			// alert('gl_stop :' + gl_stop);
			honnanPointArr = gl_stop.split(";");			
		}
		def_lat = honnanPointArr[0];
		def_lng = honnanPointArr[1];
		var defpoint = new GLatLng(def_lat,def_lng);
		
		var baseIcon = new GIcon(); 
		baseIcon.iconSize=new GSize(32,50);
		baseIcon.shadowSize=new GSize(56,32);
		baseIcon.iconAnchor=new GPoint(16,50);
		baseIcon.infoWindowAnchor=new GPoint(16,0);
		//var pushpin = new GIcon(baseIcon, "http://maps.google.com/mapfiles/kml/pal5/icon14.png", null, "http://maps.google.com/mapfiles/kml/pal5/icon14s.png");
		var pushpin = new GIcon(baseIcon, "http://szfvar.com/info/php/plugins/map_bus/img/stop_map.png", null, "http://maps.google.com/mapfiles/kml/pal5/icon14s.png");
		if(gl_marker_Hova){			
			map.removeOverlay(gl_marker_Hova);
		}
		
		gl_marker_Hova = new GMarker(defpoint, {draggable:true, icon:pushpin});
		
		map.addOverlay(gl_marker_Hova);
		/* GEvent.addListener(marker, "dragstart", function() {					
		}); */
		
		GEvent.addListener(gl_marker_Hova, "dragend", function() {
			// ha elengedem a markert, akkor ez fog tortenni
			//marker.openInfoWindowHtml("Just bouncing along..."+p );
			var p = gl_marker_Hova.getPoint();
			p = p.toString();
			
			var myArr=p.split(",");			
			gl_Type_honnan_v_hova = 2;
			var lat=myArr[0].toString();
			lat=lat.replace("(", "");
			var lng=myArr[1].toString();
			lng=lng.replace(")", "");
			
			// alert(lat+";"+lng);
			gl_stop = lat+";"+lng;
			// gl_start_stop_poliline torlese
			
			// ha a stoppot huzigalja törölje az utca polilinejat
			if(gl_hovamypoliline){
				map.removeOverlay(gl_hovamypoliline);
				gl_hovamypoliline = false;				
			}
			// ha van osszekoto a hova allomasig, azt is torolje
			if(gl_start_stop_poliline){
				map.removeOverlay(gl_start_stop_poliline);
				gl_start_stop_poliline = false;
			}
			// mutassa a varakozas jelet
			if(gl_stop){
				deleteTexts();
				 showDivForData();
			}			
			showNearbyStations(p);	
			
		});
		// mutassa a kozeli megallokat
		var p;
		if(data != 'NULL'){
			var honnan = document.getElementById('Global_hovaPoint').value;	
			// var honnan = uj_Global_hovaPoint;
			arrHonnan = honnan.split(";");
			p = '('+arrHonnan[0]+','+arrHonnan[1]+')';
		}else{			
			// alert('gl_start :' + gl_start);
			arrHonnan = gl_stop.split(";");	
			p = '('+arrHonnan[0]+','+arrHonnan[1]+')';
		}
		// showNearbyStations(p);
		//  set the global gl_start
		Glat = parseFloat(arrHonnan[0]);
		Glng =  parseFloat(arrHonnan[1]);			
		var point = new GLatLng(Glat,Glng);
		gl_stop = Glat+';'+Glng;
		
		showNearbyStations(p);
		// alert(gl_start);
		// GoToRouter();
	}
}
// 
// 
function showNearbyStations(ami, DontShow){
	// alert('gl_Type_honnan_v_hova:'+gl_Type_honnan_v_hova);	
	// alert('point_markers_honnan :'+point_markers_honnan.length);
	deleteAllMarkers();
	// alert('ami: '+ ami);	
	// olvassa le a kozeli megallok pontjait
	pHany = 6;
	var myArr=ami.split(",");
	var lat=myArr[0].toString();
	lat=lat.replace("(", "");
	var lng=myArr[1].toString();
	lng=lng.replace(")", "");
	// !ok! var url = "info/php/plugins/map_bus/lib/send_numbers.php?str_id=2";
	var url = "info/php/plugins/map_bus/lib/send_nearby_station_data.php?lat="+lat+"&lng="+lng+"&hany="+pHany;
	// window.open(url, "blank");
	// alert('url: '+url);
	GDownloadUrl(url, function(data){	
	// CDownloadUrl('get', url, function(data){
		// alert(data);
		// alert('uj_Global_NearbyStationXml: ' +uj_Global_NearbyStationXml);
		var bo = [];		
		var xml = GXml.parse(data);	 
		// var markers = xml.documentElement.getElementsByTagName("marker");
		var markers = xml.documentElement.getElementsByTagName("marker");
		
		var points = [ ] ;
		var str_osszesAdtat = '<h3>A közelben levő megállók járatai</h3>'+
		'Az útvonaltervezésnél csak a jobb oldali jelölő négyzettel '+
		'megjelölt megállókat veszi figyelembe. '+
		'Rákattintással jelölheti ki a kívánt megállót (megállókat). ';
		for (var i = 0; i < markers.length; i++) {
			var stationName = markers[i].getAttribute("stationname");
			var station_id = markers[i].getAttribute("station_id");
			var station_id_lat = markers[i].getAttribute("lat");
			var station_id_lng = markers[i].getAttribute("lng");
			var distance = markers[i].getAttribute("distance");
			var station_id2 = "_"+station_id;
			// alert('station_id2 :'+station_id2);
			var ArrJaratok = xml.documentElement.getElementsByTagName(station_id2);
			var adatok =  "";
			var adatok2 = "";
			// adatok += '<div><span class="station_name">'+stationName + "</span> - "+distance+" <small>("+station_id+")</small></div>";
			adatok += '<div><span class="station_name">'+stationName + "</span> - <small>"+distance+"</small></div>";
			
			MainsubName = 'Mainsub'+i;
			subs_array.push(MainsubName);
			
			var a_link = ' <a href="#maptop" title="'+station_id+'" onclick="SetMapCenter(\''+station_id_lat+'\',\''+station_id_lng+'\',\''+stationName+'\',\''+station_id+'\')">';
			var handCursor = '<img src="info/php/plugins/map_bus/img/map_bus_12.gif" border="0" align="absbottom"> '
			// // 
			adatok2 += '<table class="egyeb" width="100%"><tr><td class="stationNameDiv">'
			// adatok2 += '<div class="stationNameDiv">';
			// 
			adatok2 += '<span class="station_name_1">';
			adatok2 += a_link + handCursor + stationName + "</a>";			
			adatok2 += '</span>';
			// 
			adatok2 += '<span class="station_name">';
			adatok2 += '<img src="info/php/plugins/map_bus/img/walk_anim.gif" border="0" align="absbottom" title="Távolság a megállóig"> ';
			adatok2 += distance
			adatok2 += '</span>';
			// 
			/* adatok2 += '<span class="station_name">';
			adatok2 += '('+station_id+')';
			adatok2 += '</span>'; */
			
			adatok2 += '<span class="reszletek">';
			adatok2 +='<a href="javascript:void(0)" onClick="displaySubs(\''+MainsubName+'\')" onFocus="if(this.blur)this.blur()">';
			adatok2 += 'Részletek<img src="info/php/plugins/map_bus/img/arrows_le.gif" border="no"> </a>';			
			adatok2 += '</span>';
			// 
			// 
			adatok2 += '<span class="">';
			var nincsvalasztas = true;
			if(nincsvalasztas){			
				// adatok2 +='<a href="javascript:void(0)" onClick="setupThisStation(\''+station_id+'\')" onmouseover="return overlib(\'Csak a(z) <b>'+stationName+'</b> megállóból induló járatokat mutassa\',WIDTH,300,CAPTION,\'Súgó\');" onmouseout="return nd();" >';
				adatok2 +='<a href="javascript:void(0)" onClick="setupThisStation(\''+station_id+'\')" >';
				adatok2 += '<input id="ch_box_'+station_id+'" value="'+station_id+'" checked="checked" type="checkbox">';
				adatok2 += '</a>';
				gl_startStationIds_Array.push(station_id);			
			}
			adatok2 += '</span>';
			//
			// adatok2 += '</div>'; // end  stationNameDiv
			adatok2 += '</td></tr>'
			
			
			adatok2 += '<tr><td>'
			
			/* adatok2 += '<span class="reszletek">'
			adatok2 +='<a href="javascript:void(0)" onClick="displaySubs(\''+MainsubName+'\')" onFocus="if(this.blur)this.blur()">';
			adatok2 += 'Részletek<img src="info/php/plugins/map_bus/img/arrows_le.gif" border="no"> </a>';
			adatok2 += '</span>' */
			
			adatok2 += '<div class="para"  id="'+MainsubName+'" style="display:none">'
			
			
				
			var line_date = '';
			for(var j = 0; j < ArrJaratok.length; j++) {
				
				var jaratneve = ArrJaratok[j].getAttribute("line_Name");
				var kovjarat= ArrJaratok[j].getAttribute("next_few_startTimes");
				var InvalidTime = ArrJaratok[j].getAttribute("Invalid_Times");	
				var validTime = ArrJaratok[j].getAttribute("Valid_Times");	
				var line_id = ArrJaratok[j].getAttribute("line_id");
				var PlusTime = ArrJaratok[j].getAttribute("PlusTime");
				// var th_station_id = ArrJaratok[j].getAttribute("station_id");
				var url = 'http://www.albavolan.hu/esa/index.php?doc_id=18&city_id=1&line_id='+line_id;
				// var urlUtvonal = "info/php/plugins/map_bus/xml_router_jarat.php?line_id="+line_id;
				var urlUtvonal = "alba.php?line_id="+line_id;
				if(kovjarat != ''){
					kovjarat = getDescriptionLink(kovjarat);
					// alert('kovjarat:'+kovjarat);
					kovjaratArray = kovjarat.split("|");
					kovjarat = kovjaratArray[0]+"<br>"+kovjaratArray[1]
				}
				
				InvalidTime = getDescriptionLink(InvalidTime);	
				validTime = getDescriptionLink(validTime);	
				
				// url = URLEncode(url);
				// var subs_array = new Array("sub1","sub2","sub3");// Put the id's of your hidden divs in this array
				// 
				// ez megy a terkepen a reszletes adatokhoz az infowidowban 
				subName = 'sub'+i+j;
				subs_array.push(subName);
				
				adatok += '<div class="infoWdwTitle">'+jaratneve+'</div>';
				
				adatok += '<div class="infoWdwText">';
				adatok += '<table border="0"><tr>';
				adatok += '<td class="infoWdwText">';	
				if(gl_mutasd_a_kov_2_jaratot){
					adatok += kovjarat;
				}
				adatok += '</td>';
				
				adatok += '<td class="egyeb">';
				adatok += '<a href="javascript:void(0)" class="headings" onClick="displaySubs(\''+subName+'\')" onFocus="if(this.blur)this.blur()";>';
				adatok += '<strong>Időpontok</strong><img src="info/php/plugins/map_bus/img/arrows_le.gif" border="no"> </a>';
				adatok += '</td>';
				
				adatok += '<td class="egyeb">';
				// adatok += '<td class="line_id_td">';
				adatok += '<a href="'+url+'" target="_blank">Menetrend</a>';				
				adatok += '</td>';
				// 
				adatok += '<td class="egyeb">';				
				adatok +='<a href="#" onclick="openMyWindow(\''+urlUtvonal+'\')";>Útvonal</a>'
				adatok += '</td>';
				// 
				// var sugo = 'Ez az időpont az indulástól a megllóba való érkezésig eltelt idő.<br>';
				// sugo += 'A táblázatban az adatok már tartalmazzák ezt az időt, tehát ';
				// sugo += 'a megállóba való érkezés idejét mutatjuk';
				// var link = '<a href="#maptop" onmouseout="return nd();" onmouseover="return overlib(\''+sugo+'\',200,300,CAPTION,\'Súgó\');">';
				// link += '<img src="admin_img/help.png" align="absmiddle" border="0"></a>';
				var link = "";
				adatok += '<td class="egyeb">';
				adatok += '(+'+PlusTime.substring(3,5)+link+')';				
				adatok += '</td>';
				// 
				adatok += '</tr>';
				
				adatok += '<tr><td colspan="5" >';
				
				adatok += '<div class="para"  id="'+subName+'" style="display:none">'
				adatok += '<table class="tabl_message"><tr><td class="invalid">'+InvalidTime+'</td></tr>'
				adatok += '<tr><td class="valid">'+validTime+'</td></tr>'
				adatok += '<tr><td class="message">A megállóba való érkezési időpontok <b>tájékoztató jellegűek</b>, a forgalomnak megfelelően módosulhatnak</td></tr>'
				adatok += '</table>'		
				adatok += '</div>'
				
				adatok += '</td></tr></table>';		
				
				adatok +='</div>'
				// ***************************************************************************************
				// ez megy a bal oldali mezobe
				
				
				subName2 = 'subA'+i+j;
				subs_array.push(subName2);
				
				adatok2 += '<div class="infoWdwTitle">'+jaratneve+'</div>';
				
				adatok2 += '<div class="infoWdwText">';
				adatok2 += '<table border="0" width="100%"><tr>';
				// 1
				adatok2 += '<td class="infoWdwText" width="120px">';
				if(gl_mutasd_a_kov_2_jaratot){
					adatok2 += kovjarat;
				}				
				adatok2 += '</td>';
				// 2
				adatok2 += '<td class="egyeb" width="70px">';
				adatok2 += '<a href="javascript:void(0)" class="headings" onClick="displaySubs(\''+subName2+'\')" onFocus="if(this.blur)this.blur()";>';
				adatok2 += '<strong>Időpontok</strong><img src="info/php/plugins/map_bus/img/arrows_le.gif" border="no"> </a>';
				adatok2 += '</td>';
				// 3
				adatok2 += '<td class="egyeb" width="70px">';				
				adatok2 += '<a href="'+url+'" target="_blank">Menetrend</a>';				
				adatok2 += '</td>';
				// 4
				adatok2 += '<td class="egyeb" width="50px">';						
				adatok2 += '<span class="egyeb">'
				adatok2 +='<a href="#" onclick="openMyWindow(\''+urlUtvonal+'\')";>Útvonal</a>'
				adatok2 += '</span>'	
				adatok2 += '</td>';	
				// 
				var sugo = 'Ez az időtartam a végállomásról való indulástól a megállóba való érkezésig eltelt idő.<br>';
				sugo += 'A táblázatban az adatok már tartalmazzák ezt az időt, tehát ';
				sugo += 'a megállóba való érkezés időpontját mutatjuk';
				var link = '<a href="#maptop" onmouseout="return nd();" onmouseover="return overlib(\''+sugo+'\',200,300,CAPTION,\'Súgó\');">';
				link += '<img src="admin_img/help.png" align="absmiddle" border="0"></a>';
				adatok2 += '<td class="egyeb">';
				adatok2 += '(+'+PlusTime.substring(3,5)+link+')';				
				adatok2 += '</td>';
				// 
				adatok2 += '</tr>';
				// 
				adatok2 += '<tr><td colspan="5" >';
				
				adatok2 += '<div class="para"  id="'+subName2+'" style="display:none">'
				
				adatok2 += '<table class="tabl_message"><tr><td class="invalid">'+InvalidTime+'</td></tr>'				
				adatok2 += '<tr><td class="valid">'+validTime+'</td></tr>'				
				adatok2 += '<tr><td class="message">A megállóba való érkezési időpontok <b>tájékoztató jellegűek</b>, a forgalomnak megfelelően módosulhatnak</td></tr>'
				adatok2 += '</table>';
				adatok2 += '</div>';
				// 
				adatok2 += '</td></tr></table>';		
				
				adatok2 +='</div>'
				
				// 
			}			
			adatok += '<hr>';
			
			// adatok2 += '('+station_id+')';
			adatok2 += '</div>'; // end para
			adatok2 += '</td></tr></table>'
			
			// adatok2 += '<hr>';
			str_osszesAdtat += adatok2;
			var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng")));
			// var counter = 0;
			// if(gl_Type_honnan_v_hova == 2){
				 // counter = 6;
			// }
			// var hanyadik = i+counter;
			// alert('hanyadik :'+hanyadik);
			var point_marker = createPointMarker(point, false, adatok, stationName, station_id, "red");
			// gl_markers[hanyadik] = point_marker;
			gl_markers.push(point_marker);
			
			map.addOverlay(point_marker);
			if(gl_Type_honnan_v_hova == 1){	
				point_markers_honnan.push(point_marker);
			}
			if(gl_Type_honnan_v_hova == 2){	
				point_markers_hova.push(point_marker);
			}
			bo.push(point);	
		}		
		
		// mutassa a kozeli megallokat a bal oldali mezoben
		// alert('DontShow :'+DontShow);
		if(!DontShow){
			if(gl_Type_honnan_v_hova == 1){	
				// ugorjon ide
				var ide_el = document.getElementById('holder_honnan');
				// ide_el.style.display = "inline";
				ide_el.innerHTML = str_osszesAdtat;				
			}
		}
		/* Fri Mar 07 17:08:51 CET 2008 @714 /Internet Time/
		// inkabb ugorjon ide, ha a stop-startot mozgatta
		if(gl_Type_honnan_v_hova == 2){	
			// alert('itt vagyok');
			var ide_el = document.getElementById('holder_honnan');
			ide_el.style.display = "none";
		}
		*/
		
		setmapPosition(bo);
	}); //end gdownload
	// }
	// request.send(null);
	// }
	
}


function openMyWindow(url){
	// alert(url);
	window.open(url, 'ablak', 'width=1000,height=620,left='+(screen.availWidth/2-400)+',top='+(screen.availHeight/2-300)+'');
}
// 
// 
// elolvassa a bo arrayt escape kozepre rendezi a terkepet
function setmapPosition(bo){	
	if(gl_start_stop_poliline){
		map.removeOverlay(gl_start_stop_poliline);
	}
	// alert('bo :'.bo);
	var bounds = new GLatLngBounds();
	if(gl_Type_honnan_v_hova == 1){
		for (var i = 0; i < bo.length-1; ++i) {
			point = bo[i];		
			// alert ('setmapPosition(bo): '+i+" - "+point);
			bounds.extend(point);			
		}
		
		
		if(!gl_start){
			var honnan = document.getElementById('Global_honnanPoint').value;
			// alert('honnan :'+honnan);
			// // var honnan = uj_Global_hovaPoint;
			var arrHonnan = honnan.split(";");
			// 
			var lat = parseFloat(arrHonnan[0]);
			var lng =  parseFloat(arrHonnan[1]);			
			var start_point = new GLatLng(lat,lng);
			bounds.extend(start_point); 
		}else{
			// alert('gl_start :'+gl_start);
			// + adja hozza a start ikon poziciojat
			var ez = gl_start;
			ezarray = ez.split(";");
			lat = ezarray[0];
			lng = ezarray[1];
			var start_point = new GLatLng(lat,lng);
			bounds.extend(start_point); 
		} 
	}
	 
	// alert('gl_stop: '+gl_stop);
	// ha a hova adat kell, akkor tegye be az osszekoto line-t is
	if(gl_stop){
		// if(gl_start_stop_poliline){
			// map.removeOverlay(gl_start_stop_poliline);
		// } 
		// alert("gl_start: "+gl_start+ " gl_stop:"+gl_stop);
		var arr_gl_start = gl_start.split(";");
		var arr_gl_stop = gl_stop.split(";");
		var point_gl_start = new GLatLng(parseFloat(arr_gl_start[0]), parseFloat(arr_gl_start[1]));
		var point_gl_stop = new GLatLng(parseFloat(arr_gl_stop[0]), parseFloat(arr_gl_stop[1]));
		// point_gl_start = parseFloat(point_gl_start);
		// point_gl_stop = parseFloat(point_gl_stop);
		bounds.extend(point_gl_start);
		bounds.extend(point_gl_stop);
		var red_Poliline_points = [] ;
		red_Poliline_points.push(point_gl_start);
		red_Poliline_points.push(point_gl_stop);		
		// var icolor = "#ff0000";
		// var iweight = 5;
		// var iopacity = 0.8;
		// gl_start_stop_poliline =  new GPolyline(red_Poliline_points, icolor, iweight, iopacity);
		gl_start_stop_poliline =  new GPolyline(red_Poliline_points);
		map.addOverlay(gl_start_stop_poliline);
		// gl_start_stop_poliline = poli;
	}
	
	// alert('map.getBoundsZoomLevel(bounds) :'+map.getBoundsZoomLevel(bounds));
	// alert('bounds.getCenter() :'+bounds.getCenter());
	map.setZoom(map.getBoundsZoomLevel(bounds));
	// ===== determine the centre from the bounds ======	
	map.setCenter(bounds.getCenter()); 


	// setup_map();
	GoToRouter();
	
}
// 
// 
// 
// Deletes all the markers for the points in the polyline
function deleteAllMarkers() {
	// teszteleshez
	if(gl_my_poliline_rect){
			map.removeOverlay(gl_my_poliline_rect); 
	}
	if(gl_my_poliline_rect2){
			map.removeOverlay(gl_my_poliline_rect2); 
	}
	if(gl_my_poliline_3szog){
			map.removeOverlay(gl_my_poliline_3szog); 
	}	
	if(gl_test_Stations){
		for (i=0;i<gl_test_Stations.length;i++){
			var pMarker = gl_test_Stations[i];
			map.removeOverlay(pMarker);
		}
		gl_test_Stations = [];
	}		
		
	deleteTexts();
	// alert('deleteAllMarkers :'+point_markers_honnan.length);
	if(gl_Type_honnan_v_hova == 1){	
		// remove the start marker
		// if(gl_marker_Honnan){
			// map.removeOverlay(gl_marker_Honnan);
		// }		
		for(var i = 0; i < point_markers_honnan.length; ++i) {
			map.removeOverlay(point_markers_honnan[i]);
		}
		point_markers_honnan = [];		
	}
	
	if(gl_Type_honnan_v_hova == 2){	
		for(var i = 0; i < point_markers_hova.length; ++i) {
			map.removeOverlay(point_markers_hova[i]);
		}
		point_markers_hova = [];		
	}
	deleteRoute_1();
	
}

function deleteStopMarkersandStrPoli(){
	if(point_markers_hova){
		for(var i = 0; i < point_markers_hova.length; ++i) {
			map.removeOverlay(point_markers_hova[i]);
		}
	}
	
	point_markers_hova = [];
	if(gl_hovamypoliline){
		map.removeOverlay(gl_hovamypoliline);
	} 
	if(gl_marker_Hova){
		map.removeOverlay(gl_marker_Hova);
	}
	deleteRoute_1();

}
// 
// 
// 
// Creates a marker representing a point in the polyline.
function createPointMarker(point, highlighted, adatok, stationName, station_id, red) {	
	var clr = highlighted ? "yellow" : "blue";
	var point_marker = createMarker(point, clr, stationName, red);	
	// point_marker.enableDragging();
	var kiiras = adatok;
	GEvent.addListener(point_marker, "click", function() {
		globalListenerFlag = true;
		point_marker.openInfoWindowHtml(kiiras);
		gl_center = map.getCenter();
	});
	/* // Tue Apr 01 22:45:07 CEST 2008 @906 /Internet Time/
	// ezt a mouseoverestet ki kell venni a vegleges valtozatbol
	GEvent.addListener(point_marker, 'mouseover', function() {
		if(!globalListenerFlag){			
			// var message = stationName+' - <small><b>'+station_id+'</b></small><hr>';
			var message = stationName+'<br>';
			message += '<small><small>részletekért kattintson a megállóra </a></small></small>'
			point_marker.openInfoWindowHtml(message);
		}
	}); 
	 */
	GEvent.addListener(point_marker, 'infowindowclose', function() {
		globalListenerFlag = false;
		if(gl_center){
			map.setCenter(gl_center);
			gl_center = false;
		}
	});
	
	/* GEvent.addListener(point_marker, 'infowindowopen', function() {
		gl_center = map.getCenter();
	}); */
	// 
	/* GEvent.addListener(point_marker, "click", function() {
	    // highlight(findMarkerIndex(point_marker));
	}); */

  return point_marker;
}
// 
// 
// 
function createMarker(point, color, neve, red) {
  var f = new GIcon();
  /* f.image = "http://labs.google.com/ridefinder/images/mm_20_" + color + ".png";
  f.iconSize = new GSize(12,20);
  f.shadowSize = new GSize(22,20);
  f.iconAnchor = new GPoint(6,20);
  f.infoWindowAnchor = new GPoint(6,1);
  f.infoShadowAnchor = new GPoint(13,13); */
  
  if(red=="red"){
	   f.image = "http://szfvar.com/info/php/plugins/map_bus/img/bus_red.gif";
  }else{
	  f.image = "http://szfvar.com/info/php/plugins/map_bus/img/bus.gif";
  }
  
  // f.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
  f.iconSize = new GSize(20,50);
  // f.shadowSize = new GSize(22,50);
  f.iconAnchor = new GPoint(10,50);
  f.infoWindowAnchor = new GPoint(10,1);
  f.infoShadowAnchor = new GPoint(19,13);

  // newMarker = new GMarker(point, {icon: f, draggable: false});
  var newMarker = new GMarker(point, {icon: f, draggable: false, title: neve});
  return newMarker;
}
// 
// 
// 
function read_info_from_glMarkers(){
	var el_holder = document.getElementById('stop_id_holder'); 
	if(el_holder != null){		
		stop_id = el_holder.value;		
		var el = document.getElementById(stop_id);
		if( el != null){
			var lat =  el.getAttribute('p1')
			var lng =  el.getAttribute('p2')
			alert ("A kiválasztott állomás betöltése ..." );
			var el_holder_name = document.getElementById('stop_name_holder'); 
			var stop_name = '';
			if( el_holder_name != null){
				stop_name = el_holder_name.value; 
				stop_name = URLDecode(stop_name);
			}
			SetMapCenter(lat, lng, stop_name, stop_id);
		}
		// el.innerHTML = retStr;
	}
}

// ===============================================================================================
// 
function removeOptionSelected(pname){
	var elSel = document.getElementById(pname);
	var i;
	for (i = elSel.length - 1; i>=0; i--) {
		// if (elSel.options[i].selected ) {
		elSel.remove(i);
		// }
	}
}
// 
// ===============================================================================================
// 
function appendOptionLast(num)
// http://www.mredkj.com/tutorials/tutorial005.html
{
  var elOptNew = document.createElement('option');
  elOptNew.text = 'Append' + num;
  elOptNew.value = 'append' + num;
  var elSel = document.getElementById('selectX');

  try {
    elSel.add(elOptNew, null); // standards compliant; doesn't work in IE
  }
  catch(ex) {
    elSel.add(elOptNew); // IE only
  }
}


// ===============================================================================
// ===============================================================================
// ===============================================================================

/* 
* this function is for easy drop down container
* http://javascript.internet.com/css/easy-drop-down-container.html
*/
var doit = true
function showm(ob,pict) {
  if(doit) {
    document.getElementById(ob).style.height = '125'
    document.getElementById(pict).src = 'admin_img/arrowl.gif'
    doit = false
  }
  else {
    document.getElementById(ob).style.height = '18'
    document.getElementById(pict).src = 'admin_img/arrowd.gif'
    doit = true
  }
}


// ====================================================================
//       URLEncode and URLDecode functions
//
// Copyright Albion Research Ltd. 2002
// http://www.albionresearch.com/
//
// You may copy these functions providing that 
// (a) you leave this copyright notice intact, and 
// (b) if you use these functions on a publicly accessible
//     web site you include a credit somewhere on the web site 
//     with a link back to http://www.albionresearch.com/
//
// If you find or fix any bugs, please let us know at albionresearch.com
//
// SpecialThanks to Neelesh Thakur for being the first to
// report a bug in URLDecode() - now fixed 2003-02-19.
// And thanks to everyone else who has provided comments and suggestions.
// http://www.albionresearch.com/misc/urlencode.php
// ====================================================================
function URLEncode(plaintext){
	// The Javascript escape and unescape functions do not correspond
	// with what browsers actually do...
	var SAFECHARS = "0123456789" +					// Numeric
					"ABCDEFGHIJKLMNOPQRSTUVWXYZ" +	// Alphabetic
					"abcdefghijklmnopqrstuvwxyz" +
					"-_.!~*'()";					// RFC2396 Mark characters
	var HEX = "0123456789ABCDEF";

	// var plaintext = document.URLForm.F1.value;
	var encoded = "";
	for (var i = 0; i < plaintext.length; i++ ) {
		var ch = plaintext.charAt(i);
	    if (ch == " ") {
		    encoded += "+";				// x-www-urlencoded, rather than %20
		} else if (SAFECHARS.indexOf(ch) != -1) {
		    encoded += ch;
		} else {
		    var charCode = ch.charCodeAt(0);
			if (charCode > 255) {
			    alert( "Unicode Character '" 
                        + ch 
                        + "' cannot be encoded using standard URL encoding.\n" +
				          "(URL encoding only supports 8-bit characters.)\n" +
						  "A space (+) will be substituted." );
				encoded += "+";
			} else {
				encoded += "%";
				encoded += HEX.charAt((charCode >> 4) & 0xF);
				encoded += HEX.charAt(charCode & 0xF);
			}
		}
	} // for

	// document.URLForm.F2.value = encoded;
	return encoded;
}

function URLDecode(encoded){
   // Replace + with ' '
   // Replace %xx with equivalent character
   // Put [ERROR] in output if %xx is invalid.
   var HEXCHARS = "0123456789ABCDEFabcdef"; 
   // var encoded = document.URLForm.F2.value;
   var plaintext = "";
   var i = 0;
   while (i < encoded.length) {
       var ch = encoded.charAt(i);
	   if (ch == "+") {
	       plaintext += " ";
		   i++;
	   } else if (ch == "%") {
			if (i < (encoded.length-2) 
					&& HEXCHARS.indexOf(encoded.charAt(i+1)) != -1 
					&& HEXCHARS.indexOf(encoded.charAt(i+2)) != -1 ) {
				plaintext += unescape( encoded.substr(i,3) );
				i += 3;
			} else {
				alert( 'Bad escape combination near ...' + encoded.substr(i) );
				plaintext += "%[ERROR]";
				i++;
			}
		} else {
		   plaintext += ch;
		   i++;
		}
	} // while
   // document.URLForm.F1.value = plaintext;
   // return false;
   return plaintext;
}


function GoToRouter(forced){	
	// forced csakakkor van bekapcs, ha kotezeoen kell mutassa az atszallasokat is
	var dat = document.getElementById('date');
	var timeFr = document.getElementById('menu_time_from');
	var timeFrom = timeFr.value;
	var timeT = document.getElementById('menu_time_to');
	var timeTo = timeT.value;
	// TODO: alapbeallitasban 4 ora legyen az idointervallum
	// alert('dat:'+dat.value);
	var url = 'info/php/plugins/map_bus/lib/mainrouter.php?honnan='+gl_start+'&hova='+gl_stop+'&d='+dat.value+'&tf='+timeFrom+'&tt='+timeTo+'&st='+gl_startStationIds_Array;
	if(forced == '1'){
		 url = 'info/php/plugins/map_bus/lib/mainrouter.php?honnan='+gl_start+'&hova='+gl_stop+'&forced=1'+'&d='+dat.value+'&tf='+timeFrom+'&tt='+timeTo+'&st='+gl_startStationIds_Array;
	}
	// window.open(url, "blank");	
	// var myEl =  document.getElementById('kettes_tab');	
	var myEl =  document.getElementById('holder_hova');	
	document.getElementById('kettes_tab').tabber.tabShow(0);	
	if (gl_start  && gl_stop){
		// window.open(url, "blank");
		myEl.style.display = "inline";
		// window.open(url, 'ablak', 'width=1000,height=620,left='+(screen.availWidth/2-400)+',top='+(screen.availHeight/2-300)+'');
		// letolteni a php kimenetet
		// CDownloadUrl(method, url, func)
		// 
		// window.open(url, 'ablak');	
		deleteTexts();
		document.getElementById('tab_data').innerHTML =  gl_message_wait;
		CDownloadUrl('get', url, function(text) {
			// a textet fel kell torni 
			var dataArray = text.split("||");
			document.getElementById('tab_data').innerHTML = dataArray[0];
			document.getElementById('tab_direct').innerHTML = dataArray[1];
			document.getElementById('tab_atszallas').innerHTML = dataArray[2];
			document.getElementById('tab_atszallas_seta').innerHTML = dataArray[3];
			document.getElementById('tab_stat').innerHTML = dataArray[4];
			// 
			document.getElementById('tab_data_prof').innerHTML = dataArray[5];
			var test = document.getElementById('test');			
			if(test){
				if(test.checked){
					document.getElementById('tab_data_prof').innerHTML = dataArray[5];
					// ==================================================================
					// ez mutatja a megallokat a szamunkra hasznos teruleten belul
					// kikapcsolva 	az echo $megallo_pontok; a mainrouter.php-ben
					var megallo_pontok = dataArray[5];
					var megallo_pontokArray = megallo_pontok.split(";");
					for (i=0;i<megallo_pontokArray.length;i++){
						var P = megallo_pontokArray[i];
						var Parray = P.split('xx');
						var pLat = Parray[0];  
						var pLng = Parray[1];
						var pId = Parray[2];
						// // // // // // // // 
						var defpoint = new GLatLng(pLat,pLng);				
						marker_stop = new GMarker(defpoint, {draggable:false});
						gl_test_Stations.push(marker_stop);
						map.addOverlay(marker_stop);					
						// GEvent.addListener(marker_stop, "click", function() {
							// alert('ok');
							// alert('pId: '+pId);
						// });				
					}
				}				
			}
			
			
		});		
		// 
		var test = document.getElementById('test');
		if(test){
			if(test.checked){ 
				drawWorkRect();
			}
		}
		// tesztelni a keresesi mezot		 
	}else{
		// document.getElementById('kettes_tab').tabber.tabShow(2);
		myEl.style.display = "none";
	}
	
}

// *****************************************************************************
// *****************************************************************************
// * csak teszteleshez mutatja a negyzetet, amiben keresunk 
// *****************************************************************************
// *****************************************************************************
function drawWorkRect(){
	                        
		var bounds = new GLatLngBounds();
		for (i=0;i<gl_markers.length;i++){
			myPoint = gl_markers[i].getPoint();
			bounds.extend(myPoint);
		}
		
		if(gl_my_poliline_rect){
			map.removeOverlay(gl_my_poliline_rect); 
		}
		// alert('bounds: '+bounds);
		p1 = bounds.getSouthWest();
		p2 = bounds.getNorthEast();
		
		// alert('p1'+ p1.toString() );
		p1 =  p1.toString();
		p1 = p1.replace('(','');
		p1 = p1.replace(')','');
		var p1Arr = p1.split(",");
		var p1_Lat = parseFloat(p1Arr[0]);  
		var p1_Lng = parseFloat(p1Arr[1]);
		// 
		p2 = p2.toString();
		p2 = p2.replace('(','');
		p2 = p2.replace(')','');
		var p2Arr = p2.split(",");
		var p2_Lat = parseFloat(p2Arr[0]);  
		var p2_Lng = parseFloat(p2Arr[1]);
		// alert ('p1_Lat p1_Lng p2_Lat p2_Lng '+p1_Lat+'-'+p1_Lng+'-'+ p2_Lat+'-'+ p2_Lng);
		var p1_uj = new GLatLng(p1_Lat, p1_Lng) ; //SW
		var p2_uj = new GLatLng(p1_Lat, p2_Lng) ;
		var p3_uj = new GLatLng(p2_Lat, p2_Lng) ;
		var p4_uj = new GLatLng(p2_Lat, p1_Lng) ;
			                                 
		// var this_point = new GLatLng(lat,lng);
		// alert(this_point);
		// Poliline_points.push(this_point);
		
		Poliline_rect = [];
		Poliline_rect.push(p1_uj);
		Poliline_rect.push(p2_uj);
		Poliline_rect.push(p3_uj);
		Poliline_rect.push(p4_uj);
		Poliline_rect.push(p1_uj);
		
		var color = "#ff0000";			
		var width = 2;
		var weight = 1;
		gl_my_poliline_rect = new GPolyline(Poliline_rect, color, width, weight )
		                                         
		map.addOverlay(gl_my_poliline_rect); 
		
		// alert('span: '+bounds.toSpan());
		
		// *************************************************************
		// *************************************************************
		// var w = 0;
		var span  = bounds.toSpan();
		span  = span.toString();
		span = span.replace('(','');
		span = span.replace(')','');
		var spanArr = span.split(",");
		var span_Lat = parseFloat(spanArr[0]);  
		var span_Lng = parseFloat(spanArr[1]);
		
		var magassag = span_Lat*2;
		var szelesseg = span_Lng;
		// szelesseg = Math.abs(szelesseg);
		// 
		var ujmagassag;
		var ujszelesseg;
		var novekedes = 1.2;
		
		
		if(magassag > szelesseg){
			// allo
			var arany = parseFloat(magassag/szelesseg);
			ujmagassag = parseFloat(magassag * (novekedes/2) );
			// ujszelesseg = szelesseg + (novekedes/2)*magassag*arany; // peresztegi		
			novekedes = novekedes * arany;
			ujszelesseg = parseFloat(szelesseg * novekedes );
			// ujszelesseg = szelesseg + ujmagassag*arany;
			
		}else{
			// fekvo
			var arany = parseFloat(szelesseg/magassag);
			ujszelesseg = parseFloat(szelesseg * novekedes);
			novekedes = parseFloat( (novekedes/2) * arany);
			ujmagassag = parseFloat(magassag * novekedes);
		}
		
		// alert('m: '+magassag+' sz: '+szelesseg +'\n arany:'+ arany+' nov: '+novekedes+'\n uj_m: '+ujmagassag+'\n uj_sz: '+ujszelesseg);
		// ujszelesseg = szelesseg * novekedes * arany;
		
		
		// R = r + 1,1*h*(H/R)
		var center = bounds.getCenter();
		// alert ("center :"+center);
		center =  center.toString();
		center = center.replace('(','');
		center = center.replace(')','');
		var centerArr = center.split(",");
		var center_Lat = parseFloat(centerArr[0]);  
		var center_Lng = parseFloat(centerArr[1]);
		
		// alert("m: "+magassag+" sz: "+szelesseg);
		var To= center_Lat + parseFloat(ujmagassag/2);
		var Bo= center_Lat - parseFloat(ujmagassag/2);		
		var Le= center_Lng - parseFloat(ujszelesseg/2);
		var Ri= center_Lng + parseFloat(ujszelesseg/2);
		// 
		// alert(L+' - '+ B)
		var p1_uj2 = new GLatLng(Bo, Le); 
		var p2_uj2 = new GLatLng(To, Le);
		var p3_uj2 = new GLatLng(To, Ri);
		var p4_uj2 = new GLatLng(Bo, Ri);
		// 
		Poliline_rect2 = [];
		Poliline_rect2.push(p1_uj2); //bal alul
		Poliline_rect2.push(p2_uj2); //bal felul
		Poliline_rect2.push(p3_uj2); //jobb felul
		Poliline_rect2.push(p4_uj2); // jobb alul
		Poliline_rect2.push(p1_uj2);
		
		var color = "#0000ff";			
		var width = 1;
		var weight = 1;
		gl_my_poliline_rect2 = new GPolyline(Poliline_rect2, color, width, weight )		
		map.addOverlay(gl_my_poliline_rect2);
		
		// ------------------- HAROMSZOG --------------------
		
		var kozpont_lat = 47.188531304856;  
		var kozpont_lng = 18.409223556518555;
		var p_kozpont = new GLatLng(kozpont_lat, kozpont_lng); 
		// megkeresem a kozpontnak a sarkoktol valo tavlsagat
		var tavArray = [];
		var tavArrayAll = [];
		// var d1 = p_kozpont.distanceFrom(p1_uj2);	
		for (i=1;i<5;i++){
			var name = 'p'+i+'_uj2';			
			// alert('name. '+name);
			name = eval(name);
			var d = p_kozpont.distanceFrom(name)/1000;
			// alert('name. '+name+' d:'+d);   			
			tavArray.push(d);			
			var tmparr = new Array(d,name);
			tavArrayAll.push(tmparr);
		}
		tavArray.sort();
		var HaromszKetpont = [];
		for (i=0;i<tavArray.length;i++){
			var d = tavArray[i];
			// alert(i+' d: '+d);
			for (j=0;j<tavArrayAll.length;j++){
				var d2 = tavArrayAll[j][0];
				if(d == d2){
					// alert(i+' d: '+d+' tavArrayAll[j][1]: '+tavArrayAll[j][1] );
					// alert('tavArrayAll[j][1]: '+tavArrayAll[j][1]);
					HaromszKetpont.push(tavArrayAll[j][1]);
					break;
				}
			}			
		} 
		// mikor van 1 haromszog?
		// 1 ha a tetete es az alja kozott van a kozeppont_lat
		// 2 ha a bal_old es a jobb_old kozott van a kozeppont_lng
		// ha nem akkor 2 haromszog van
		// 0 ha a negyzeten belul van
		var hanyharomszog = 2;
		if( Bo < kozpont_lat && To > kozpont_lat ){
			hanyharomszog = 1;
		}
		if( Le < kozpont_lng && Ri > kozpont_lng ){		
			hanyharomszog = 1;
		}
		//center is inside
		if(  Bo < kozpont_lat && To > kozpont_lat && Le < kozpont_lng && Ri > kozpont_lng){
			hanyharomszog = 0;
		}		
		// alert('hanyharomszog: '+hanyharomszog);
		
		
		// hiba javitva terkep15.png ha fekvo es a szelessege nagy, akkor megtortenik,
		// hogy a masodik pont a negyzet teteje, (kozelebb van), mint a jobb oldali alja
		// ha fekvo a teglaplap  és 1 3szog van, 
		// akkor a háromszog mindket pontja ua-zon az 1enesen kell legyen
		// ha az elso pont lat-ja azonos a kovetk pont lat-val akkor az lesz a 2.ik pont
		// akkor menjen tovabb
		// ha folotte vagy alatta van
		if(Bo > kozpont_lat || To < kozpont_lat ){
			if(hanyharomszog == 1){
				var elso_lat ='';
				var HaromszKetpont_ujrend = [];
				for (i=0;i<HaromszKetpont.length;i++){
					var myPoint = HaromszKetpont[i];
					// alert('point: '+point);
					myPoint = myPoint.toString();		
					myPoint = myPoint.replace('(','');
					myPoint = myPoint.replace(')','');
					var myPointArr = myPoint.split(",");
					var myPointLat = parseFloat(myPointArr[0]);  
					var myPointLng = parseFloat(myPointArr[1]);								
					if(i == 0){
						HaromszKetpont_ujrend.push(myPoint);
						elso_lat = myPointLat;						
					}
					 else{
						if(myPointLat == elso_lat){
							HaromszKetpont_ujrend.push(myPoint);
						}
					}
					
				}
				HaromszKetpont = [];
				HaromszKetpont = HaromszKetpont_ujrend;
			}
		}
		// 
		var haromsz_kiiras = '';
		if(hanyharomszog > 0){
			Poliline_haromszog = [];		
			for (i=0;i<hanyharomszog+1;i++){
				var myPoint = HaromszKetpont[i];
				// alert('point: '+point);
				myPoint = myPoint.toString();		
				myPoint = myPoint.replace('(','');
				myPoint = myPoint.replace(')','');
				var myPointArr = myPoint.split(",");
				var myPointLat = parseFloat(myPointArr[0]);  
				var myPointLng = parseFloat(myPointArr[1]);
				// 			
				pont = new GLatLng(myPointLat, myPointLng);
				// Poliline_rect2.push(pont);
				// Poliline_rect2.push(p_kozpont);
				// ======================================
				Poliline_haromszog.push(pont);				
				Poliline_haromszog.push(p_kozpont);
				haromsz_kiiras += 'p: '+pont.toString();
				haromsz_kiiras += '<br>';
				// haromsz_kiiras += 'k: '+p_kozpont.toString();
				// haromsz_kiiras += '<br>';
				// lassuk
				// marker_stop = new GMarker(pont);
				// gl_test_Stations.push(marker_stop);
				// map.addOverlay(marker_stop);			
			} 
			
			
					// 
			gl_my_poliline_3szog = new GPolyline(Poliline_haromszog, color, width, weight )
			map.addOverlay(gl_my_poliline_3szog);
		}
		
		bounds.extend(p_kozpont);
		bounds.extend(p1_uj2);
		bounds.extend(p2_uj2);
		bounds.extend(p3_uj2);
		bounds.extend(p4_uj2);	
		
		
		var center = bounds.getCenter();		
		map.setCenter(center);
		map.setZoom(map.getBoundsZoomLevel(bounds));
		
		
		
		
		// ----------KIIRAS-----------
		var myTEXT_vf = '';		
		myTEXT_vf += 'x_min_bal: '+ Bo + "<br>";
		myTEXT_vf += 'x_max_teteje: '+ To + "<br>";
		myTEXT_vf += 'y_min_teteje: '+ Le + "<br>";
		myTEXT_vf += 'y_max_alja: ' + Ri + "<br>";
		myTEXT_vf += '<hr>';
		myTEXT_vf += 'c-js: '+ center+'<br>';
		myTEXT_vf += 'magassag: '+ magassag+'<br>';
		myTEXT_vf += 'szelesseg: '+ szelesseg+'<br>';
		myTEXT_vf += 'test_rect_magassag: '+ ujmagassag+'<br>';
		myTEXT_vf += 'test_rect_szelesseg: '+ ujszelesseg+'<br>';
		myTEXT_vf += '<hr>';
		myTEXT_vf += 'haromszogek';
		myTEXT_vf += '<hr>';
		myTEXT_vf += haromsz_kiiras;
		
		// var myTextEl = document.getElementById("tab_vf");
		var myTextEl = document.getElementById("tab_data_prof");
		var pretext =  myTextEl.innerHTML;
		myTEXT_vf = pretext+'<hr>'+myTEXT_vf ;
		myTextEl.innerHTML = myTEXT_vf;
		
		

}


// *****************************************************************************
// *****************************************************************************
// * ez elolvassa az adatokat es beallitja az elso erteknek megfelleo utvonalat 
// *****************************************************************************
// *****************************************************************************
function setMapRouterToFirtsValue(){
	// document.getElementById('Global_hovaUtca').value;
	var getElement = document.getElementById('gl_transit');
	if(getElement){
		var vTipus =  getElement.value;
	}
	
	// alert('vTipus = '+vTipus);
}



// *********************** sets the center of map to this point ****************
function SetMapCenter(newlat, newlng, message, stop_id){
	// TheZoom = map.getZoom();
	// alert(newlat+';'+newlng);
	var newpoint = new GLatLng(newlat, newlng);
	map.setZoom(17);
	map.setCenter(newpoint);	
	map.closeInfoWindow();
	// map.addOverlay(new GMarker(map.getCenter()));
	// map.addOverlay(new GMarker(newpoint));	
	// var infWDWD = map.getInfoWindow();
	// infWDWD.reset(newpoint);
	// gl_markers[2].openInfoWindowHtml(newlat+';'+newlng);
	/* for (var i = 0; i < gl_markers.length; i++) {
		gl_markers[i].closeInfoWindow();
	} */
	// 2008-01-22 message = URLDecode(message);
	
	// message = '<small>'+message+'</small> - <b><small><small>'+stop_id+'</small></small></b><br>';
	message = '<small>'+message+'</small><br>';
	message += '<small><small>részletekért kattintson a megállóra</small></small>';
	message += '<div><span>';
	message += '<a href="#" onclick="mail_stop_id(\''+stop_id+'\')">';  
	message += '<img src="http://szfvar.com/info/php/plugins/map_bus/img/mail.png" align="middle" border="0" title="Küldje el a megálló címét emailben" > ';
	message += '</a>';
	message += '</span></div>';	
	// alert('gl_markers.length :'+ gl_markers.length);
	// ha az utolso szam 0 akkor vegye le
	// levenni a zarojeleket es a vesszot
	// alert ('gl_markers.length' + gl_markers.length);
	for (var i = 0; i < gl_markers.length; i++) {
		myPoint = gl_markers[i].getPoint();
		// alert(myPoint+" - "+newpoint);
		myPoint = myPoint.toString();		
		myPoint = myPoint.replace('(','');
		myPoint = myPoint.replace(')','');
		var myPointArr = myPoint.split(",");
		var myPointLat = parseFloat(myPointArr[0]);  
		var myPointLng = parseFloat(myPointArr[1]);
		// ------------------------------
		newpoint = newpoint.toString();
		newpoint = newpoint.replace('(','');
		newpoint = newpoint.replace(')','');
		var newpointArr = newpoint.split(",");
		var newpointLat = parseFloat(newpointArr[0]);  
		var newpointLng = parseFloat(newpointArr[1]);
		if(myPointLat == newpointLat && myPointLng == newpointLng){
			gl_markers[i].openInfoWindowHtml(message);
			break;
		}		
	}
	if(gl_route_1_Markers_Arr.length > 0){
		for (var i = 0; i < gl_route_1_Markers_Arr.length; i++) {
			myPoint = gl_route_1_Markers_Arr[i].getPoint();
			// alert(myPoint+" - "+newpoint);
			myPoint = myPoint.toString();		
			myPoint = myPoint.replace('(','');
			myPoint = myPoint.replace(')','');
			var myPointArr = myPoint.split(",");
			var myPointLat = parseFloat(myPointArr[0]);  
			var myPointLng = parseFloat(myPointArr[1]);
			// ------------------------------
			newpoint = newpoint.toString();
			newpoint = newpoint.replace('(','');
			newpoint = newpoint.replace(')','');
			var newpointArr = newpoint.split(",");
			var newpointLat = parseFloat(newpointArr[0]);  
			var newpointLng = parseFloat(newpointArr[1]);
			if(myPointLat == newpointLat && myPointLng == newpointLng){
				gl_route_1_Markers_Arr[i].openInfoWindowHtml(message);
				break;
			}
		}
		
	}
	
}


function StartStreetCenter(){
	var array_Sor = gl_honnan_utca.split(";");
	var newlat = array_Sor[0];
	var newlng = array_Sor[1];
	var newpoint = new GLatLng(newlat, newlng);
	map.setZoom(17);
	map.setCenter(newpoint);	
	map.closeInfoWindow();
	// alert(gl_honnan_utca);	

}

function StopStreetCenter(){
	var array_Sor = gl_hova_utca.split(";");
	var newlat = array_Sor[0];
	var newlng = array_Sor[1];
	var newpoint = new GLatLng(newlat, newlng);
	map.setZoom(17);
	map.setCenter(newpoint);	
	map.closeInfoWindow();
	// alert(gl_honnan_utca);	

}

function ShowFullCity(){
	// var center = new GLatLng(47.18730637081123, 18.410940170288086);
	// map.setCenter(center, 15);
	var newpoint = new GLatLng(47.190179088205035, 18.416004180908203);
	map.setZoom(13);
	map.setCenter(newpoint);
	
}

function CenterMapToStartIco() {
	var array_Sor = gl_start.split(";");
	var newlat = array_Sor[0];
	var newlng = array_Sor[1];
	var newpoint = new GLatLng(newlat, newlng);
	map.setZoom(17);
	map.setCenter(newpoint);	
	map.closeInfoWindow();
}

function CenterMapToStopIco(){
	var array_Sor = gl_stop.split(";");
	var newlat = array_Sor[0];
	var newlng = array_Sor[1];
	var newpoint = new GLatLng(newlat, newlng);
	map.setZoom(17);
	map.setCenter(newpoint);	
	map.closeInfoWindow();
}

// 

function setup_map(){	
	map = new GMap2(document.getElementById("map_canvas"));
	var center = new GLatLng(47.18730637081123, 18.410940170288086);
	map.setCenter(center, 15);
	map.addControl(new GLargeMapControl());
	map.addControl(new GMapTypeControl());	
	// verify_browser();
}
// 
function displaySubs_loadRouter(the_sub, mit, route_nr, from, to, allSubs,
	indulasiIdo, 
	honnan_Megalloig, 
	hova_MegalloTol,
	direct_mylineNameSend){


	// 
	var ide_el = document.getElementById(the_sub);
	ide_el.innerHTML = gl_message_wait;	
	displaySubs(the_sub, allSubs);
	// 
	loadRouter(mit, route_nr, from, to);
	
	// 
	url = 'info/php/plugins/map_bus/lib/return_reszletek.php?Jarat_id='+mit+
	'&route_nr='+route_nr+
	'&ST_kod='+from+
	'&ST2_kod='+to+
	'&indulasiIdo='+indulasiIdo+
	'&honnan_Megalloig='+honnan_Megalloig+
	'&hova_MegalloTol='+hova_MegalloTol+
	'&direct_mylineNameSend='+direct_mylineNameSend;
	CDownloadUrl('get', url, function(text) {
			// a textet fel kell torni 
			// var dataArray = text.split("||");
			// document.getElementById('tab_data').innerHTML = text;
			ide_el.innerHTML = text;
		}); 
	
	
}

// 
function displaySubs_loadRouter_2(the_sub, allSubs, 
	Jarat_id, 
	route_nr, 
	ST_kod, 
	ST2_kod, 
	indulasiIdo, 
	honnan_Megalloig, 
	hova_MegalloTol,
	direct_mylineNameSend,
	Jarat_id_2, 
	route_nr_2, 
	ST_kod_2, 
	ST2_kod_2, 
	indulasiIdo_2, 
	honnan_Megalloig_2, 
	hova_MegalloTol_2,
	direct_mylineNameSend_2,
	dubleStation){

	// load_Reszletek(Jarat_id, route_nr, ST_kod, ST2_kod,	indulasiIdo, honnan_Megalloig, hova_MegalloTol, direct_mylineNameSend);
	// olvassa be es tegye a the_sub-ba
	//
	var ide_el = document.getElementById(the_sub);
	ide_el.innerHTML = gl_message_wait;
	var ide_el2 = document.getElementById('2'+the_sub);
	ide_el2.innerHTML = gl_message_wait;
	// 
	displaySubs(the_sub, allSubs);
	// alert('the_sub'+the_sub);
	// down data	
	hova_MegalloTol = '---> 0';
	url = 'info/php/plugins/map_bus/lib/return_reszletek.php?Jarat_id='+Jarat_id+
	'&route_nr='+route_nr+
	'&ST_kod='+ST_kod+
	'&ST2_kod='+ST2_kod+
	'&indulasiIdo='+indulasiIdo+
	'&honnan_Megalloig='+honnan_Megalloig+
	'&hova_MegalloTol='+hova_MegalloTol+
	'&direct_mylineNameSend='+direct_mylineNameSend;
	CDownloadUrl('get', url, function(text) {	
			// kiszurni belole a "(---> 0 km)"
			var ezt = "(---> 0 km)";
			var erre = "";
			text = text.replace(ezt, erre);
			/* ezt = 'gyalog ->';
			erre = "leszállás ->";
			text = text.replace(ezt, erre); */
			ide_el.innerHTML = text;
	}); 
	// 
	honnan_Megalloig_2 = '---> 0';
	url_2 = 'info/php/plugins/map_bus/lib/return_reszletek.php?Jarat_id='+Jarat_id_2+
	'&route_nr='+route_nr_2+
	'&ST_kod='+ST_kod_2+
	'&ST2_kod='+ST2_kod_2+
	'&indulasiIdo='+indulasiIdo_2+
	'&honnan_Megalloig='+honnan_Megalloig_2+
	'&hova_MegalloTol='+hova_MegalloTol_2+
	'&direct_mylineNameSend='+direct_mylineNameSend_2;
	CDownloadUrl('get', url_2, function(text) {
			// kiszurni belole a "(---> 0 km)"
			var ezt = "(---> 0 km)";
			var erre = "";
			text = text.replace(ezt, erre);	
			/* ezt = 'gyalog ->';
			erre = "leszállás ->";
			text = text.replace(ezt, erre);	 */		
			ide_el2.innerHTML = text;
	}); 
	// be kell vezetni egy kettos megallo figyelot, hogy, ha ua.-ban a megalloban
	// van az atszallas, akkor egymas fole tegye a megallok ikonjait
	// a php kuldi 
	loadRouter2(Jarat_id, route_nr, ST_kod, ST2_kod, Jarat_id_2, route_nr_2, ST_kod_2, ST2_kod_2, dubleStation);
	
}
// *********************************************************
// *********************************************************
// *********************************************************
function desc(ezt){
	// megnyitja egy uj ablakban a reszletes leirast mutato php filet
	var url = 'info/php/plugins/map_bus/lib/return_korlatozas_desc.php?desc='+ezt;
	window.open(url, 'ablak', 'width=300,height=200,left='+(screen.availWidth/2-400)+',top='+(screen.availHeight/2-300)+'');
}
// *********************************************************
// *********************************************************
// *********************************************************
// 
// ez a lenyilo szovegek miatt kell
// http://javascript.internet.com/css/page-organizer.html
// 
function displaySubs(the_sub, allSubs){
	// az allSubs a reszletek ablakok szamat kuldi a displaySubs_loadRouter tol, 
	// ami a mainroutertol kapja
	// TODO: az atsz elemekbol torloni a szovegeket, amelyeket beolvastatott
	 if (document.getElementById(the_sub).style.display==""){
		 document.getElementById(the_sub).style.display = "none";
		 // ha kettos
		 var matchatsz = the_sub.match("atsz");
		 if(matchatsz != null){
			 var the_sub_2 = '2'+the_sub;
			  document.getElementById(the_sub_2).style.display = "none";
		 }
		 // gyaloglassal
		 var matchatsz_gy = the_sub.match("gyal");
		 if(matchatsz_gy != null){
			 var the_sub_2 = '2'+the_sub;
			  document.getElementById(the_sub_2).style.display = "none";
		 }
		 return
	 }
	 
	 
	 // 
	 var match = the_sub.match("sub0");
	 var match2 = the_sub.match("subA0");
	 if(match != null || match2 != null){
		for (i=0;i<200;i++){
			 if(i<10){
				 var el_name = "sub0"+i;
				 var el_name2 = "subA0"+i;
			 }else{
				 var el_name = "sub"+i;  
				 var el_name2 = "subA"+i;
			 }
			 // 
			 var my_sub = document.getElementById(el_name);
			 var my_sub2 = document.getElementById(el_name2);
			 // 
			 if(my_sub){
				  my_sub.style.display = "none";
			 }
			 // 
			 if(my_sub2){
				  my_sub2.style.display = "none";
			 }
		} 
	 
	 }
	 // *******************************************************-
	  // ***********************************************************-
	 // for (i=0;i<subs_array.length;i++){
	var match3 = the_sub.match("Mainsub");
	 if(match3 != null){
		  for(i=0;i<10;i++){
			 var el_name = "Mainsub"+i;
			 var my_sub = document.getElementById(el_name);
			  if(my_sub){
				  if(my_sub != the_sub){
				  my_sub.style.display = "none";
				  }
			 }
		 } 
	 }
	// allSubs
	// alert('allSubs:'+allSubs);
	var match4 = the_sub.match("direct");
	if(match4 != null){
		if(allSubs){
			for (i=0;i<allSubs;i++){
				var el_name = 'direct'+i+'SubName';
				var my_sub = document.getElementById(el_name);
				if(my_sub){
					if(my_sub != the_sub){
						my_sub.style.display = "none";
					  }
				 }
			}		
		}
	 }
	 // atszallas reszletek lenyitasa
	// alert('allSubs:'+allSubs);
	var match5 = the_sub.match("atsz");
	if(match5 != null){
		// alert('allSubs'+allSubs);
		if(allSubs){
			for (i=0;i<allSubs;i++){
				var el_name = 'atsz'+i+'SubName';
				var my_sub = document.getElementById(el_name);
				var el_name_2 = '2atsz'+i+'SubName';				
				var my_sub_2 = document.getElementById(el_name_2);
				if(my_sub){
					if(my_sub != the_sub){
						my_sub.style.display = "none";
						my_sub_2.style.display = "none";
					  }
				 }
			}
		}
	 }	 
  document.getElementById(the_sub).style.display = "";
  var matchatsz = the_sub.match("atsz");
  if(matchatsz != null){
	  var the_sub_2 = '2'+the_sub;
	  document.getElementById(the_sub_2).style.display = "";
  }
  // ==========================================================================
  	 // atszallas reszletek lenyitasa
	// alert('allSubs:'+allSubs);
	var match6 = the_sub.match("gyal");
	if(match6 != null){
		// alert('allSubs'+allSubs);
		if(allSubs){
			for (i=0;i<allSubs;i++){
				var el_name = 'gyal'+i+'SubName';
				var my_sub = document.getElementById(el_name);
				var el_name_2 = '2gyal'+i+'SubName';				
				var my_sub_2 = document.getElementById(el_name_2);
				if(my_sub){
					if(my_sub != the_sub){
						my_sub.style.display = "none";
						my_sub_2.style.display = "none";
					  }
				 }
			}
		}
	 }
	 
  document.getElementById(the_sub).style.display = "";
  // alert("eredmeny: "+the_sub+"display = "+ document.getElementById(the_sub).style.display);
  var matchatsz_gy = the_sub.match("gyal");
  if(matchatsz_gy != null){
	  var the_sub_2 = '2'+the_sub;
	  document.getElementById(the_sub_2).style.display = "";
  }
  
  
  
}

// =============================================================================
// *********************** FUNCTIONS FOR ROUTER ********************************
// =============================================================================

function deleteRoute_1(){
	// torolje a levgonal kijeloleset
	
	if(gl_start_stop_poliline){
		map.removeOverlay(gl_start_stop_poliline);
	}
	
	// torolje az elozo gl_route_1_Poliline; gl_route_1_Markers_Arr; gl_route_1_ArrowIcon_Arr; 
	if(gl_route_1_Poliline){
		map.removeOverlay(gl_route_1_Poliline);
		gl_route_1_Poliline = false;
	}
	if(gl_route_2_Poliline){
		map.removeOverlay(gl_route_2_Poliline);
		gl_route_2_Poliline = false;
	}
	// alert('gl_route_1_Markers_Arr.length :'+gl_route_1_Markers_Arr.length);
	if(gl_route_1_Markers_Arr.length != 0){
		for (i=0;i<gl_route_1_Markers_Arr.length;i++){
			map.removeOverlay(gl_route_1_Markers_Arr[i]);
		}
		gl_route_1_Markers_Arr = [];
	}
	if(gl_route_1_ArrowIcon_Arr.length != 0){
		for (i=0;i<gl_route_1_ArrowIcon_Arr.length;i++){
			map.removeOverlay(gl_route_1_ArrowIcon_Arr[i]);
		}
		gl_route_1_ArrowIcon_Arr = [];
	}
}


function animateRouter(i){
	// http://groups.google.com/group/Google-Maps-API/browse_thread/thread/8061ee966fdc9360
	// alert('gl_the_timeout '+gl_the_timeout);
	if(i == 0){
		TheZoom = map.getZoom();
		TheCenter = map.getCenter()
		// alert(TheZoom);
		map.setZoom(16);
		
	}
	
	
	if(gl_route_1_Markers_Arr.length != 0){		
		if ( i < gl_route_1_Markers_Arr.length){
			var myPoint = gl_route_1_Markers_Arr[i].getPoint();
			var Title = gl_route_1_Markers_Arr[i].getTitle();
			// alert(myPoint+" - "+newpoint);
			myPoint = myPoint.toString();		
			myPoint = myPoint.replace('(','');
			myPoint = myPoint.replace(')','');
			var myPointArr = myPoint.split(",");
			var myPointLat = parseFloat(myPointArr[0]);  
			var myPointLng = parseFloat(myPointArr[1]);
			
			gl_route_1_Markers_Arr[i].openInfoWindowHtml(Title);
			map.panTo(new GLatLng( myPointLat, myPointLng ));
			// alert(Title);
			// map.addOverlay(new GMarker(map.getCenter()));			
			gl_the_timeout = setTimeout("animateRouter(" + (i + 1) + ")", 3000);	
		} 
		
		if(i == gl_route_1_Markers_Arr.length){	
			var marker = gl_route_1_Markers_Arr[i-1];
			marker.closeInfoWindow();
			map.setZoom(TheZoom);
			map.panTo(TheCenter);
			// map.setCenter(TheCenter);
			// alert(TheZoom);
		}
		
	}
	
}

function animateRouterStop(){
	clearTimeout(gl_the_timeout);	
	map.setZoom(TheZoom);
	map.panTo(TheCenter);
}

// ez csak a menetrendhez kell ha valaki a php-nek tesz fel kerdest pl. az av menetrendbol
function loadRouterFull(mit, route_nr){
	// alert ('mit.value'+mit.value);
	// ha linkkel érkezett egy megallohoz, akkor torolni a megallo nevet es id_jet
	var el_holder = document.getElementById('stop_id_holder'); 
	var el_holder_name = document.getElementById('stop_name_holder');
	if(el_holder != null){
		el_holder.value = '';
	}
	if(el_holder_name != null){
		el_holder_name.value = '';
	}
	
	mit_holder = document.getElementById(mit); 
	if(mit_holder.value != ''){
		// mit =  mit.value; //"110Sz";	
		mit =  mit_holder.value; //"110Sz";	
		// alert(mit);
		// 2008-06-15
		if(mit != 'ALL'){ 
		// if(route_nr != 'ALL'){	// igy lenne helyes, de igy csak pirosz utvonal van
			loadRouter(mit, route_nr, '', '');
		}else{
			loadRouter2(mit, route_nr, '', '', mit, 2, '', '');
		}
		show_which_tab('holder_menetrend', 1);
		// insert data for timetable
		url = "info/php/plugins/map_bus/lib/return_titme_table.php?line_id="+mit;	
		CDownloadUrl('get', url, function(text) {			
				// text = URLDecode(text);
				document.getElementById('holder_menetrend_data').innerHTML = text;
		});
	}
	
}

// ***********************************************************************************-
// ez csak a menetrendi menubol muk.
function loadRouterFullval(mit, route_nr){
	// alert(mit);
	show_which_tab('holder_menetrend', 1);	
	// alert ('mit.value'+mit.value);
	// if(mit.value != ''){
		// mit =  mit.value; //"110Sz";	
		if(mit != 'ALL'){
			loadRouter(mit, route_nr, '', '');
		}else{
			loadRouter2(mit, route_nr, '', '', mit, 2, '', '');
		}
		
		// insert data for timetable
		show_which_tab('holder_menetrend', 1);	
		url = "info/php/plugins/map_bus/lib/return_titme_table.php?line_id="+mit;	
		CDownloadUrl('get', url, function(text) {			
				// text = URLDecode(text);
				document.getElementById('holder_menetrend_data').innerHTML = text;
		});
	// }
	
}

// ***********************************************************************************-
function loadRouter(mit, route_nr, from, to) {
	// alert(mit);
	var mit = mit; //"110Sz";
	var route_nr = route_nr;
	if (GBrowserIsCompatible()) {
		deleteRoute_1();
		// === The basis of the arrow icon information ===
		// http://econym.googlepages.com/arrows.htm
		gl_arrowIcon = new GIcon();
		gl_arrowIcon.iconSize = new GSize(24,24);
		gl_arrowIcon.shadowSize = new GSize(1,1);
		gl_arrowIcon.iconAnchor = new GPoint(12,12);
		gl_arrowIcon.infoWindowAnchor = new GPoint(0,0);	
	
		// var map = new GMap2(document.getElementById("map"));
		// map.addControl(new GLargeMapControl());
		// map.addControl(new GMapTypeControl());
		// map.setCenter(new GLatLng(47.183179301633494, 18.416175842285156), 13);
		// var center = map.getCenter();
		// document.getElementById("message").innerHTML = center.toString();
		var mitorig = mit
		
		mit = "info/php/plugins/map_bus/lib/xml_eloallitas_router.php?line_id="+mit+"&route_nr="+route_nr+'&from='+from+'&to='+to;
		// window.open(mit, "blank");
		// alert(mit);
		GDownloadUrl(mit, function(data){
			var xml = GXml.parse(data);
			// beirja a jarat nevet, hogy lehessen tudni, ez melyik járat
			var v_line = xml.documentElement.getElementsByTagName("line");
			var line_nev =  v_line[0].getAttribute("name");
			var line_id =  v_line[0].getAttribute("id");
			// 
			var v_line_2 = xml.documentElement.getElementsByTagName("line_2");
			var line_nev_2 =  v_line_2[0].getAttribute("name");
			var line_id_2 =  v_line_2[0].getAttribute("id");
			// alert('line_nev: '+line_nev);
			if(document.getElementById('mentrend_lineName') != null ){
				document.getElementById('mentrend_lineName').innerHTML = line_nev;
			}
			
			// visszaallitja a menu_line-t alapra, hogy lehessen ujra valasztani 
			var menu_line = document.getElementById('menu_line');
			menu_line.selectedIndex = 0;
			
			var myPoints = xml.documentElement.getElementsByTagName("point");
			var points = [] ;
			var pointsVissza = [] ;
			var test = "";	
			for (var i = 0; i < myPoints.length; i++) {
				var point = new GLatLng(parseFloat(myPoints[i].getAttribute("lat")), parseFloat(myPoints[i].getAttribute("lon")));
				// poliline
				var col = myPoints[i].getAttribute("col");
				if(col=="red"){
					// points.push( new GLatLng(parseFloat(myPoints[i].getAttribute("lat") ),parseFloat(myPoints[i].getAttribute("lon"))) ) ;
					points.push(point);
				}
				if(col == "blue"){		
					// pointsVissza.push( new GLatLng(parseFloat(myPoints[i].getAttribute("lat") ),parseFloat(myPoints[i].getAttribute("lon"))) ) ;
					pointsVissza.push(point);
				}		
			}
			//alert(col);	
			var color = "#ff0000";
			if(route_nr == 2){
				var color = "#0000ff";
			}
			var width = 5;
			var weight = 1;
			gl_route_1_Poliline = new GPolyline( points, color, width, weight )
			map.addOverlay(gl_route_1_Poliline);
			
			if(pointsVissza.length > 0){
				var color = "#0000ff";
				gl_route_2_Poliline = new GPolyline( pointsVissza, color, width, weight );
				map.addOverlay(gl_route_2_Poliline);
			}
			
			
			// map.addOverlay( new GPolyline( pointsVissza, "#0000ff", width, weight ) ) ;
			
			//midArrows(points); tul sok, mert minden pontocskahoz betesz
				
			var mymarkers = xml.documentElement.getElementsByTagName("marker");
			ArrowIcon_Arr = [];
			var bounds = new GLatLngBounds();
			for (var i = 0; i < mymarkers.length; i++) {
				// TODO: illessze be a megallok idopontjait
				// DEBUG: rute megallok infowindowban az atmeno jaratok linkjei nem jok
				var kod = mymarkers[i].getAttribute("kod");
				var neve = mymarkers[i].getAttribute("neve");
				var route = mymarkers[i].getAttribute("route");
				var mytime = mymarkers[i].getAttribute("time"); 
				var Alltimes = mymarkers[i].getAttribute("Alltimes");
				var transit = mymarkers[i].getAttribute("transit");				
				var point = new GLatLng(parseFloat(mymarkers[i].getAttribute("lat")), parseFloat(mymarkers[i].getAttribute("lon")));
				var marker = createMarkerRouter(point, kod, neve, mytime, Alltimes, transit, line_id, line_nev, line_nev_2, route);
				ArrowIcon_Arr.push( new GLatLng(parseFloat(mymarkers[i].getAttribute("lat") ),parseFloat(mymarkers[i].getAttribute("lon"))) ) ;
				map.addOverlay(marker);
				gl_route_1_Markers_Arr.push(marker);
				bounds.extend(point);
			}
			// midArrows(ArrowIcon_Arr);
			
			map.setZoom(map.getBoundsZoomLevel(bounds));		
			// ===== determine the centre from the bounds ======
			map.setCenter(bounds.getCenter());	
		});
	}
}	
// 
function bearing( from, to ) {
	// http://econym.googlepages.com/arrows.htm
	// See T. Vincenty, Survey Review, 23, No 176, p 88-93,1975.
	// Convert to radians.
	var lat1 = from.latRadians();
	var lon1 = from.lngRadians();
	var lat2 = to.latRadians();
	var lon2 = to.lngRadians();

	// Compute the angle.
	var angle = - Math.atan2( Math.sin( lon1 - lon2 ) * Math.cos( lat2 ), Math.cos( lat1 ) * Math.sin( lat2 ) - Math.sin( lat1 ) * Math.cos( lat2 ) * Math.cos( lon1 - lon2 ) );
	if ( angle < 0.0 )
	 angle  += Math.PI * 2.0;

	// And convert result to degrees.
	angle = angle * degreesPerRadian;
	angle = angle.toFixed(1);

	return angle;
}

// === A function to create the arrow head at the end of the polyline ===
function arrowHead(points) {
	//http://econym.googlepages.com/arrows.htm
	// == obtain the bearing between the last two points
	var p1=points[points.length-1];
	var p2=points[points.length-2];
	var dir = bearing(p2,p1);
	// == round it to a multiple of 3 and cast out 120s
	var dir = Math.round(dir/3) * 3;
	while (dir >= 120) {dir -= 120;}
	// == use the corresponding triangle marker 
	gl_arrowIcon.image = "http://www.google.com/intl/en_ALL/mapfiles/dir_"+dir+".png";
	map.addOverlay(new GMarker(p1, gl_arrowIcon));
}
      
// === A function to put arrow heads at intermediate points
function midArrows(points) {
	//http://econym.googlepages.com/arrows.htm
	for (var i=1; i < points.length-1; i++) {  
	  var p1=points[i-1];
	  var p2=points[i+1];
	  var dir = bearing(p1,p2);
	  // == round it to a multiple of 3 and cast out 120s
	  var dir = Math.round(dir/3) * 3;
	  while (dir >= 120) {dir -= 120;}
	  // == use the corresponding triangle marker 
	  gl_arrowIcon.image = "http://www.google.com/intl/en_ALL/mapfiles/dir_"+dir+".png";
	  var NewArrMarker = new GMarker(points[i], gl_arrowIcon)
	  map.addOverlay(NewArrMarker);
	  gl_route_1_ArrowIcon_Arr.push(NewArrMarker);
	}
}				
	/* GEvent.addListener(map, "moveend", function() {
		var center = map.getCenter();
		document.getElementById("message").innerHTML = center.toString();
	}); */
// }

var globalListenerFlag = false;

function createMarkerRouter(point, kod, neve, time, Alltimes, transit, myLine_id, myLine_Name, myLine_Name_2, route) {
	// alert('myLine_id:'+myLine_id);
	var f = new GIcon();
	f.image = "http://szfvar.com/info/php/plugins/map_bus/img/bus.gif";
	f.iconSize = new GSize(20,50);
	// f.shadowSize = new GSize(22,50);
	f.iconAnchor = new GPoint(10,50);
	f.infoWindowAnchor = new GPoint(20,0);
	f.infoShadowAnchor = new GPoint(19,13);	
	var marker = new GMarker(point, {icon: f, draggable: false, title: neve});
	//
	var AlltimesArray = Alltimes.split("|");
	var counter = 0;
	var col_1 = '';
	var col_2 = '';
	var col_3 = '';
	var def_counter = 0;
	
	var colNr = (AlltimesArray.length-1)/3;
	
	for (var i = 0; i < AlltimesArray.length-1; i++) {
		counter++;
		var thisTime = AlltimesArray[i].replace(':00 ',' ');
		if(counter <= colNr){
			col_1 += '<span class="router_nr">'+counter+'</span> | '+thisTime+'<br>';
		}
		if( (counter > colNr) && (counter <= (colNr*2) ) ){
			col_2 += '<span class="router_nr">'+counter+'</span> | '+thisTime+'<br>';
		}
		if( (counter > (colNr*2)) && (counter <= (colNr*3) ) ){
			col_3 += '<span class="router_nr">'+counter+'</span> | '+thisTime+'<br>';
		}
	}
	
	// transit
	var transitHtml = '';
	var transitArray = transit.split("|");
	
	for (var i = 0; i < transitArray.length-1; i++) {
		var line = transitArray[i];
		var lineArray = line.split(';');
		// var url = '<a href = "xml_router_jarat.php?line_id='+lineArray[1]+'">';
		// var url = '@TODO: link';
		// var url = '<a href = "http://www.bkb.hu/alba/menetrend.php?line_id='+lineArray[1]+'">';
		if(lineArray[0] != ''){		
			var nr = i+1;
			var url = nr+ ' - <a href = "http://www.albavolan.hu/esa/index.php?doc_id=18&city_id=1&line_id='+lineArray[1]+'" target="_blank">';
			transitHtml += url+lineArray[0]+"</a><br>";
		}
	}
	

	// 
	// , myLine_Name
	var html = "";	
	html += '<div class="router_title">'+neve+' <span class="info_wdw_utvonal">('+route+'. útvonal)</span>';
	html += '</div> ';	
	if(route == 2){
		myLine_Name = myLine_Name_2;
	}
	if( (myLine_Name != '') || (myLine_id != '') ){	
		html += '<div class="router_infoWdwText_tableHeader">' +myLine_Name +' </div>';
	}
	if(time != '00:00:00'){
		html += '<div class="router_ido">Tájékoztató időpontok a megállóba érkezésekről (<b>végállomásról indul + '+ time.substring(3,5) +" perc</b>)</div>";		
	}else{
		html += '<div class="router_ido">Az állomásról való indulás időpontjai:</div>';
	}
		
	// html += '<div class="router_infoWdwText">'+ Alltimes+'</div>';
	// ===================================================
	// html += '<div class="info_wdw_mail">';
	// html += '<span>';
	// @TODO: levelben kuldeni az adatokat
	// html += '<div class="router_ido">';
	// html += '<a href="#" onclick="mail_stop_id_data(\''+myLine_id+'\',\''+kod+'\',\''+Alltimes+'\')">';  
	// html += '<img src="http://www.bkb.hu/alba/info/php/plugins/map_bus/img/mail.png" align="middle" border="0" title="Küldje el a megálló címét emailben" > ';
	// html += '</a>';
	// html += '</span>';	
	// html += '</div>';
	// ===================================================
	
	html += '<table class="router_infoWdwText_table" border="1"><tr><td valign="top">';
	html += col_1;
	html += '</td>';
	html += '<td valign="top">';
	html += col_2;
	html += '</td>';
	html += '<td valign="top">';
	html += col_3;
	html += '</td>';	
	html += '</tr><table>';
	
	 /* 
	html += '<table class="router_infoWdwText_table" border="1"><tr><td valign="top">';
	html += 'Továbbfejlesztés miatt az érkezési időpontok ideiglenesen nem jelennek meg. Köszönjük megértésüket';
	html += '</td>';	
	html += '</tr><table>'; 
	*/
	
	html += '<div class="router_infoWdwText">';	
	// html += "<hr>";
	html += transitHtml;
	html += '</div>'
	html += '<hr>';
	
	html += '<br><br>';	
	GEvent.addListener(marker, 'click', function() {
		globalListenerFlag = true;
		// marker.closeInfoWindow();
		marker.openInfoWindowHtml(html);
	});
	/* // ezt a mouseoverestet ki kell venni a vegleges valtozatbol
	GEvent.addListener(marker, 'mouseover', function() {
		if(!globalListenerFlag){			
			var message = neve+' - <small><b>'+kod+'</b></small><hr>';
			message += '<small><small>részletekért kattintson a megálló talpára</a></small></small>'
			marker.openInfoWindowHtml(message);
		}
	}); */
	// 
	GEvent.addListener(marker, 'infowindowclose', function() {
			globalListenerFlag = false;
	});
	
	// GEvent.addListener(marker, 'mouseout', function() {
		// globalListenerFlag = false;
		// marker.closeInfoWindow();
	// });
	
	
return marker;
}
// =============================================================================
// =============================================================================
// =============================================================================
function deleteTexts(){
	// document.getElementById('holder_honnan').innerHTML = '';
	document.getElementById('tab_data').innerHTML = '';
	document.getElementById('tab_direct').innerHTML =  '';
	document.getElementById('tab_atszallas').innerHTML = '';
	document.getElementById('tab_stat').innerHTML = '';	
	// document.getElementById('tab_data_prof').innerHTML = '';
}
// =============================================================================
// =============================================================================
// =============================================================================
// ell. az ind es erk idopontokat, es ha az ind > erk-nek akkor nem lep tovabb 
function vf_times(){
	// var dat = document.getElementById('date');
	// deleteAllMarkers();
	 deleteRoute_1();
	var ok = 0;
	var timeFr = document.getElementById('menu_time_from');	
	var timeFrom = timeFr.value;
	if(timeFrom == "most"){
		// var mostido = new Date();
		// var hour = mostido.getHours();
		// var min = mostido.getMinutes();
		// az a problema, hogy ha leolvassa az idot
		ok = 1;
		// alert('timeFrom: '+timeFrom);
	}else{
		ok = 0;
		var timeFr = document.getElementById('menu_time_from');	
		var timeFrom = timeFr.value;
		var timeFromArr = timeFrom.split(":");
		var hourFrom = timeFromArr[0];
		var minFrom = timeFromArr[1];
		var ch = hourFrom.charAt(0);
	    if (ch == "0") {
			hourFrom = hourFrom.slice(1);
		}
		var hourFrom = parseInt(hourFrom);
		var minFrom = parseInt(minFrom);
		// 
		var timeT = document.getElementById('menu_time_to');
		var timeTo = timeT.value;
		
		var timeToArr = timeTo.split(":");
		var hourTo = timeToArr[0]
		var minTo = timeToArr[1]; 
		var ch = hourTo.charAt(0);
	    if (ch == "0") {
			hourTo = hourTo.slice(1);
		}
		
		hourTo = parseInt(hourTo);
		minTo = parseInt(minTo);
		//parseInt(timeToArr[1]);
		// alert(hourFrom +"  "+minFrom);
		
		// alert(parseInt("08"));
		// alert("timeTo"+timeTo+ "hourTo: "+ hourTo +"  minTo:"+minTo);
		
		var dFrom = new Date();
		dFrom.setHours(hourFrom);
		dFrom.setMinutes(minFrom);
		
		var dTo = new Date();
		dTo.setHours(hourTo);
		dTo.setMinutes(minTo);
		// alert ('dFrom: '+dFrom+' dTo: '+dTo);
		// if( (dFrom > dTo) || (dFrom = dTo) ){
		if(dFrom > dTo){
			
			alert(dFrom +" - "+dTo+ " Az indulási időpont ("+ timeFrom +") nagyobb az érkezési ("+timeTo+") időpontnál \n Kérjük állítsa át az időpontokat.");
			ok = 0;
		}else if(timeFrom == timeTo){
			alert("Az indulási időpont ("+ timeFrom +") egyenlő az érkezési ("+timeTo+") időponttal \n Kérjük állítsa át az időpontokat.");
			ok = 0;
		}else{
			ok = 1;
		}
		
	}
	// alert('ok = '+ok);
	if(ok == 1){
		
		GoToRouter();
	}
	
}
// =============================================================================
// =============================================================================
// =============================================================================
function loadRouter2(mit, route_nr, from, to, mit2, route_nr2, from2, to2, dubleStation) {
	
	var mit = mit; //"110Sz";
	var route_nr = route_nr;
	if (GBrowserIsCompatible()) {
		deleteRoute_1();		
		
		// === The basis of the arrow icon information ===
		// http://econym.googlepages.com/arrows.htm
		gl_arrowIcon = new GIcon();
		gl_arrowIcon.iconSize = new GSize(24,24);
		gl_arrowIcon.shadowSize = new GSize(1,1);
		gl_arrowIcon.iconAnchor = new GPoint(12,12);
		gl_arrowIcon.infoWindowAnchor = new GPoint(0,0);	
	
	
		// var map = new GMap2(document.getElementById("map"));
		// map.addControl(new GLargeMapControl());
		// map.addControl(new GMapTypeControl());
		// map.setCenter(new GLatLng(47.183179301633494, 18.416175842285156), 13);
		// var center = map.getCenter();
		// document.getElementById("message").innerHTML = center.toString();
		var mitorig = mit
		
		mit = "info/php/plugins/map_bus/lib/xml_eloallitas_router.php?line_id="+mit+"&route_nr="+route_nr+'&from='+from+'&to='+to;
		// window.open(mit, "blank");
		// alert(mit);
		GDownloadUrl(mit, function(data){
			var xml = GXml.parse(data);
			var myPoints = xml.documentElement.getElementsByTagName("point");
			var points = [ ] ;
			var pointsVissza = [ ] ;
			var test = "";	
			for (var i = 0; i < myPoints.length; i++) {
				var point = new GLatLng(parseFloat(myPoints[i].getAttribute("lat")), parseFloat(myPoints[i].getAttribute("lon")));
				// poliline
				// var col = myPoints[i].getAttribute("col");
				// if(col=="red"){		
				points.push( new GLatLng(parseFloat(myPoints[i].getAttribute("lat") ),parseFloat(myPoints[i].getAttribute("lon"))) ) ;
				// }
				// if(col == "blue"){		
					// pointsVissza.push( new GLatLng(parseFloat(myPoints[i].getAttribute("lat") ),parseFloat(myPoints[i].getAttribute("lon"))) ) ;
				// }		
			}
			//alert(col);	
			var color = "#ff0000";			
			var width = 5;
			var weight = 1;
			gl_route_1_Poliline = new GPolyline( points, color, width, weight )
			map.addOverlay(gl_route_1_Poliline);
			// map.addOverlay( new GPolyline( pointsVissza, "#0000ff", width, weight ) ) ;
			
			//midArrows(points); tul sok, mert minden pontocskahoz betesz
			var myLineData = xml.documentElement.getElementsByTagName("line");
			var myLine_id = myLineData[0].getAttribute("id");
			var myLine_Name = myLineData[0].getAttribute("name");
			var v_line_2 = xml.documentElement.getElementsByTagName("line_2");
			var line_nev_2 =  v_line_2[0].getAttribute("name");
			var line_id_2 =  v_line_2[0].getAttribute("id");
			// 
			var mymarkers = xml.documentElement.getElementsByTagName("marker");
			ArrowIcon_Arr = [];
			var bounds = new GLatLngBounds();
			for (var i = 0; i < mymarkers.length; i++) {
				// TODO: illessze be a megallok idopontjait
				// DEBUG: rute megallok infowindowban az atmeno jaratok linkjei nem jok
				var kod = mymarkers[i].getAttribute("kod");
				var neve = mymarkers[i].getAttribute("neve");
				var route = mymarkers[i].getAttribute("route");
				var mytime = mymarkers[i].getAttribute("time"); 
				var Alltimes = mymarkers[i].getAttribute("Alltimes");
				var transit = mymarkers[i].getAttribute("transit");
				var point = new GLatLng(parseFloat(mymarkers[i].getAttribute("lat")), parseFloat(mymarkers[i].getAttribute("lon")));
				var marker = createMarkerRouter(point, kod, neve, mytime, Alltimes, transit, myLine_id, myLine_Name, line_nev_2, route);
				ArrowIcon_Arr.push( new GLatLng(parseFloat(mymarkers[i].getAttribute("lat") ),parseFloat(mymarkers[i].getAttribute("lon"))) ) ;
				map.addOverlay(marker);
				gl_route_1_Markers_Arr.push(marker);
				bounds.extend(point);
			}
			// midArrows(ArrowIcon_Arr);
			
			// map.setZoom(map.getBoundsZoomLevel(bounds));		
			// ===== determine the centre from the bounds ======
			// map.setCenter(bounds.getCenter());	
		});
		// ===========================================
		// ha van dupla masodik megallo, akkor tegye fole az xml
		mit2 = "info/php/plugins/map_bus/lib/xml_eloallitas_router.php?line_id="+mit2+"&route_nr="+route_nr2+'&from='+from2+'&to='+to2+'&dubleStation='+dubleStation;
		// window.open(mit, "blank");
		// alert(mit);
		GDownloadUrl(mit2, function(data){
			var xml = GXml.parse(data);
			var myPoints = xml.documentElement.getElementsByTagName("point");
			var points = [ ] ;
			var pointsVissza = [ ] ;
			var test = "";	
			for (var i = 0; i < myPoints.length; i++) {
				var point = new GLatLng(parseFloat(myPoints[i].getAttribute("lat")), parseFloat(myPoints[i].getAttribute("lon")));
				// poliline
				// var col = myPoints[i].getAttribute("col");
				// if(col=="red"){		
				points.push( new GLatLng(parseFloat(myPoints[i].getAttribute("lat") ),parseFloat(myPoints[i].getAttribute("lon"))) ) ;
				// }
				// if(col == "blue"){		
					// pointsVissza.push( new GLatLng(parseFloat(myPoints[i].getAttribute("lat") ),parseFloat(myPoints[i].getAttribute("lon"))) ) ;
				// }		
			}
			//alert(col);	
			
			var color = "#0000ff";			
			var width = 5;
			var weight = 1;
			gl_route_2_Poliline = new GPolyline( points, color, width, weight )
			map.addOverlay(gl_route_2_Poliline);
			// map.addOverlay( new GPolyline( pointsVissza, "#0000ff", width, weight ) ) ;
			
			//midArrows(points); tul sok, mert minden pontocskahoz betesz
			var myLineData = xml.documentElement.getElementsByTagName("line");
			var myLine_id = myLineData[0].getAttribute("id");
			var myLine_Name = myLineData[0].getAttribute("name");
			// 
			var v_line_2 = xml.documentElement.getElementsByTagName("line_2");
			var line_nev_2 =  v_line_2[0].getAttribute("name");
			var line_id_2 =  v_line_2[0].getAttribute("id");
			// 
			var mymarkers = xml.documentElement.getElementsByTagName("marker");
			ArrowIcon_Arr = [];
			var bounds = new GLatLngBounds();
			for (var i = 0; i < mymarkers.length; i++) {
				// TODO: illessze be a megallok idopontjait
				// DEBUG: rute megallok infowindowban az atmeno jaratok linkjei nem jok
				var kod = mymarkers[i].getAttribute("kod");
				var neve = mymarkers[i].getAttribute("neve");
				var route = mymarkers[i].getAttribute("route");
				var mytime = mymarkers[i].getAttribute("time"); 
				var Alltimes = mymarkers[i].getAttribute("Alltimes");
				var transit = mymarkers[i].getAttribute("transit");
				var point = new GLatLng(parseFloat(mymarkers[i].getAttribute("lat")), parseFloat(mymarkers[i].getAttribute("lon")));
				var marker = createMarkerRouter(point, kod, neve, mytime, Alltimes, transit, myLine_id, myLine_Name, line_nev_2, route);
				ArrowIcon_Arr.push( new GLatLng(parseFloat(mymarkers[i].getAttribute("lat") ),parseFloat(mymarkers[i].getAttribute("lon"))) ) ;
				map.addOverlay(marker);
				gl_route_1_Markers_Arr.push(marker);
				bounds.extend(point);
			}
			// midArrows(ArrowIcon_Arr);
			var p = gl_marker_Honnan.getPoint();
			var p2 = gl_marker_Hova.getPoint();
			bounds.extend(p);
			bounds.extend(p2);
			
			// ===== determine the centre from the bounds ======
			if( (gl_newlat !='') && (gl_newlng !='') ){
				SetMapCenter(gl_newlat, gl_newlng, gl_message, gl_stop_id);
				gl_newlat = '';
				gl_newlng = '';
				gl_message = '';
				gl_stop_id = '';
			}else{
				map.setZoom(map.getBoundsZoomLevel(bounds));		
				map.setCenter(bounds.getCenter());	
			}
		});
	}
}

function loadRouter2_SetMapCenter(mit, route_nr, from, to, mit2, route_nr2, from2, to2, dubleStation, newlat, newlng, message, stop_id){
	// setup globals 
	gl_newlat = newlat;
	gl_newlng = newlng;
	gl_message = message;
	gl_stop_id = stop_id;
	loadRouter2(mit, route_nr, from, to, mit2, route_nr2, from2, to2, dubleStation);
	// SetMapCenter(newlat, newlng, message, stop_id);
}
// =============================================================================
// =============================================================================
// mutatja vagy elrejti a kuldott elemenet-et
// =============================================================================

function show_which_tab(element, switch2){
	// element = element id
	// switch2 if it is 0 hid 1 shows
	// var switch2 = switch2; pl kettes_tab holder_honnan
	var elSel = document.getElementById(element);
	if(elSel){	
		if(switch2== 0){			
			// elSel.style.display = "inline";
			elSel.style.display = "none";
		}else{
			elSel.style.display = "inline";
		}
	}
}

// =============================================================================
// mutatja a tabot =============================================================
// =============================================================================
function show_Tabber_element(tabber, elnum){
	// tab1
	document.getElementById(tabber).tabber.tabShow(elnum);

}

// =============================================================================
// =============================================================================
// =============================================================================
// ez nem mukodik helyesen, csak mozillaban, 
// keszit egy bezaras gombot a jobb felso sarokba ha a css isFinite be van allitva
// sem ie 6 sem ie 7 ben nem mukodik 
// ie problema megoldva a control.model iframe-ben
function addCloseLink(className, contents) {
	className = 'modal_box_close';
	contents = 'X';
	var link = document.createElement('a'); 
	link.setAttribute('href', '#'); 
	link.setAttribute('title', 'Bezárás'); 
	if (className) link.setAttribute('class', className);
	if (contents) link.appendChild(document.createTextNode(contents)); 
	link.observe('click', function(e){ 
		parent.Control.Modal.close();
		// Control.Modal.Close(); 
		Event.stop(e); 
	}) 
	$('modal_container').appendChild(link);
}

// =============================================================================
// =============================================================================
// =============================================================================
// 
// Browser Detection Javascript
// copyright 1 February 2003, by Stephen Chapman, Felgall Pty Ltd

// You have permission to copy and use this javascript provided that
// the content of the script is not changed in any way.
// var browserName = whichBrs();
function whichBrs() {
	var agt=navigator.userAgent.toLowerCase();
	if (agt.indexOf("opera") != -1) return 'Opera';
	if (agt.indexOf("staroffice") != -1) return 'Star Office';
	if (agt.indexOf("webtv") != -1) return 'WebTV';
	if (agt.indexOf("beonex") != -1) return 'Beonex';
	if (agt.indexOf("chimera") != -1) return 'Chimera';
	if (agt.indexOf("netpositive") != -1) return 'NetPositive';
	if (agt.indexOf("phoenix") != -1) return 'Phoenix';
	if (agt.indexOf("firefox") != -1) return 'Firefox';
	if (agt.indexOf("safari") != -1) return 'Safari';
	if (agt.indexOf("skipstone") != -1) return 'SkipStone';
	if (agt.indexOf("msie") != -1) return 'Internet Explorer';
	if (agt.indexOf("netscape") != -1) return 'Netscape';
	if (agt.indexOf("mozilla/5.0") != -1) return 'Mozilla';
	if (agt.indexOf('\/') != -1) {
	if (agt.substr(0,agt.indexOf('\/')) != 'mozilla') {
	return navigator.userAgent.substr(0,agt.indexOf('\/'));}
	else return 'Netscape';} else if (agt.indexOf(' ') != -1)
	return navigator.userAgent.substr(0,agt.indexOf(' '));
	else return navigator.userAgent;
}
// =============================================================================
// =============================================================================
// =============================================================================

function verify_browser(){
	browserName = whichBrs();
	if(browserName == "Internet Explorer"){
		// document.write(browserName);
		// alert("I E");
		var el_ff = document.getElementById('firefox_elem');
		// el_ff.setAttribute("value","foo");
		el_ff.innerHTML = '<a href="http://www.spreadfirefox.com/node&amp;id=0&amp;t=219" target="_blank"><img border="0" alt="Firefox 2" title="Firefox 2" src="http://sfx-images.mozilla.org/affiliates/Buttons/firefox2/ff2b80x15.gif"/></a>';
	}
	// document.write(browserName);
	// document.getElementById('firefox_elem').innerHTML = browserName;
}

// =============================================================================
// =============================================================================
// =============================================================================
function mail_line(line_id){
	// url = 'http://bkb.hu?keepThis=true&TB_iframe=true&height=250&width=400';
	var format = "&keepThis=true&TB_iframe=true&height=280&width=420"; 
	// var url = "http://bkb.hu/alba/info/php/plugins/map_bus/mail_lib/mail_line_id.php?line_id="+line_id+"&type=1"+format;
	var url = "http://szfvar.com/info/php/plugins/map_bus/mail_lib/mail_line_id.php?line_id="+line_id+"&type=1"+format;
	tb_show('Email küldése', url);
}
// =============================================================================
// =============================================================================
// =============================================================================
function mail_problem_line(line_id){
	var format = "&keepThis=true&TB_iframe=true&height=280&width=420";
	var url = "http://szfvar.com/info/php/plugins/map_bus/mail_lib/mail_line_problem.php?line_id="+line_id+"&type=1&problem=1"+format;
	tb_show('Megjegyzés vagy javaslat küldése a fejlesztőknek', url);
	
}
// =============================================================================
// =============================================================================
// =============================================================================
function mail_stop_id(stop_id){	
	// alert(stop_id);
	var format = "&keepThis=true&TB_iframe=true&height=280&width=420"; 
	// line_id_holder
	var el_holder = document.getElementById('line_id_holder'); 
	if(el_holder != null){	
		var line_id = el_holder.value;
		
		var url = "http://szfvar.com/info/php/plugins/map_bus/mail_lib/mail_line_id.php?line_id="+line_id+"&stop_id="+stop_id+"&type=2"+format;
		// var msg = 'Email küldése a :'+ line_id +'|'+ stop_id;
		var msg = 'Email küldése a megálló címével ';
		tb_show(msg, url);
	}
}
// =============================================================================
// =============================================================================
// =============================================================================
function mail_stop_id_data(line_id, stop_id, Alltimes){
	var format = "&keepThis=true&TB_iframe=true&height=280&width=420"; 
	var url = "http://szfvar.com/info/php/plugins/map_bus/mail_lib/mail_line_id.php?line_id="+line_id+"&stop_id="+stop_id+format;
	var msg = 'Email küldése a :'+ line_id +'|'+ stop_id +'megálló időpontjairól';
	tb_show(msg, url);
}
// =============================================================================
// =============================================================================
// =============================================================================
// a kiválasztott allomas(ok)at hozzaadja egy allandohoz, 
// hogy csak a kivalasztott allomasokrol
// indulo jaratokat kuldje a lekerdezes php-nek
function setupThisStation(station_id){
	// ha még nincs semmi jelolve, pl. az elso kattintas, akkor legyen 
	var elname = "ch_box_"+station_id
	var el = document.getElementById(elname);
	var ischecked = el.checked;
	// alert(station_id +" - "+ ischecked);
	if(ischecked){
		// adja hozza
		gl_startStationIds_Array.push(station_id);
	}else{
		// vegye ki
		// alert('ki');
		for (var i = 0; i < gl_startStationIds_Array.length; i++) {
			if(station_id==gl_startStationIds_Array[i]){
				gl_startStationIds_Array.splice(i, 1);
				// alert(station_id+'kiveve');
			}
			
		}
		
	}
	// alert(gl_startStationIds_Array);
	//egyszer az osszes tobbit 
	// uj lekerdezesnel ezt torolje
}




/*
 method : POST/GET
 url    : Call url
 func   : custom function which is used to process returned data,
	  take only one parameter
	  http://coolersport.info/csite/index.php?a=CDownloadUrl
*/
// =============================================================================
function CDownloadUrl(method, url, func) {

	 var httpObj;
	 var browser = navigator.appName;
	 if(browser.indexOf("Microsoft") > -1)
	    httpObj = new ActiveXObject("Microsoft.XMLHTTP");
	 else
		 httpObj = new XMLHttpRequest();
	 httpObj.open(method, url, true);
	
	 httpObj.onreadystatechange = function() {
		if(httpObj.readyState == 4){
			if (httpObj.status == 200) {
				var contenttype = httpObj.getResponseHeader('Content-Type');
				if (contenttype.indexOf('xml')>-1) {
					func(httpObj.responseXML);
				} else {
					func(httpObj.responseText);
				}
			} else {
				func('Error: '+httpObj.status);
			}
		}
	};
	httpObj.send(null);
}




