var map = '';
var hunCenter = new google.maps.LatLng(47.103783870991606, 19.719580078125);	//magyarország közepe
var mapZoom=7;								// Utolsó zoom beállítás
var most = new Date();			
var TS = "";	//most.getTime();			// tile2 paramétere, mit rajzoljon

var myOptions = {
//	disableDefaultUI: true,						//minden automatikus beállítást kiszed.
	navigationControl: true,
	navigationControlOptions: {
		style: google.maps.NavigationControlStyle.GLargeMapControl3D
	},
	mapTypeControl: false,
	scaleControl: true,
	minZoom: 7,
	maxZoom: 19
};

/* Ez a copyright szöveg...
<div style="-moz-user-select: none; z-index: 0; position: absolute; right: 3px; bottom: 2px; color: black; font-family: Arial,sans-serif; font-size: 11px; white-space: nowrap; text-align: right;" dir="ltr">
    <span></span>
    <span>Map data &copy;2010  LeadDog Consulting, Europa Technologies - </span>
    <a href="http://www.google.com/intl/en_ALL/help/terms_maps.html" target="_blank" class="gmnoprint terms-of-use-link" style="color: rgb(119, 119, 204);">Terms of Use</a>
    <span></span>
</div>
*/
/*
var googleTile = new google.maps.ImageMapType({
  getTileUrl: function(hunCenter, mapZoom) {
  	return "http://mt3.google.com/mapstt?" +
    "zoom=" + mapZoom + "&x=" + hunCenter.x + "&y=" + hunCenter.y + "&client=google";
  },
  tileSize: new google.maps.Size(256, 256),
  isPng: true
});
*/
var kenyiTile = new google.maps.ImageMapType({
  getTileUrl: function(a, b) {
    var domnum = (a.x + a.y) % 5 + 1;
    if (b < 10) {
      return "http://map" + domnum + ".kenyi.hu/0" + b + "/MOMAPX_" + b + "_" + a.x + "_" + a.y + ".png";
    }
    else 
      if (b < 13) {
        return "http://map" + domnum + ".kenyi.hu/" + b + "/MOMAPX_" + b + "_" + a.x + "_" + a.y + ".png";
      }
      else {
        d = a.x;
        d += '';
        while (d.length < 6) {
          d = "0" + d;
        }
        return "http://map" + domnum + ".kenyi.hu/" + b + "/" + d + "/MOMAPX_" + b + "_" + a.x + "_" + a.y + ".png";
      }
  },
  tileSize: new google.maps.Size(256, 256),
  isPng: true,
  minZoom: 7,
  maxZoom: 16,
  name: "Kenyi",
  alt: "Kenyi háttér"
});

var utadatTile = new google.maps.ImageMapType({
  getTileUrl: function(a, b) {
    var domnum = (a.x + a.y) % 5 + 1;
    if (b < 10) {
      return "http://utmap" + domnum + ".utadat.hu/0" + b + "/MOMAPX_" + b + "_" + a.x + "_" + a.y + ".png";
    }
    else 
      if (b < 13) {
        return "http://utmap" + domnum + ".utadat.hu/" + b + "/MOMAPX_" + b + "_" + a.x + "_" + a.y + ".png";
      }
      else {
        d = a.x;
        d += '';
        while (d.length < 6) {
          d = "0" + d;
        }
        return "http://utmap" + domnum + ".utadat.hu/" + b + "/" + d + "/MOMAPX_" + b + "_" + a.x + "_" + a.y + ".png";
      }
  },
  tileSize: new google.maps.Size(256, 256),
  isPng: true,
  minZoom: 7,
  maxZoom: 14,
  name: "Utadat",
  alt: "Utadat háttér"
});

// OPEN STREET MAP
var openStreetTile = new google.maps.ImageMapType({
  getTileUrl: function(hunCenter, mapZoom) {
    return "http://tile.openstreetmap.org/" + mapZoom + "/" + hunCenter.x + "/" + hunCenter.y + ".png";
  },
  tileSize: new google.maps.Size(256, 256),
  isPng: true,
  minZoom: 7,
  maxZoom: 16,
  name: "OSM",
  alt: "Open Streetmap háttér"
});

