var map; // a GMAP objektum
var data; // tároló tömb a letöltött JSON számára

// GMAP változói
var zoomManager;
var smallMarker, bigMarker; 
var smallMarkerArray = new Array();
var bigMarkerArray = new Array();
var markerArray = new Array();
var shortInfos = new Array();
var mapTrayShadow;
var mapTrayFloat;
var mapTryMarker;
var bigIconZoom = 17;
var smallIconZoom = 14;
var geocoder;
var mc;

// infóablakok kezeléséhez szükséges változók
var colorToBuy = 'rgb(75,165,191)';
var colorToLet = 'rgb(254,0,0)';
var infoWindowHeight = '165px';
var infoWindowInnerHTML = '';
var infoImg = null;
var defaultImage = ''
var futes = ['','gázfűtés','távfűtés','távfűtés egyedi méréssel','házközponti','egyéb'];
var hazfutes = ['','gáz cirkó','konvektor','megújuló','önfenntartó','vegyes','egyéb'];
var keruletek = ['','I.kerület','II.kerület','III.kerület','IV.kerület','V.kerület','VI.kerület','VII.kerület','VIII.kerület','IX.kerület','X.kerület','XI.kerület','XII.kerület','XIII.kerület','XIV.kerület','XV.kerület','XVI.kerület','XVII.kerület','XVIII.kerület','XIX.kerület','XX.kerület','XXI.kerület','XXII.kerület','XXIII.kerület','Alsónémedi','Biatorbágy','Budajenö','Budakkalász','Budakeszi','Budaors','Csobánka','Csomád','Csömör','Csörög','Délegyháza','Diósd','Dunabogdány','Dunaharaszti','Dunakeszi','Dunavarsány','Ecser','Erdokertes','Érd','Felsopakony','Fót','Göd','Gödöllo','Gyál','Gyömro','Halásztelek','Herceghalom','Isaszeg','Kerepes','Kistarcsa','Kisoroszi','Leányfalu','Majosháza','Maglód','Mogyoród','Nagykovácsi','Nagytarcsa','Ócsa','Orbottyán','Páty','Perbál','Pécel','Pilisborosjeno','Piliscsaba','Pilisjászfalu','Pilisszántó','Pilisszentiván','Pilisszentekereszt','Pilisszentlászló','Pilisvörösvár','Pomáz','Pócsmegyer','Pusztazámor','Remeteszolos','Solymár','Sóskút','Szada','Szászhalombatta','Szentendre','Szigethalom','Szigetmonostor','Szigetszentmiklós','Szod','Szodliget','Tahitótfalu','Taksony','Tárnok','Telki','Tinnye','Tök','Tököl','Törökbálint','Üllo','Üröm','Vác','Vácrátót','Vecsés','Veresegyháza','Visegrád','Zsámbék'];
var bgcolors = {el:'#339ED0',kl:'#E61104',eh:'#FF9129',te:'#505D7A'};
var defaultTitle = '';


// Keresés változói
var eladoLakas = 'el', kiadoLakas = 'kl', eladoHaz = 'eh', tulajdonostol = 'te';
var priceFromM = 0, priceToM = 100000000000, priceFromE = 0, priceToE = 10000000000000;
var nmFrom = 0, nmTo = 100000;

// Darabszámok
var num_el = 0, num_kl = 0, num_eh = 0, num_te = 0;

// Elérési útvonalak a fotókhoz
var paths = {
				'el':'http://www.eladolakas.eu/upload/termekek/',
				'kl':'http://www.kiadolakas.eu/upload/termekek/',
				'eh':'http://www.eladohaz.com/upload/termekek/',
				'te':'http://www.eladoalakasom.hu/upload/termekek/'
			}

var urls = {
				'el':'http://www.eladolakas.eu/',
				'kl':'http://www.kiadolakas.eu/',
				'eh':'http://www.eladohaz.com/',
				'te':'http://www.eladoalakasom.hu/'
			}

function getPath(str, obj)
{
	return obj[str.replace('.gif','')];
}

// a kívánt marker azonosító kiszedése, felhasználás: események hozzáadásánál a különböző jelölőknél
function getMarkerNum(arr, item)
{
	for(var i=0; i<arr.length; i++)
	{
		if(arr[i] == item)
		{
			return i;
		}
	}
}

