var options = {};
var map;
var geocoder = null;

var show_places = true;
var showed_markers = new Array();
var showed_travels = new Array();

var noloadmarkers = 0;

//google.load("maps", "2", {callback: initialize});


// маркер существующих мест
var iconRed = new GIcon(); 
iconRed.image = '/bitrix/templates/xteam2/images/map/ico_o.png';
iconRed.shadow = '/bitrix/templates/xteam2/images/map/ico_sh.png';
iconRed.iconSize = new GSize(25, 30);
iconRed.shadowSize = new GSize(35, 30);
iconRed.iconAnchor = new GPoint(7, 30);
iconRed.infoWindowAnchor = new GPoint(7, 30);

var iconGreen = new GIcon(); 
iconGreen.image = '/bitrix/templates/xteam2/images/map/ico_g.png';
iconGreen.shadow = '/bitrix/templates/xteam2/images/map/ico_sh.png';
iconGreen.iconSize = new GSize(25, 30);
iconGreen.shadowSize = new GSize(35, 30);
iconGreen.iconAnchor = new GPoint(7, 30);
iconGreen.infoWindowAnchor = new GPoint(7, 30);

var customIcons = [];
customIcons["travel_g"] = iconGreen;
customIcons["travel_o"] = iconRed;

var iconBg_w = new GIcon(); 
iconBg_w.image = '/bitrix/templates/xteam2/images/map/img_marker_bg.png';
iconBg_w.shadow = '/bitrix/templates/xteam2/images/map/img_marker_bg.png';
iconBg_w.transparent = '/bitrix/templates/xteam2/images/map/img_marker_spacer.png';
iconBg_w.iconSize = new GSize(34, 39);
iconBg_w.shadowSize = new GSize(34, 39);
iconBg_w.iconAnchor = new GPoint(9, 26);
iconBg_w.infoWindowAnchor = new GPoint(17, 0);

var iconBg_o = new GIcon(iconBg_w); 
iconBg_o.image = '/bitrix/templates/xteam2/images/map/img_marker_bg_o.png';
iconBg_o.shadow = '/bitrix/templates/xteam2/images/map/img_marker_bg_o.png';

var photo_icon = new GIcon(); 
photo_icon.iconSize = new GSize(28, 28);
photo_icon.shadowSize = new GSize(28, 28);
photo_icon.transparent = '/bitrix/templates/xteam2/images/map/img_marker_spacer.png';
photo_icon.iconAnchor = new GPoint(6, 23);
photo_icon.infoWindowAnchor = new GPoint(18, 7);

customIcons["iconBg_w"] = iconBg_w;
customIcons["iconBg_o"] = iconBg_o;
customIcons["photo_icon"] = photo_icon;

var markerGroups = {"travel_g": [], "travel_o": [], "iconBg_w": [], "iconBg_o": [], "photo_icon": [], "place_polygon": [], "google": []};

var filt_min_x;
var filt_max_x;
var filt_min_y;
var filt_max_y;

var handXHR = new Array();

function initialize() {

	filt_min_x = $('#filt_min_x').get();
	filt_max_x = $('#filt_max_x').get();
	filt_min_y = $('#filt_min_y').get();
	filt_max_y = $('#filt_max_y').get();

	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"));
		
		if(Tbounds){
			map.setCenter(Tbounds.getCenter(), map.getBoundsZoomLevel(Tbounds)); 
		}else{
			var zoom = 3;
			var latlng = new google.maps.LatLng(55.732523, 37.625384);
		
			/*if (google.loader.ClientLocation) {
			  zoom = 13;
			  latlng = new google.maps.LatLng(google.loader.ClientLocation.latitude, google.loader.ClientLocation.longitude);
			} */
			
			map.setCenter(latlng, zoom);
		}
	 map_type_set(0);	
        var omc = new GOverviewMapControl();
        //omc.setMapType(G_SATELLITE_MAP);
        map.addControl(omc);
		map.clearOverlays();
		//map.enableScrollWheelZoom();
		map.addControl(new GScaleControl());
		
		geocoder = new GClientGeocoder();
		
		if(PAGE_PANO_COUNT>0){
			pano_layer = new PanoramioLayer(map);
			if(show_pano) pano_layer.enable();
		}
		
		GEvent.addListener(map, 'zoomend', function() {
			map_zoom_scroll_act();
		});
		map_zoom_scroll_act();
		
		//arTypes = map.getMapTypes();
		//map.setMapType(arTypes[0]);
		
		GEvent.addListener(map, 'moveend', function() {
			ajax_markers();
		});
		ajax_markers();
	}
}