// YAHOO
function getYahooTileString(a, b) {     
    var row = ( Math.pow( 2, b ) / 2 ) - a.y - 1; 
    return '&x='.concat(a.x,'&y=',row,'&z=',(18 - b)); 
} 
var yahooTile = new google.maps.ImageMapType({
	getTileUrl: function(hunCenter, mapZoom) {
		mapTypeString = 'http://us.maps3.yimg.com/aerial.maps.yimg.com/tile?v=1.7&t=a';
		var url = mapTypeString + getYahooTileString( hunCenter, mapZoom );	
		return url;
	},
	tileSize: new google.maps.Size(256, 256),
	isPng: true,
  minZoom: 7,
  maxZoom: 16,
	name: "YAHOO",
	alt: "Yahoo háttér"
});	

// BING
var bingTile = new google.maps.ImageMapType({
	getTileUrl: function(hunCenter, mapZoom) {
	var a = hunCenter;
	var b = mapZoom;
	var mapTilesVersion = 401; //22
	var imageSuffix = ".jpeg";
	var mapTypeString = "a";
	var sTile = '000000';
	sTile += (parseInt(a.y.toString(2) * 2) + parseInt(a.x.toString(2)));
	sTile = sTile.substring(sTile.length - b, sTile.length);
	return 'http://ecn.t0.tiles.virtualearth.net/tiles/' + mapTypeString + sTile + imageSuffix + '?g=' + mapTilesVersion;
//	return 'http://' + mapTypeString + sTile.substring(sTile.length-1, sTile.length) + '.ortho.tiles.virtualearth.net/tiles/' + mapTypeString + sTile + imageSuffix + '?g=' + mapTilesVersion;
	},
	tileSize: new google.maps.Size(256, 256),
//	isPng: true,
  minZoom: 7,
  maxZoom: 16,
	name: "BING",
	alt: "Bing háttér"
});	

// OPEN CYCLE MAP
var openCycleTile = new google.maps.ImageMapType({
  getTileUrl: function(hunCenter, mapZoom) {
  	return "http://andy.sandbox.cloudmade.com/tiles/cycle/" + mapZoom + "/" + hunCenter.x + "/" + hunCenter.y + ".png";
  },
  tileSize: new google.maps.Size(256, 256),
  isPng: true,
  minZoom: 7,
  maxZoom: 16,
  name: "cycle",
  alt: "Open Cycle háttér"
});

/*
function CoordMapType(tileSize) {
  this.tileSize = tileSize;
}
CoordMapType.prototype.getTile = function(coord, zoom, ownerDocument) {
  var div = ownerDocument.createElement('DIV');
  div.innerHTML = coord + " zoom: "+zoom;
  div.style.width = this.tileSize.width + 'px';
  div.style.height = this.tileSize.height + 'px';
  div.style.fontSize = '12';
  div.style.borderStyle = 'solid';
  div.style.borderWidth = '1px';
  div.style.borderColor = '#AAAAAA';
  div.style.color = '#000000';
  return div;
};
*/

var tematikusT = {
	getTileUrl: function(coord, zoom) {
		//return "map/tile2.php?" + "zoom=" + zoom + "&x=" + coord.x + "&y=" + coord.y+ "&TS="+TS;
		//return "http://localhost:8080/KenyiWeb/TematTile?zoom=" + zoom + "&x=" + coord.x + "&y=" + coord.y+ "&tem="+TS;
		return "http://java.utadat.hu/KenyiWeb/TematTile?zoom=" + zoom + "&x=" + coord.x + "&y=" + coord.y+ "&tem="+TS;
	},
	tileSize: new google.maps.Size(256, 256),
	isPng: true
};
var TematikMapType = new google.maps.ImageMapType(tematikusT);


google.maps.event.addDomListener(window, "load", function() {
    google.maps.event.trigger(map, 'resize');
}); 