// megjelenítő függvény a labelhez és a kisablakhoz
function showInfo(id, top, left, content)
{
	var div = $(id);
	var spl = content.split('|');
	var kerulet = (spl[4] != '') ? spl[4] + ' - ' : '';	

	var title = spl[1] + ((spl[10])? ' - ' + spl[10] : '');

	if(spl[9].match('eh'))
	{
		title = (spl[10])? spl[1].replace('ház',spl[10]) : spl[1];
	}
	if(spl[9].match('te'))
	{
		title = ((spl[10])? spl[1].replace('lakás',spl[10]) : spl[1]);
	}

	div.innerHTML = title + ' | '  + kerulet + ' ' + spl[5] + '<br/>' + spl[2] + ' | ' + spl[3];
	div.style.top = top + 'px';
	div.style.left =left + 'px';
	div.style.display = 'block';
}

// megjelenítő függvény a labelhez és a kisablakhoz
function showInfraInfo(id, top, left, content)
{
	var div = $(id);
	var txt = content.split('|');
	div.innerHTML =  txt[1] + ' ' + txt[2] + ' (' + txt[3] + ' méterre)' ;
	div.style.top = top + 'px';
	div.style.left =left + 'px';
	div.style.display = 'block';	
}

// címke megjelenítése
function showInfoWindow(id, top, left, content, point)
{		
	var div = $('MAP_infoWindow');
	div.style.height = '115px';
	var spl = content.split('|');
	div.innerHTML = infoWindowInnerHTML;
	$('iw_top').style.backgroundColor = bgcolors[spl[9].replace('.gif','')];
	$('iw_opener_a').style.color = bgcolors[spl[9].replace('.gif','')];

	var title;

	title = spl[1] + ((spl[10])? ' - ' + spl[10] : '');

	if(spl[9].match('eh'))
	{
		title = (spl[10])? spl[1].replace('ház',spl[10]) : spl[1];
	}
	if(spl[9].match('te'))
	{
		title = (spl[10])? spl[1].replace('lakás',spl[10]) : spl[1];
	}
	
	$('iw_type').innerHTML = title;//spl[1];

	$('iw_district').innerHTML = (spl[4] != '')? spl[4] + ' ' : '';
	$('iw_street').innerHTML = spl[5];
	$('iw_price').innerHTML = spl[2] + ((spl[3] != '')? ' | ' + spl[3] + '': '');	
	var emelet = (spl[6] != '0')? spl[6].replace('.','') + ((spl[9].match('eh'))? ' szint' : '. emelet') : '';
	var heating = (spl[9].match('eh'))? hazfutes[spl[7]] : futes[spl[7]];
	$('iw_etage').innerHTML = emelet;// + ((emelet != '')? ' | ' : '') + ( (spl[7] != '')? ' fűtés: ' + futes : '');	
	$('iw_heating').innerHTML = 'fűtés: ' + heating;
	if(spl[11] != 'undefined')
	{
		$('iw_opener_a').href = spl[11];
		$('iw_opener_img').href = spl[11];
	}
	else
	{
		$('iw_opener_a').href = getPath(spl[9] , urls) + 'view?tid=' + spl[0];
		$('iw_opener_img').href = getPath(spl[9] , urls) + 'view?tid=' + spl[0];
	}
	div.style.top = top + 'px';
	div.style.left =left + 'px';
	div.style.display = 'block';
	$('iw_closediv').onclick = function()
	{
		$('MAP_infoWindow').style.display = 'none';
		document.title = defaultTitle;
	}
	
	// infrastruktúra
	if($('iw_infra_a'))
	{
		$('iw_infra_a').onclick = function()
		{
			geocoder.getLocations(point, function(response)
			{
				if(response && response.Status.code == 200) 
				{		  
					place = response.Placemark[0]; 							
					var addr = place.address.replace('Magyarország','');
					window.open('http://www.inframap.hu/1po5l1bopaetdxty7an#' + addr,'','width=400,height=354,resizable=0'); 
				}
			});
		}
	}

	$('iw_left_img').onload = function()
	{
		this.style.display = 'block';
	}
	var img = (spl[8] != '')? spl[8] : defaultImage;
	
	if(spl[8].match('small_'))
	{
		$('iw_left_img').src = spl[8];
	}
	else
	{
		$('iw_left_img').src = getPath(spl[9] , paths) + img;
	}
	
	if(spl[12] != '')
	{
		div.style.height = '128px';
		$('iw_estate_agent_layer').style.display = 'block';
		$('iw_estate_agent').href = spl[12];
		$('iw_estate_agent').innerHTML = spl[13];
	}
	
	document.title = spl[1] + ' ' + ((spl[4] != '')? spl[4] + ' ' : '') + spl[5] + (spl[2] + ((spl[3] != '')? ' | ' + spl[3] + '': ''));
}

// label és kisablak elrejtése
function hideInfo(id)
{
	var div = $(id);
	div.style.display = 'none';					
}