//маркер - фотка
function createMarkeredLabel(point,type,src,html,polygon,id) {
	marker_bg = new GMarker(point,customIcons[type]);
	map.addOverlay(marker_bg);
	markerGroups[type].push(marker_bg);
	
	customIcons['photo_icon'].image = src;
	var marker = new GMarker(point,customIcons['photo_icon']);
	GEvent.addListener(marker, "click", function(LatLng) {
		map.openInfoWindowHtml(LatLng, html);
	});
	
	if(polygon!=""){
		GEvent.addListener(marker, "mouseover", function() {
			polygon.setStrokeStyle({opacity: 1});
			polygon.setFillStyle({opacity: 0.25});
		});
		GEvent.addListener(marker, "mouseout", function() {
			polygon.setStrokeStyle({opacity: 0.3});
			polygon.setFillStyle({opacity: 0.1});
		});
	}
	
	map.addOverlay(marker);
	markerGroups['photo_icon'][id] = marker;
}



//создать маркер
function createMarker(point, name, html, type, id) {
	var marker = new GMarker(point, customIcons[type]);
	markerGroups[type][id] = marker;

	GEvent.addListener(marker, 'click', function(LatLng) {
		map.openInfoWindowHtml(LatLng, html);
	});
	return marker;
}



//createPolygon
function createPolygon(pts, color, html){
	var polygon = new GPolygon(pts, color, 3, 0.3, color, 0.1);
	map.addOverlay(polygon);
	GEvent.addListener(polygon, "click", function(latlng, index) {
		map.openInfoWindowHtml(latlng,html);
	});
	return polygon;
}



var searchtext = '';

function showAddress(address) {

	for (i in markerGroups['google']) {
		var marker = markerGroups['google'][i];
		map.removeOverlay(marker);
	}
	
searchtext = address;
  if (global_i == 0){
      if (geocoder) {
        geocoder.getLatLng(
          address,
          function(point) {
            if (!point) {
              alert(address + " не найден.");
            } else { 
              clear_markers(true);
			  noloadmarkers=1;
              map.setCenter(point, 8);
              var marker = new GMarker(point);
				GEvent.addListener(marker, "click", function(LatLng) {
					map.openInfoWindowHtml(LatLng, address);
				});
			  markerGroups['google'].push(marker);
              map.addOverlay(marker);
			  GEvent.trigger(marker, "click", point);
              //marker.openInfoWindowHtml(address);
            }
          }
        );
      }
  } else {
	ajax_markers_search($('#map_address').val());
  }
}


//убрать все маркеры
function clear_markers(place){
	var markers = new Array("travel_g", "travel_o", "iconBg_w","iconBg_o","photo_icon","place_polygon");
	showed_travels = [];
	showed_markers = [];
	//var markers = new Array("iconBg_w", "iconBg_o","photo_icon", "place_polygon");
	for (key in markers) {
		for (i in markerGroups[markers[key]]) {
			var marker = markerGroups[markers[key]][i];
			map.removeOverlay(marker);
		}
	}
	map.closeInfoWindow();
}



//галочка - показать путешествия
function toggleGroup() {
	var places = new Array("travel_g", "travel_o");
	if (document.getElementById('travel_layer_ch').checked) show_travels = true;  else show_travels = false;
	for (key in places) {
		for (i in markerGroups[places[key]]) {
			var marker = markerGroups[places[key]][i];
			if (show_travels){
				marker.show();
			} else {
				marker.hide();
			}
		}
	}
	if (show_travels){
		ajax_markers();
	}
}



