var gmap_on = false;
var gmap_in_admin = false;
var gmap_x = 0;
var gmap_y = 0;
var gmap_zoom = 5;

var map;

// маркер для админа
icons_admin = new GIcon();
icons_admin.image = '/SKINS/img/gmap_admin.gif';
icons_admin.shadow = '/blank.gif';
icons_admin.iconSize = new GSize(9, 9);
icons_admin.shadowSize = new GSize(9, 9);
icons_admin.iconAnchor = new GPoint(4, 4);

var admin_marker = new GMarker(new GLatLng(0, 0), icons_admin);
var admin_marker_active = false;
var admin_y = 0;
var admin_x = 0;

function gmap_init(){
	if(GBrowserIsCompatible()){
		map = new GMap2(document.getElementById('map_canvas'));

        /* ТИПЫ КАРТ */
		// G_NORMAL_MAP – вид по умолчанию.
		// G_SATELLITE_MAP – снимки, сделанные со спутника, для Google Планета Земля.
		// G_HYBRID_MAP – комбинация обычных изображений и режима просмотра со спутника.
		// G_DEFAULT_MAP_TYPES – набор этих трех типов, удобен для повторной обработки.
		// G_PHYSICAL_MAP – физическая карта, основанная на информации о ландшафте.
		map.setMapType(G_NORMAL_MAP);
		map.setCenter(new GLatLng(gmap_y, gmap_x), gmap_zoom);
		map.setUIToDefault();
		map.disableScrollWheelZoom();

		if(gmap_in_admin){
			if(admin_y || admin_x) gmap_set_admin_point(new GLatLng(admin_y, admin_x));

			GEvent.addListener(map, 'click', function(overlay, latlng){
				if(latlng){
					document.getElementById('coord_y').value = latlng.lat();
					document.getElementById('coord_x').value = latlng.lng();
					gmap_set_admin_point(latlng);
				}
			});
		}
	}
}

function gmap_set_admin_point(latlng){
	admin_marker.setLatLng(latlng);

	if(!admin_marker_active){
		map.addOverlay(admin_marker);
		admin_marker_active = true;
	}
}



var map_points = new Array();
var cur_x = 0, cur_y = 0;
function gmap_draw_items(){
	for(var i= 0, l = map_points.length; i < l; i++){
		var ico = new GIcon();
		ico.image = '/PROG/GMAP_ICONS/' + map_points[i].id + '.png';
		ico.shadow = '/blank.gif';
		ico.iconSize = new GSize(map_points[i].w, map_points[i].h);
		ico.shadowSize = new GSize(map_points[i].w, map_points[i].h);
		ico.iconAnchor = new GPoint(Math.floor(map_points[i].w / 2), Math.floor(map_points[i].h / 2));
		ico.infoWindowAnchor = new GPoint(Math.floor(map_points[i].w / 2), Math.floor(map_points[i].h / 2));

		var coord = new GLatLng(map_points[i].y, map_points[i].x);

		var marker = new GMarker(coord, {icon: ico, title: decodeURIComponent(map_points[i].title)});
		marker.text = map_points[i].text;

		GEvent.addListener(marker, 'click', function(){
			this.openInfoWindowHtml(this.text);
		});

		map.addOverlay(marker);
	}
}



add_handler(window, 'load', function(){
	if(gmap_on){
		gmap_init();
		gmap_draw_items();
	}
});