// mouseover-es címke létrhehozása
function createInfoLabel()
{	
	var label=document.createElement('div');
	label.setAttribute('id','MAP_infoLabel');
	label.style.display = 'none';
	document.body.appendChild(label);
	label.style.position = 'absolute';
	label.style.color = '#000';
	label.style.zIndex = 2;
	label.style.background = "#fff";
	label.style.height = '25px';
	label.style.fontSize = '7pt';
	label.style.whiteSpace = 'nowrap';	
	label.letterSpacing = '2pt';
	label.style.border = '#777 1px solid';
	label.style.padding = '3px 8px 0px 8px';
	return label;	
}

// mouseover-es címke létrhehozása -infra
function createInfraLabel()
{	
	var label=document.createElement('div');
	label.setAttribute('id','MAP_infraLabel');
	label.style.display = 'none';
	document.body.appendChild(label);
	label.style.position = 'absolute';
	label.style.color = '#fff';
	label.style.zIndex = 2;
	label.style.background = "#555";
	label.style.height = '15px';
	label.style.fontSize = '7pt';
	label.style.whiteSpace = 'nowrap';	
	label.letterSpacing = '2pt';
	label.style.border = '#777 1px solid';
	label.style.padding = '3px 8px 0px 8px';
	return label;	
}


//kisablak létrehozása
function createInfoWindow()
{
	var div = document.createElement('div');
	div.setAttribute('id','MAP_infoWindow');
	div.style.display = 'none';
	div.style.position = 'absolute';
	div.style.color = 'rgb(100,100,100)';
	div.style.zIndex = 10;
	div.style.background = '#fff';
	div.style.border = 'rgb(187,187,187) 1px solid';
	div.style.padding = '1px';
	div.style.width = '260px';
	div.style.height = '115px';
	div.style.top = 0;
	div.style.left = 0;		

	document.body.appendChild(div);
	return div;
}