function pano_layer_rubilnik() {
	try {
		if (document.getElementById('pano_layer_ch').checked)
			pano_layer.enable();
		else
			pano_layer.disable();
	} catch (ex) {
	}
}

function ajax_markers(ex_place, clear) {
	var bounds = map.getBounds();
	var southWest = bounds.getSouthWest();
	var northEast = bounds.getNorthEast();
	
	$(filt_min_x).val(southWest.lng());
	$(filt_max_x).val(northEast.lng());
	$(filt_min_y).val(southWest.lat());
	$(filt_max_y).val(northEast.lat());
	
	var get = "minx="+southWest.lng()+"&maxx="+northEast.lng()+"&miny="+southWest.lat()+"&maxy="+northEast.lat();
	
	if(show_places && PAGE_PLACE_COUNT>0){
		if(noloadmarkers<=0) get += "&getPlace=Y";
		if (ex_place) get += "&ex_place="+ex_place;
		if (PAGE_PLACE_COUNT>0) get += "&count_p="+PAGE_PLACE_COUNT;
		if (prop_type!="") get += "&p_prop_type="+prop_type;
		if (prop_category>0) get += "&p_prop_category="+prop_category;
		if (prop_country>0) get += "&p_prop_country="+prop_country;
		if (prop_admarea>0) get += "&p_prop_admarea="+prop_admarea;
		if (filter_NAME!="") get += "&p_filter_NAME="+filter_NAME;
	}
	if(noloadmarkers>0)noloadmarkers--;
	
	if (show_travels && PAGE_TRAVEL_COUNT>0){
		get += "&getTravels=Y";
		if (PAGE_TRAVEL_COUNT>0) get += "&count_t="+PAGE_TRAVEL_COUNT;
	}
	
	handXHR.push($.ajax({
		type: 'POST',
		url: '/bitrix/templates/xteam2/ajax/ajax_markers_2.php',
		data: get,
		async: true,
		success: function(resp){
			var xml = GXml.parse(resp);
			if (xml.documentElement == null)
				return 0;
			var markers = xml.documentElement.getElementsByTagName("marker");
			var travels = xml.documentElement.getElementsByTagName("travel");

			clear_markers(false);
			clear_markers(true);
		
			ajax_markers_show(markers, travels);
		},
		beforeSend: function()
		{
			for(var a = 0; a < handXHR.length; a++)
			{
				handXHR[a].abort();
				handXHR[a] = false;
				handXHR.shift();
			}
		}
	}));
}


function ajax_markers_search(s_name) {
	var get = "s_name="+s_name;
	
	var data = $.ajax({
		type: "POST",
		url: "/bitrix/templates/xteam2/ajax/ajax_markers_search.php",
		data: get,
		async: false
	}).responseText;
	
	
	var xml = GXml.parse(data);
	//alert(data);
	var markers = xml.documentElement.getElementsByTagName("marker");
	var travels = xml.documentElement.getElementsByTagName("travel");
	
	if(markers.length>0){clear_markers(true);}
	
	arResM = ajax_markers_show(markers, travels);
	points_count = arResM[0];
	bounds_area = arResM[1];
	last_point = arResM[2];
	marker = arResM[3];
	
	if(points_count==1){
		noloadmarkers=2;
		map.setCenter(last_point, 16);
		GEvent.trigger(marker, "click", last_point);
	}else if(points_count>1){
		noloadmarkers=1;
		var zoom = map.getBoundsZoomLevel(bounds_area);
		if (zoom>16) zoom = 16;
		map.setCenter(bounds_area.getCenter(), zoom); 
		//GEvent.trigger(marker, "click", last_point);
	}else{
		alert("Место "+s_name + " не найдено в каталоге X-Team.");
	}
}