function map_init() {  

	if(pWidth>1250 && pHeight>850){		
		mapZoom=8;
	}		
	map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
	map.setCenter(hunCenter);
	map.setZoom(mapZoom);
//	map.setOptions({ draggableCursor: 'default' });	
//	map.minZoom.set(7);
//	map.maxZoom.set(16);
	map.mapTypes.set('osm', openStreetTile);
	map.mapTypes.set('yahoo', yahooTile);
//	map.mapTypes.set('bing', bingTile);
	map.mapTypes.set('cycle', openCycleTile);	
	map.mapTypes.set('kenyi', kenyiTile);
	map.mapTypes.set('utadat', utadatTile);

	map.setMapTypeId('utadat');
//	map.setMapTypeId(google.maps.MapTypeId.ROADMAP);

	//map.setMapTypeId('osm');
	
	var kovetControlDiv = document.createElement('DIV');
	var kovetControl = new KovetControl(kovetControlDiv, map);
	
	kovetControlDiv.index = 1;
	map.controls[google.maps.ControlPosition.LEFT].push(kovetControlDiv);

	google.maps.event.addListener(map, 'click', function(event) {
//		alert('mapclick');
		clicked_latlng = event.latLng;	
		clickFoglalt=true;		
//		onlyRoadV = false;
//		placeMarkerV = true;			
		mapClickEvent();				//mapclick.js
	});
	
	google.maps.event.addListener(map, 'rightclick', function(event) {
		if (!egerkoveto) {
			egerkoveto = true;
			document.getElementById('kovetopic').innerHTML = "<img src='css/icons/kovetes_inv.png' onclick=\"changeKovetes('ki')\"></img>";
		}
		else if (egerkoveto) {
			egerkoveto = false;
			document.getElementById('kovetopic').innerHTML = "<img src='css/icons/kovetes.png' onclick=\"changeKovetes('be')\"></img>";
		}
/*		if(!egerkoveto){
			document.getElementById('kovetocheckbox').click();			
		}			
		else if(egerkoveto)
			document.getElementById('kovetocheckbox').click();
*/
	});
	
	google.maps.event.addListener(map, 'mousemove', function(event) {
//		alert('mousemove');		
		if(document.getElementById('innermenu1').style.display=='block'){	//ha figyelni kell folyamatosan írom
			moved_latlng = event.latLng;
			if(!helyazonFoglalt){										//ha változtathatom, elküldöm
				helyazonFoglalt = true;			
				mapMouseMoveEvent(event.latLng);				//mapmove.js
			}			
		}
		if(egerkoveto){
			moved_latlng = event.latLng;
			if (!kovetoFoglalt) {
				kovetoFoglalt = true;
				getInfoContent('move', event.latLng);
			}
		}
	});
/*	infobox létrehozása
 	var labelText = "infobox";
    var myIBOptions = {
             content: labelText
            ,boxStyle: {
               border: "1px solid black"
              ,textAlign: "center"
              ,fontSize: "8pt"
              ,width: "50px"
			  ,background: "#ffffff"
             }
            ,disableAutoPan: true
            ,pixelOffset: new google.maps.Size(-25, 0)                      
            ,position: hunCenter
            ,closeBoxURL: ""
            ,isHidden: false
            ,pane: "mapPane"
    };

    var ibLabel = new InfoBox(myIBOptions);           
    ibLabel.open(map);
*/	
/*
  google.maps.event.addListener(clicked_marker, 'dragend', function() {
 //   updateMarkerStatus('Drag ended');
 //   geocodePosition(clicked_marker.getPosition());
	  clicked_latlng = event.latLng;			
		onlyRoadV = false;
		placeMarkerV = true;			
		mapClickEvent();	
  });
*/
/*	GEvent.addListener(point_marker, "dragend", function(latlng){
			pointDragEnd(latlng);
			if (startcel == 1)
				pontStartCelTerkeprol(latlng.lat(),latlng.lng(),'');
			else
				showInfoWindow(latlng);
		});
		GEvent.addListener(point_marker, 'dragstart', function(){
			map.closeInfoWindow();
		});	
*/	
//	map.overlayMapTypes.insertAt(1, new CoordMapType(new google.maps.Size(256, 256)));
//	map.overlayMapTypes.insertAt(0, TematikMapType);

}

function changeMap(tip){
	vszamlalo++;
	vhatter++;
	if(vszamlalo == 5)
		setVisits();
		
	map.setMapTypeId(tip);
}

function changeMapLayer(tip){
	if (map.overlayMapTypes.getLength() == 1) {
		if (tip == 'TOROL') 
			map.overlayMapTypes.removeAt(0);
		else
			map.overlayMapTypes.setAt(0, TematikMapType);
	}
	else{
		if (tip != 'TOROL') 
			map.overlayMapTypes.insertAt(0, TematikMapType);
	}	
}
/* kép a marker helyett...
var image = 'beachflag.png';
var placeBeachMarker = new google.maps.Marker({
  position: clicked_latlng,
  map: map,
  icon: image
});
*/
function zoomToCoord(xmin, ymin, xmax, ymax, coord){
	most = new Date();			
	TS = most.getTime();

	if (coord == 'wgs') {
		var min = new google.maps.LatLng(xmin, ymin);
		var max = new google.maps.LatLng(xmax, ymax);
	}
	var bounds = new google.maps.LatLngBounds(min, max);
	map.setCenter(bounds.getCenter());
	map.fitBounds(bounds);
}