// Alkalmazás inicializálása
function load() 
{
   if (GBrowserIsCompatible()) 
   {
	  var zoom = (location.search == '')? 7 : 16;
      map = new GMap2(document.getElementById("map"));
      map.setCenter(new GLatLng(47.50143120349543, 19.044113159179688), zoom); 
	  map.addControl(new GLargeMapControl());
	  map.addControl(new GOverviewMapControl());
   	  map.enableDoubleClickZoom();
	  map.enableContinuousZoom();      
	  setViews();
	  setBackgroundImages();
	  geocoder = new GClientGeocoder();
	  
      // infoLabel hozzáadása
	  mapTrayShadow = map.getPane(G_MAP_FLOAT_SHADOW_PANE);
	  mapTrayShadow.appendChild(createInfoLabel());
	  mapTrayShadow.appendChild(createInfraLabel());

      //infoWindow hozzáadása
	  mapTrayFloat = map.getPane(G_MAP_FLOAT_PANE);
	  mapTrayFloat.appendChild(createInfoWindow());     

	  zoomManager = new GMarkerManager(map, {borderPadding:20});
	  var datalength = data.length;	  

	  num_el = 0;
	  num_kl = 0;
	  num_eh = 0;
	  num_te = 0;

	  var info = '';
	  for(var i=0; i<datalength; i++)
	  {
		  if(!data[i]) break;
		  if(data[i].img.match('el')) num_el++;
		  if(data[i].img.match('kl')) num_kl++;
		  if(data[i].img.match('eh')) num_eh++;
		  if(data[i].img.match('te')) num_te++;

		  var smallicon = new GIcon();  		 
		  var bigicon = new GIcon();
		  
		  smallicon.image = './css/small_' + data[i].img;
		  smallicon.iconSize = new GSize(10,10);
		  smallicon.iconAnchor = new GPoint(5,5);
		
		  bigicon.image = './css/big_' + data[i].img;
		  bigicon.iconSize = new GSize(25,25);
		  bigicon.iconAnchor = new GPoint(18,0);				
		  
		  var kerulet = (data[i].ker !='')? keruletek[data[i].ker] : data[i].ker;		  
		  if(typeof kerulet == 'undefined') kerulet = data[i].ker;	

		  var partner = (typeof data[i].p != 'undefined')? data[i].p : '';
		  var site = (typeof data[i].site != 'undefined')? data[i].site : '';
		  
		  var link = (data[i].link == '')? '' : data[i].link;		    

		  var tipus = (data[i].tipus)? data[i].tipus : '';
		  info = data[i].id + '|' + data[i].tip + '|' + data[i].ar + '|' + data[i].alap + '|' + kerulet + '|' + data[i].ut + '|' + data[i].em + '|' + data[i].fut + '|' + data[i].foto + '|' + data[i].img + '|' + tipus + '|' + link + '|' + site + '|' + partner; 
		  shortInfos.push(info);

		  smallMarker = new GMarker(new GLatLng(data[i].lat , data[i].lng), {icon:smallicon});	
		  smallMarkerArray.push(smallMarker);	 		  		 
		  		  
		  bigMarker = new GMarker(new GLatLng(data[i].lat , data[i].lng), {icon:bigicon});
		  bigMarkerArray.push(bigMarker);
	  }

	  mc = new MarkerClusterer(map, bigMarkerArray, {});
	  /*
	  zoomManager.addMarkers(smallMarkerArray, 5, smallIconZoom);	  
	  zoomManager.addMarkers(bigMarkerArray, 15, bigIconZoom);	
      zoomManager.refresh();
	  */

	  $('el_layer_num').innerHTML = '(' + num_el.toString() + ')';
	  $('kl_layer_num').innerHTML = '(' + num_kl.toString() + ')';
	  $('eh_layer_num').innerHTML = '(' + num_eh.toString() + ')';
	  $('te_layer_num').innerHTML = '(' + num_te.toString() + ')';
	  
	  for(i=0; i<datalength; i++)
	  {
		  if(!data[i]) break;
		  // kicsi jelölők eseményei		  
		  GEvent.addListener(smallMarkerArray[i], 'mouseover', function()
		  {					  			  
			  var num = getMarkerNum(smallMarkerArray, this);
			  var point = this.getLatLng();
			  var coords = map.fromLatLngToDivPixel(point);		  		  		  
		      hideInfo('MAP_infoLabel');
		      showInfo('MAP_infoLabel', parseInt(coords.y)-15, parseInt(coords.x)+10, shortInfos[num]);			  		  
		  });	
          
		  GEvent.addListener(smallMarkerArray[i], 'mouseout', function()
		  {		
			  hideInfo('MAP_infoLabel');			  		  
		  });

		  GEvent.addListener(smallMarkerArray[i], 'click', function()
		  {					  			  
			  var num = getMarkerNum(smallMarkerArray, this);
			  var point = this.getLatLng();
			  var coords = map.fromLatLngToDivPixel(point);		  		  		  
		      hideInfo('MAP_infoWindow');
			  hideInfo('MAP_infoLabel');
			  var width = (parseInt($('MAP_infoWindow').style.width)/2);
  			  var height = (parseInt($('MAP_infoWindow').style.height)/2);				  
		      //showInfoWindow('MAP_infoWindow', (parseInt(coords.y)+9)-height, (parseInt(coords.x)-9)-width, shortInfos[num]);		
			  showInfoWindow('MAP_infoWindow', (parseInt(coords.y)+57)-height, (parseInt(coords.x)+130)-width, shortInfos[num], point);	
			  map.panTo(new GLatLng(point.y, point.x));
		  });	         		            		 

		  // nagy jelölők eseményei
		  GEvent.addListener(bigMarkerArray[i], 'mouseover', function()
		  {					  			  
			  var num = getMarkerNum(bigMarkerArray, this);
			  var point = this.getLatLng();
			  var coords = map.fromLatLngToDivPixel(point);		  		  		  
		      hideInfo('MAP_infoLabel');
		      showInfo('MAP_infoLabel', parseInt(coords.y)-10, parseInt(coords.x)+10, shortInfos[num]);			  		  
		  });	
          
		  GEvent.addListener(bigMarkerArray[i], 'mouseout', function()
		  {		
			  hideInfo('MAP_infoLabel');			  		  
		  });

		  GEvent.addListener(bigMarkerArray[i], 'click', function()
		  {		
			  deleteInfraMarkers();			  
			  var that = this;
			  var num = getMarkerNum(bigMarkerArray, this);
			  var point = this.getLatLng();
			  var coords = map.fromLatLngToDivPixel(point);		  		  		  
		      hideInfo('MAP_infoWindow');
			  hideInfo('MAP_infoLabel');
			  var width = (parseInt($('MAP_infoWindow').style.width)/2);
  			  var height = (parseInt($('MAP_infoWindow').style.height)/2);				  
		      //showInfoWindow('MAP_infoWindow', (parseInt(coords.y)+17)-height, (parseInt(coords.x)-15)-width, shortInfos[num]);	
			  showInfoWindow('MAP_infoWindow', (parseInt(coords.y)), (parseInt(coords.x)+6), shortInfos[num], point);	
			  map.panTo(new GLatLng(point.y, point.x));				  

			  geocoder.getLocations(point, function(response)
			  {
				if(response && response.Status.code == 200 && map.getZoom() >= 15) 
				{	
					$('infraInfoLabel').style.display = 'block';					
					place = response.Placemark[0]; 							
					var addr = place.address.replace('Magyarország','');
					GDownloadUrl(Utils.ROOT + '/getpoints.php?lat=' + point.y + '&lng=' + point.x + '&address=' + encodeURIComponent(addr), function(txt)
					{
						$('infraInfoLabel').style.display = 'none';
						try
						{
							var data = eval(txt);
							load_points(data[0]);					
						}
						catch(e){}
					});									
				}
			  });			 	
		  });	          
	  }

	  GEvent.addListener(map, 'zoomend', function(oldlevel, newlevel)
	  {		  			  		  
		  hideInfo('MAP_infoWindow');
		  deleteInfraMarkers();
		  setBackgroundImages();		  
		  map.panBy(new GSize(0.1,0.1));		 
	  });	 	 	 

	  GEvent.addListener(map, 'moveend', function()
	  {
		  //hideInfo('MAP_infoWindow');		  		  
		  //deleteInfraMarkers();
		  setTimeout('setMarkers();',1);
		  if($('cb_kl').checked)
		  {			 
			  setTimeout('setMarkers_kiado();',1);
		  }
	  });	

	  GEvent.addListener(map, 'dragend', function()
	  {
		  //hideInfo('MAP_infoWindow');		  		  
		  //deleteInfraMarkers();
		  setTimeout('setMarkers();',1);
	  });	
	  	  
	  waitingForLoad();	  
	  initPolygon();
	  if($('areaItemHolder')) $('areaItemHolder').innerHTML = '';
	  areaList = new Array();
	  listAreas();	  
   }
}