function ajax_markers_show(markers, travels) {
	var bounds = map.getBounds();
	var southWest = bounds.getSouthWest();
	var northEast = bounds.getNorthEast();
	var bounds_area = new GLatLngBounds;
	var points_count = 0;
	
	for (var i = 0; i < markers.length; i++) {
		var id = markers[i].getAttribute("id");
		if (!in_array(id, showed_markers)){
			var name = markers[i].getAttribute("name");
			var DETAIL_PAGE_URL = markers[i].getAttribute("DETAIL_PAGE_URL");
			var category = markers[i].getAttribute("category");
			var photo30 = markers[i].getAttribute("photo30");
			var photo110 = markers[i].getAttribute("photo110");
			var color = markers[i].getAttribute("color");
			
			var argeomery = markers[i].getElementsByTagName("geometry");
			if (argeomery[0].textContent)
				var geomery = argeomery[0].textContent;
			else if(argeomery[0].text)
				var geomery = argeomery[0].text;
			
			var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng")));
			
			if (photo30!="" && photo110!=""){
				src = photo110;
				src_icon = photo30;
			}else{
				src = '/bitrix/templates/xteam2/images/z_travel_map.jpg';
				src_icon = '/bitrix/templates/xteam2/images/z_travel_mini.jpg';
			}
			var html = "";
			html += '<table cellspacing="0" cellpadding="0" class="map_cloud">';
			html += '	<tr>';
			html += '		<td width="122"><a href="'+DETAIL_PAGE_URL+'"><img src="'+src+'" alt="'+name+'" width="110" height="83" ></a></td>';
			html += '		<td>';
			html += '			<div class="title"><a href="'+DETAIL_PAGE_URL+'">'+name+'</a></div>';
			
			if(category=='Профессиональный'){
				html += '			<div class="map_cloud_p_com"></div>';
				type_icon = "iconBg_o";
			}else{
				html += '			<div class="map_cloud_p_notcom"></div>';
				type_icon = "iconBg_w";
			}
			
			var arOrg = markers[i].getElementsByTagName("org");
			
			if (arOrg.length>0){
				html += '			<div class="map_cloud_org_title">Автор:</div>';
				html += '			<table width="100%" cellspacing="0" cellpadding="0" class="map_cloud_org">';
				html += '			<tr><td> <table width="100%" cellspacing="0" cellpadding="0">';
				
				var iOrgdop = 0;
				var iOrgCount = arOrg.length/2;
				var col=0;
				for (var iOrg = 0; iOrg < arOrg.length; iOrg++) {
				
					if (iOrg>=iOrgCount && col==0){
						html += '</td><td width="50%">';
						col=1;
					}

					var org_id = arOrg[iOrg].getAttribute("id");
					var org_login = arOrg[iOrg].getAttribute("login");
					var org_photomini = arOrg[iOrg].getAttribute("photomini");
					var org_com_id = arOrg[iOrg].getAttribute("com_id");
					var org_com_name = arOrg[iOrg].getAttribute("com_name");
					var org_com_logo = arOrg[iOrg].getAttribute("com_logo");
					var org_com_w = arOrg[iOrg].getAttribute("com_w");
					var org_com_h = arOrg[iOrg].getAttribute("com_h");
					var org_com = arOrg[iOrg].getAttribute("com");
					
					
					var class_logo_com = "company_td";
					if(!org_com_logo){
						org_com_logo = "/bitrix/templates/xteam2/images/z_user_30.gif";
						org_com_w = 30;
						org_com_h = 30;
						var class_logo_com = "org_timer";
					}
					
					if (org_photomini=="") org_photomini="/bitrix/templates/xteam2/images/z_user_30.gif";
					
					html += '<div class="org_timer">';
					html += '	<table cellspacing="0" cellpadding="0" class="list_item_org_left"><tr>';
					
					if (org_com_id>0 && org_com=="Y"){
						html += '		<td class="avatar_td">';
						html += '		<a href="/timer/user/'+org_id+'/"><img src="'+org_photomini+'" alt="'+org_login+'" title="'+org_login+'" width="30" height="30"></a>';
						html += '		</td>';
					}else{
						html += '		<td class="'+class_logo_com+'">';
						html += '		<a href="/timer/user/'+org_id+'/"><img src="'+org_com_logo+'" alt="'+org_login+'" title="'+org_login+'" width="'+org_com_w+'" height="'+org_com_h+'"></a>';
						html += '		</td>';
					}
					
					if (org_com_id>0 && org_com=="Y"){
						html += '	<td class="sp_td"><img src="/bitrix/templates/xteam2/images/spacer.gif" alt="" width="1" height="1" /></td>';
						html += '	<td class="'+class_logo_com+'"><a href="/timer/company/'+org_com_id+'/"><img src="'+org_com_logo+'" alt="'+org_com_name+'" title="'+org_com_name+'" width="'+org_com_w+'" height="'+org_com_h+'"></a></td>';
					}
					
					html += '	</tr></table>';
					
					if (org_com_id>0 && org_com=="Y")
						var classtd = "best_item";
					else
						var classtd = 'not_company';
					
					html += '	<div class="'+classtd+'">';
						html += '	<a href="/timer/user/'+org_id+'/">'+org_login+'</a>';
						if (org_com_id>0 && org_com=="Y"){
							html += '<br/><a href="/timer/company/'+org_com_id+'/">'+org_com_name+'</a>';
						}
					html += '	</div>';
					
					html += '</div>';
					
					iOrgdop++;
				}

				html += '			</table></td></tr>';
				html += '			</table>';
			}
			
			html += '		</td>';
			html += '	</tr>';
			html += '</table>';
			
			if(color.length>0){
				var str_ar_point_geo=geomery.split("\n");
				var pts = [];
				ip=0;
				for ( var pstr in str_ar_point_geo ){
					var ar_point_geo=str_ar_point_geo[pstr].split(", ");
					if(ar_point_geo[0]!="" && ar_point_geo[1]!=""){
						pts[ip] = new GLatLng(ar_point_geo[0], ar_point_geo[1]);
					}
					ip++;
				}
				var polygon = createPolygon(pts, color, html);
				markerGroups['place_polygon'].push(polygon);
				var polyout = polygon;
			}else{
				var polyout = "";
			}
			
			var marker = createMarkeredLabel(point, type_icon, src_icon, html, polyout, id);
			type = "photo_icon";
			bounds_area.extend(point);
			points_count++;
			showed_markers[showed_markers.length] = id;
		}else{
			type = "photo_icon";
			point = markerGroups[type][id].getLatLng();
			bounds_area.extend(point);
			points_count++;
		}
	}
	for (var i = 0; i < travels.length; i++) {
		var id = travels[i].getAttribute("id");
		var category = travels[i].getAttribute("category");
		if (category == "Профессиональный")
			type = "travel_o";
		else
			type = "travel_g";
		
		if (!in_array(id, showed_travels)){
			var name = travels[i].getAttribute("name");
			var DETAIL_PAGE_URL = travels[i].getAttribute("DETAIL_PAGE_URL");
			var DATE_ACTIVE_FROM = travels[i].getAttribute("DATE_ACTIVE_FROM");
			var DATE_ACTIVE_TO = travels[i].getAttribute("DATE_ACTIVE_TO");
			var color = travels[i].getAttribute("color");
			var photo110 = travels[i].getAttribute("photo110");
			
			var argeomery = travels[i].getElementsByTagName("geometry");
			if (argeomery[0].textContent)
				var geomery = argeomery[0].textContent;
			else if(argeomery[0].text)
				var geomery = argeomery[0].text;
				
			var arOrg = travels[i].getElementsByTagName("org");
			var arAddTravels = travels[i].getElementsByTagName("addtravel");
			
			var point = new GLatLng(parseFloat(travels[i].getAttribute("lat")), parseFloat(travels[i].getAttribute("lng")));
			
			if (photo110!=""){
				src = photo110;
			}else{
				src = '/bitrix/templates/xteam2/images/z_travel_map.jpg';
			}
			
			var html = "";
			html += '<table cellspacing="0" cellpadding="0" class="map_cloud">';
			html += '	<tr>';
			html += '		<td width="122"><a href="'+DETAIL_PAGE_URL+'"><img src="'+src+'" alt="'+name+'" width="110" height="78"></a></td>';
			html += '		<td>';
			
			if (arAddTravels.length==0){
				html += '			<div class="title"><a href="'+DETAIL_PAGE_URL+'">'+name+'</a></div>';
				html += '			<div class="date margin">'+DATE_ACTIVE_FROM+' - '+DATE_ACTIVE_TO+'</div>';
				if(category=='Профессиональный'){
					html += '			<div class="map_cloud_com"></div>';
				}else{
					html += '			<div class="map_cloud_notcom"></div>';
				}
			}else{
				html += '			<div class="title"><a href="'+DETAIL_PAGE_URL+'">'+name+'</a></div>';
				html += '			<div class="date map_cloud_org_title">Найдено путешествий: <b>'+(arAddTravels.length+1)+'</b></div>';
				html += '			<div class="date map_cloud_org_title"><a href="'+DETAIL_PAGE_URL+'">'+DATE_ACTIVE_FROM+' - '+DATE_ACTIVE_TO+'</a></div>';
				for (var iTr = 0; iTr < arAddTravels.length; iTr++) {
					var at_DETAIL_PAGE_URL = arAddTravels[iTr].getAttribute("DETAIL_PAGE_URL");
					var at_DATE_ACTIVE_FROM = arAddTravels[iTr].getAttribute("DATE_ACTIVE_FROM");
					var at_DATE_ACTIVE_TO = arAddTravels[iTr].getAttribute("DATE_ACTIVE_TO");
					html += '<div class="date map_cloud_org_title"><a href="'+at_DETAIL_PAGE_URL+'">'+at_DATE_ACTIVE_FROM+' - '+at_DATE_ACTIVE_TO+'</a></div>';
				}
			}
			
			html += '		</td>';
			html += '	</tr>';
			html += '</table>';
			
			if (arOrg.length>0 && arAddTravels.length==0){
				html += '<div class="map_cloud">';
				if (arOrg.length>1) var title='Организаторы'; else var title='Организатор';
				html += '			<div class="map_cloud_org_title">'+title+':</div>';
				html += '			<table width="100%" cellspacing="0" cellpadding="0" class="map_cloud_org">';
				html += '			<tr><td> <table width="100%" cellspacing="0" cellpadding="0">';
				
				var iOrgdop = 0;
				var iOrgCount = arOrg.length/2;
				var col=0;
				for (var iOrg = 0; iOrg < arOrg.length; iOrg++) {
				
					if (iOrg>=iOrgCount && col==0){
						html += '</td><td width="50%">';
						col=1;
					}

					var org_id = arOrg[iOrg].getAttribute("id");
					var org_login = arOrg[iOrg].getAttribute("login");
					var org_photomini = arOrg[iOrg].getAttribute("photomini");
					var org_com_id = arOrg[iOrg].getAttribute("com_id");
					var org_com_name = arOrg[iOrg].getAttribute("com_name");
					var org_com_logo = arOrg[iOrg].getAttribute("com_logo");
					var org_com_w = arOrg[iOrg].getAttribute("com_w");
					var org_com_h = arOrg[iOrg].getAttribute("com_h");
					var org_com = arOrg[iOrg].getAttribute("com");
					
					
					var class_logo_com = "company_td";
					if(!org_com_logo){
						org_com_logo = "/bitrix/templates/xteam2/images/z_user_30.gif";
						org_com_w = 30;
						org_com_h = 30;
						var class_logo_com = "org_timer";
					}
					
					if (org_photomini=="") org_photomini="/bitrix/templates/xteam2/images/z_user_30.gif";
					
					html += '<div class="org_timer">';
					html += '	<table cellspacing="0" cellpadding="0" class="list_item_org_left"><tr>';
					
					if (org_com_id>0 && org_com=="Y"){
						html += '		<td class="avatar_td">';
						html += '		<a href="/timer/user/'+org_id+'/"><img src="'+org_photomini+'" alt="'+org_login+'" title="'+org_login+'" width="30" height="30"></a>';
						html += '		</td>';
					}else{
						html += '		<td class="'+class_logo_com+'">';
						html += '		<a href="/timer/user/'+org_id+'/"><img src="'+org_com_logo+'" alt="'+org_login+'" title="'+org_login+'" width="'+org_com_w+'" height="'+org_com_h+'"></a>';
						html += '		</td>';
					}
					
					if (org_com_id>0 && org_com=="Y"){
						html += '	<td class="sp_td"><img src="/bitrix/templates/xteam2/images/spacer.gif" alt="" width="1" height="1" /></td>';
						html += '	<td class="'+class_logo_com+'"><a href="/timer/company/'+org_com_id+'/"><img src="'+org_com_logo+'" alt="'+org_com_name+'" title="'+org_com_name+'" width="'+org_com_w+'" height="'+org_com_h+'"></a></td>';
					}
					
					html += '	</tr></table>';
					
					if (org_com_id>0 && org_com=="Y")
						var classtd = "best_item";
					else
						var classtd = 'not_company';
					
					html += '	<div class="'+classtd+'">';
						html += '	<a href="/timer/user/'+org_id+'/">'+org_login+'</a>';
						if (org_com_id>0 && org_com=="Y"){
							html += '<br/><a href="/timer/company/'+org_com_id+'/">'+org_com_name+'</a>';
						}
					html += '	</div>';
					
					html += '</div>';
					
					iOrgdop++;
				}

				
				html += '			</table></td></tr>';
				html += '			</table>';
				html += '</div>';
			}
				
			var marker_t = createMarker(point, name, html, type, id);
			bounds_area.extend(point);
			points_count++;
			map.addOverlay(marker_t);
			showed_travels[showed_travels.length] = id;
		}else{
			p_ll = markerGroups[type][id].getLatLng();
			p_lat = p_ll.lat();
			p_lng = p_ll.lng();
			
			if(southWest.lng()>0 && northEast.lng()<0){
				if(!(p_lat>southWest.lat() && p_lat<northEast.lat() && (p_lng>southWest.lng() || p_lng<northEast.lng()) )){
					var point = new GLatLng(parseFloat(travels[i].getAttribute("lat")), parseFloat(travels[i].getAttribute("lng")));
					markerGroups[type][id].setLatLng(point);
				}
			}else{
				if(!(p_lat>southWest.lat() && p_lat<northEast.lat() && p_lng>southWest.lng() && p_lng<northEast.lng())){
					var point = new GLatLng(parseFloat(travels[i].getAttribute("lat")), parseFloat(travels[i].getAttribute("lng")));
					markerGroups[type][id].setLatLng(point);
				}
			}
			point = markerGroups[type][id].getLatLng();
			bounds_area.extend(point);
			points_count++;
		}
	}
	
	return new Array(points_count, bounds_area, point, markerGroups[type][id]);
}