function deleteInfraMarkers()
{
	for(var i=0; i<markerArray.length; i++)
	{
		map.removeOverlay(markerArray[i]);
	}
	markerArray = new Array();
}

function load_points(data)
{	      
   var datalength = data.length;	  
   var info = '';
   markerArray = new Array();   
   shortInfos_ = new Array();
   
   for(var i=0; i<datalength; i++)
   {			 
	  smallicon = new GIcon();  		 		 		  
	  smallicon.image = Utils.ROOT + '/css/' + data[i].mc + '.png';	   
	  smallicon.iconSize = new GSize(18,18);
	  smallicon.iconAnchor = new GPoint(9,9);		   		
		  		
	  info = data[i].id + '|' + data[i].type + '|' + data[i].optname + '|' + data[i].d;
	  shortInfos_.push(info);

	  smallMarker = new GMarker(new GLatLng(data[i].lat , data[i].lng),{icon:smallicon});	
	  smallMarker.num = i;

	  GEvent.addListener(smallMarker, 'mouseover', function(){
		  var point = this.getLatLng();
		  var coords = map.fromLatLngToDivPixel(point);		  		  		  
	      hideInfo('MAP_infraLabel');
		  showInfraInfo('MAP_infraLabel', parseInt(coords.y)-20, parseInt(coords.x)+3, shortInfos_[this.num]);		  	
	  });

	  GEvent.addListener(smallMarker, 'mouseout', function(){
		  if($('MAP_addressLabel'))
	      {
		     $('MAP_addressLabel').parentNode.removeChild($('MAP_addressLabel'));
	      }	
		  $('MAP_infraLabel').style.height = '15px';
	      //$('MAP_infoLabel').style.background = "url('../css/arrow_down.gif') bottom left no-repeat #555";		  
		  hideInfo('MAP_infraLabel');
	  });

	  GEvent.addListener(smallMarker, 'click', function(){
		  var that = this;
		  //markerClick(that);
	  });

	  markerArray.push(smallMarker);
	  map.addOverlay(smallMarker);
   }	  	  
}

function waitingForLoad()
{		
	setTimeout(function(){
		if(!map.isLoaded())
		{			
			waitingForLoad();
		}
		else
		{			
			setTimeout('setHashMarker()',2000);
			return;
		}
	},10);
}

function setHashMarker()
{
	if(location.search == '') return;
	var txt = location.search.substring(1,location.search.length).split('&');	
	var id = txt[1].split('=')[1];
	var type = txt[0].split('=')[1];
	deleteInfraMarkers();
	var datalength = data.length;
	for(var i=0; i<datalength; i++)
	{
		if(!data[i]) break;
		if(data[i].id == id && data[i].img.match(type))
		{		
			var num = i;
			var point = bigMarkerArray[i].getLatLng();				  		  		  
		    hideInfo('MAP_infoWindow');
			hideInfo('MAP_infoLabel');
			var width = (parseInt($('MAP_infoWindow').style.width)/2);
  			var height = (parseInt($('MAP_infoWindow').style.height)/2);					    			
			map.panTo(new GLatLng(point.y, point.x));			
			var coords = map.fromLatLngToDivPixel(point);				
			showInfoWindow('MAP_infoWindow', (parseInt(coords.y)), (parseInt(coords.x)+5), shortInfos[num]);	

			  geocoder.getLocations(point, function(response)
			  {
				if(response && response.Status.code == 200 && map.getZoom() >= 13) 
				{	
					$('infraInfoLabel').style.display = 'block';	
					place = response.Placemark[0]; 							
					var addr = place.address.replace('Magyarország','');
					GDownloadUrl(Utils.ROOT + '/getpoints.php?lat=' + point.y + '&lng=' + point.x + '&address=' + encodeURIComponent(addr), function(txt)
					{
						$('infraInfoLabel').style.display = 'none';	
						try
						{
							var data = eval(txt);
							load_points(data[0]);					
						}
						catch(e){}
					});									
				}
			  });			 

			return;
		}
	}
}

function setMarkers()
{	  
	hideMarkers();
	setSearchSettings();
	var datalength = data.length;	

	num_el = 0;
	num_kl = 0;
	num_eh = 0;
	num_te = 0;

	for(var k=0; k<datalength; k++)
	{	
		if(!data[k]) break;
		if( (data[k].img == eladoLakas || data[k].img == kiadoLakas || data[k].img == tulajdonostol || data[k].img == eladoHaz)
			&& ( parseInt(data[k].ar) >= priceFromM  &&  parseInt(data[k].ar) <= priceToM )
			&& ( parseInt(data[k].alap) >= nmFrom  &&  parseInt(data[k].alap) <= nmTo) )
		{
			smallMarkerArray[k].show();
			bigMarkerArray[k].show();
			if(data[k].img == eladoLakas) num_el++;
			if(data[k].img == kiadoLakas) num_kl++;
			if(data[k].img == tulajdonostol) num_te++;
			if(data[k].img == eladoHaz) num_eh++;			
		}	
		else
		{
			smallMarkerArray[k].hide();
			bigMarkerArray[k].hide();
		}
	}

	if($('cb_kl').checked)	setMarkers_kiado();

    $('el_layer_num').innerHTML = '(' + num_el.toString() + ')';
    $('kl_layer_num').innerHTML = '(' + num_kl.toString() + ')';
    $('eh_layer_num').innerHTML = '(' + num_eh.toString() + ')';
    $('te_layer_num').innerHTML = '(' + num_te.toString() + ')';  
}

function setMarkers_kiado()
{	
	hideMarkers();
	setSearchSettings();
	var datalength = data.length;
	num_kl = 0;
	for(var k=0; k<datalength; k++)
	{
		if(!data[k]) break;
		if(data[k].img == kiadoLakas) smallMarkerArray[k].hide();
		if( (data[k].img == eladoLakas || data[k].img == kiadoLakas || data[k].img == tulajdonostol || data[k].img == eladoHaz)
			&& ( parseInt(data[k].ar) >= priceFromE  &&  parseInt(data[k].ar) <= priceToE )
			&& ( parseInt(data[k].alap) >= nmFrom  &&  parseInt(data[k].alap) <= nmTo) )
		{		
			smallMarkerArray[k].show();
			bigMarkerArray[k].show();
			if(data[k].img == kiadoLakas) num_kl++;
		}	
		else
		{
			smallMarkerArray[k].hide();
			bigMarkerArray[k].hide();
		}
	}
	$('kl_layer_num').innerHTML = '(' + num_kl.toString() + ')';
}

function setBackgroundImages()
{	
  var divs = $('mapheader').getElementsByTagName('div');
  var class_old, class_new;  
 
  if(map.getZoom() > smallIconZoom)
  {				  	  
	for(var i=0; i<divs.length; i++)
    {							
		class_old = divs[i].id.split('_')[0] + '_layer_small';
		class_new = divs[i].id.split('_')[0] + '_layer_big';
		divs[i].className = divs[i].className.replace(class_old,class_new);		
	}	
	setTimeout('setMarkers();',1);
  }
  else
  {					
	for(var i=0; i<divs.length; i++)
	{			
		class_old = divs[i].id.split('_')[0] + '_layer_big';
		class_new = divs[i].id.split('_')[0] + '_layer_small';
		divs[i].className = divs[i].className.replace(class_old,class_new);				
	}
	setTimeout('setMarkers();',1);
  }
}