function in_array(needle, haystack, strict) {
    var found = false, key, strict = !!strict; 
    for (key in haystack) {
        if ((strict && haystack[key] === needle) || (!strict && haystack[key] == needle)) {
            found = true;
            break;
        }
    }
    return found;
}







function map_zoom_plus(){
	map.zoomIn();
}
function map_zoom_min(){
	map.zoomOut();
}
function map_zoom_set(zoom){
	map.setZoom(zoom);
}
function map_zoom_scroll_act(){
	var zoom = map.getZoom();
	var flag=0;
	for (i=0; i<=19; i++){
		if (i > zoom) flag=1;
		if (flag == 0)
			document.getElementById("map_zoom_level_"+i).className = "map_zoom_level_a";
		else
			document.getElementById("map_zoom_level_"+i).className = "map_zoom_level_n";
	}
}

function map_type_set(type){
	arTypes = map.getMapTypes();
	map.setMapType(arTypes[type]);
	for (i=0; i<=2; i++){
		if (i==type)
			document.getElementById("map_type_"+i).className = "map_type_item_a";
		else
			document.getElementById("map_type_"+i).className = "map_type_item_n";
	}
}









function viewObject(name) 
{ 
var obj = eval(name), i; 

if(!obj) 
{ 
alert("\""+name+"\" ia not an object"); 
return; 
} 

var w_Test = open("","Test","width=600,height=500,scrollbars=1"); 

if(!w_Test) 
{ 
alert("Cannot open window for "+name); 
return; 
} 

w_Test.document.open(); 

for(i in obj) 
w_Test.document.write(name+"."+i+"="+obj[i]+"<br>"); 

w_Test.document.close(); 
} 