function setCheckBoxes()
{
	var cbs = $('mapheader').getElementsByTagName('input');
	for(var i=0; i<cbs.length; i++)
	{
		if(cbs[i].type == 'checkbox')
		{
			cbs[i].onclick = function()
			{	
				setSearchSettings();
				var type = this.id.split('_')[1];																
				setMarkers();
																			
				if(this.id.match('kl'))
				{
					if(this.checked)
					  $('priceButtonE').disabled = false;
					else
					  $('priceButtonE').disabled = true;
				}				
			}
		}		
	}
}

function initSearchElements()
{
	var cbs = $('mapheader').getElementsByTagName('input');
	for(var i=0; i<cbs.length; i++)
	{
		if(cbs[i].type == 'checkbox')
		{
			cbs[i].checked = true;
		}
	}
	var inputs = $('search').getElementsByTagName('input');
	for(var i=0; i<inputs.length; i++)
	{
		if(inputs[i].type == 'text')
		{
			inputs[i].value = '';
		}
	}
	$('priceButtonE').disabled = false;
}

function setSearchSettings()
{	
	eladoLakas = ($('cb_el').checked)? 'el.gif' : '';
	kiadoLakas = ($('cb_kl').checked)? 'kl.gif' : '';
	eladoHaz = ($('cb_eh').checked)? 'eh.gif' : '';
	tulajdonostol = ($('cb_te').checked)? 'te.gif' : '';	
	priceFromM = ($('priceFromM').value == '')? 0 : parseInt($('priceFromM').value);
	priceToM = ($('priceToM').value == '')? 100000000 : parseInt($('priceToM').value);
	priceFromE = ($('priceFromE').value == '')? 0 : parseInt($('priceFromE').value);
	priceToE = ($('priceToE').value == '')? 10000000000000 : parseInt($('priceToE').value);
	nmFrom = ($('nmFrom').value == '')? 0 : parseInt($('nmFrom').value);
	nmTo = ($('nmTo').value == '')? 100000 : parseInt($('nmTo').value);
}

// jelölők eltüntetése
function hideMarkers()
{
	try
	{
	var datalength = data.length;
	for(var i=0; i<datalength; i++)
	{
		smallMarkerArray[i].hide();		
		bigMarkerArray[i].hide();
	}
	}
	catch(e){e.message + ' ' + i}
}

function setPriceInputs()
{
	$('priceFromM').onkeypress = setKeyUp;
	$('priceToM').onkeypress = setKeyUp;
	$('priceFromE').onkeypress = setKeyUp;
	$('priceToE').onkeypress = setKeyUp;
	$('nmFrom').onkeypress = setKeyUp;
	$('nmTo').onkeypress = setKeyUp;
}

function setPriceButtons()
{
	$('priceButtonM').onclick = function()
	{
		$('priceButtonE').disabled = true;
		$('cb_kl').checked = false;		
		$('mapheader').className += ' blinker';
		setTimeout(function(){$('mapheader').className = $('mapheader').className.replace(' blinker','')},500);		
		setMarkers();
	}

	$('priceButtonE').onclick = function()
	{
		$('cb_el').checked = false;
		$('cb_eh').checked = false;
		$('cb_te').checked = false;
		$('mapheader').className += ' blinker';
		setTimeout(function(){$('mapheader').className = $('mapheader').className.replace(' blinker','')},500);	
		setMarkers_kiado();
	};	

	$('nmButton').onclick = function()
	{		
		$('mapheader').className += ' blinker';
		setTimeout(function(){$('mapheader').className = $('mapheader').className.replace(' blinker','')},500);	
		setMarkers();
	};	
}

function setRefreshButton()
{
	$('refreshButton').onclick = function()
	{		
		$('refreshLoader').className = 'load';
		$('refreshButton').disabled = true;
		GDownloadUrl("maptext.txt", function(text)
		{			
			$('refreshLoader').className = 'noLoad';
			$('refreshButton').disabled = false;
			smallMarkerArray = new Array();
			bigMarkerArray = new Array();
			shortInfos = new Array();
			data = eval(text);	

			num_el = 0;
			num_kl = 0;
			num_eh = 0;
			num_te = 0;

			load();

			initSearchElements();
			setCheckBoxes();
		    setPriceInputs();
		    setPriceButtons();
		});
	}
}

function setKeyUp(e)
{
	e || (e = window.event);
	var key;
	if(e.which)
		key = e.which;
	else
		key = e.keyCode; 		
	if((key < 48 || key > 57) && key != 8 && key != 9)
	{
      if(e.preventDefault)
	  {
		 e.preventDefault();
         e.stopPropagation();
	  }
      else 
	  {
		 e.cancelBubble = true;
         e.returnValue = false;
	  }      			
	}
}

function setSidebar()
{
	var sb = ['el_sidebar','kl_sidebar','eh_sidebar','te_sidebar'];
	for(var i=0; i<sb.length; i++)
	{
		$(sb[i]).onmouseover = function()
		{
			var img = this.id.split('_')[0];		
			$(this.id + '_pre').style.backgroundImage = 'url(css/on_' + img + '.gif)'; 
		}

		$(sb[i]).onmouseout = function()
		{
			var img = this.id.split('_')[0];		
			$(this.id + '_pre').style.backgroundImage = 'url(css/off_' + img + '.gif)'; 
		}
	}
}

function setCaptchaRefresh()
{
	try
	{
		$('captchaRefresh').onclick = function()
		{
		   $('regButtonOk').disabled = true;
		   var oXML = new FCKXml();
		   oXML.LoadUrl(Utils.ROOT + '/setCaptcha.php?todo=captha',function(xml)
		   {	
				var src = xml.SelectSingleNode('doc/src').firstChild.nodeValue;
				$('captcha_img').src = 'imagebuilder.php?id=' + src;
				$('regButtonOk').disabled = false;
		   });
		}
	}
	catch(e){}
}

function showAddress(lat, lng, address, zoom) 
{  	
	var point = new GLatLng(lat,lng); 
	map.clearOverlays();
	map.setCenter(point, zoom);					
	if(marker)
	{
		map.removeOverlay(marker);
		marker = null;
	}
	marker = new GMarker(point);    
	map.addOverlay(marker);								
	var lat = point.y;
	var lng = point.x;
	var oXML = new FCKXml();		    
	GDownloadUrl(Utils.ROOT + '/getpoints.php?lat=' + lat + '&lng=' + lng, function(txt){
		var data = eval(txt);
		load_points(data[0], data[1][0]);
	});	
}

// a különböző nézetgombok beállítása
function setViews()
{
	/*
	$('mapView').onclick= function()
	{
		map.setMapType(G_MAP_TYPE);
	}

	$('satelliteView').onclick= function()
	{
		map.setMapType(G_SATELLITE_TYPE);
	}

	$('hybridView').onclick= function()
	{
		map.setMapType(G_HYBRID_TYPE);
	}
	*/
}

function processResponse(text)
{   
	$('map').style.background = '';
	//$('refreshButton').disabled = false;
	data = eval(text);		
    GDownloadUrl("infoWindow.html" , function(text){
		infoWindowInnerHTML = text;
		load();		
	});		
}

window.onload = function()
{  
   var oXML = new FCKXml();
   oXML.LoadUrl(Utils.ROOT + '/data/language_' + LANG + '.xml',function(xml){
       language = xml;	
	   defaultTitle = document.title;
       GDownloadUrl("maptext.txt", processResponse);
	   
	   initSearchElements();
	   setCheckBoxes();
	   setPriceInputs();
	   setPriceButtons(); 
	   setSettingboxInputs();
	   initStateBox();   
	   messageLightbox.init();
	   setMenus();	   
	   setLogButtons();	
	   setSettings();	  
	   setCaptchaRefresh();

	   if($('regform'))
	   {
		  var regFormSubmitter = new formSubmitter('regform','reg_form_loader', Utils.ROOT + '/reg.php');
		  regFormSubmitter.setLangPrefix('reg.error.');	
		  regFormSubmitter.doAtSuccess = function()
		  {
		      location.reload(true);
		  }
	   }

	   if($('loginform'))
	   {
		   var loginFormSubmitter = new formSubmitter('loginform','login_form_loader', Utils.ROOT + '/login.php');
		   loginFormSubmitter.setLangPrefix('login.error.');	
		   loginFormSubmitter.method = 'login';
		   loginFormSubmitter.showSuccessMessage = false;
		   loginFormSubmitter.doAtSuccess = function()
		   {
			   messageLightbox.hide();
			   $('loginbox').style.display = 'none';
			   location.reload(true);
		   }
	   }

	   if($('lostpassform'))
	   {
		   var lostpassFormSubmitter = new formSubmitter('lostpassform','lostpass_form_loader', Utils.ROOT + '/newPass.php');
		   lostpassFormSubmitter.setLangPrefix('lostpass.error.');	
		   lostpassFormSubmitter.method = 'lostpass';
		   lostpassFormSubmitter.doAtSuccess = function()
		   {
			   $('lostpassbox').style.display = 'none';
			   messageLightbox.hide();
		   }
	   }  
   })
}

window.onunload = function()
{
	GUnload();
}

