var map;
var map2;
var map3;
var openedinfowindow = false;
var detailMarkerOptions;
// Samara
//var baseLat = 53.240216;
//var baseLng = 50.1796184;

// Togliatti
var baseLat = 53.5355606;
var baseLng = 49.4095687;

var isAutoResize = false;

function initialize() {
	if (GBrowserIsCompatible()) {

		map = new GMap2(document.getElementById("map_canvas"));
		map.addControl(new GLargeMapControl());
		map.enableScrollWheelZoom();
		map.enableContinuousZoom();

		var mapControl = new GMapTypeControl();
		map.addControl(mapControl);

		var center = new GLatLng(baseLat,baseLng);
		map.setCenter(center, 11);
		
		show_markerrs();

		GEvent.addListener(map, "infowindowopen", function() {
			openedinfowindow = true;
		});

		GEvent.addListener(map, "infowindowclose", function() {
			openedinfowindow = false;
		});

		function zoomControl() {

			if(map.getZoom() < 10)
				map.setCenter(center, 11);
		}

		var isSafari3 = (window.devicePixelRatio) ? true : false;

		GEvent.addListener(map, "zoomend", zoomControl);

		if (isSafari3) {
			GEvent.addListener(map, "load", updatemarkers);
			GEvent.addListener(map, "moveend", updatemarkers);
			GEvent.addListener(map, "zoomend", updatemarkers);
		} else
			GEvent.addListener(map, "moveend", updatemarkers);

		add_initialize();
	}
}

function add_initialize() {
	if(document.getElementById("map2")) {
	    map2 = new GMap2(document.getElementById("map2"));
	    map2.setCenter(new GLatLng(baseLat,baseLng), 4);
	}
    
	if(document.getElementById("map3")) {
	    map3 = new GMap2(document.getElementById("map3"));
	    map3.setCenter(new GLatLng(baseLat,baseLng), 4);
	}
	 var detailIcon = new GIcon();
	 detailIcon.image = '/img/ico/bilboard.png';
	 detailIcon.shadow = '/img/ico/bilboard-sha.png';
	 detailIcon.iconSize = new GSize(39,36);
	 detailIcon.shadowSize = new GSize(39,36);
	 detailIcon.iconAnchor = new GPoint(20,36);
	 detailIcon.infoWindowAnchor = new GPoint(20,36);
	 detailMarkerOptions = { icon:detailIcon };
	 
}

function detail_init() {

		 var detailLatLng =(document.getElementById('latLng'));
		 /*
		 if(detailLatLng) {

			 var arrDetailLatLng = detailLatLng.value.split(',');
			 var detailCenter = new GLatLng(arrDetailLatLng[0], arrDetailLatLng[1]); 
			 map2.setCenter(detailCenter, 12);
			 map3.setCenter(detailCenter, 16);

			 map2.clearOverlays();
			 map3.clearOverlays();
			 var detailMarker = new GMarker(detailCenter, detailMarkerOptions);
			 map2.addOverlay(detailMarker);
			 map3.addOverlay(detailMarker);
		 }
		*/
}

function updatemarkers() {
	if (map.isLoaded()) {
		if (!openedinfowindow && !isAutoResize) {

			var bounds = map.getBounds();
			var zoom = map.getZoom();
			var maplatfrom = new String(bounds.getSouthWest().lat()+'0000000000000000').replace('.', '').substring(0, 18);
			var maplatto = new String(bounds.getNorthEast().lat()+'0000000000000000').replace('.', '').substring(0, 18);
			var maplngfrom = new String(bounds.getSouthWest().lng()+'0000000000000000').replace('.', '').substring(0, 18);
			var maplngto = new String(bounds.getNorthEast().lng()+'0000000000000000').replace('.', '').substring(0, 18);
			var boundstring = "&arrFilter_pf[latitude][LEFT]="
					+ maplatfrom + "&arrFilter_pf[latitude][RIGHT]="
					+ maplatto + "&arrFilter_pf[longitude][LEFT]="
					+ maplngfrom + "&arrFilter_pf[longitude][RIGHT]="
					+ maplngto;
			if (zoom < 8)
				boundstring = boundstring + "&groupbycity=Y";

			var filterformvalues = "";
			for ( var n = 0; n < document.forms.filterformm.elements.length; n++) {
				if (document.forms.filterformm.elements[n].value
						&& document.forms.filterformm.elements[n].name
						&& (document.forms.filterformm.elements[n].type != "submit" 
							&& document.forms.filterformm.elements[n].type != "hidden")) {
					if(document.forms.filterformm.elements[n].type != "radio" 
						&& document.forms.filterformm.elements[n].type != "checkbox") {
						filterformvalues += "&"
								+ escape(document.forms.filterformm.elements[n].name)
								+ "="
								+ _utf8_encode(document.forms.filterformm.elements[n].value);
					} else if(document.forms.filterformm.elements[n].checked) {
						try {
						filterformvalues += "&"
							+ escape(document.forms.filterformm.elements[n].name)
							+ "="
							+ _utf8_encode(document.forms.filterformm.elements[n].value);
						} catch(e) {}
					}
				}
			}
			// new emulation of std. request
			var div_childs = document.getElementById('ajaxgooglemap').childNodes;
			var ajax_div_id;
			for(var i=0; i < div_childs.length; i++) {
				if(div_childs.item(i).tagName == 'DIV') {
					ajax_div_id = div_childs.item(i).id.replace('comp_', '');
					break;
				}
			}
			// map=Y for request where map changed
			jsAjaxUtil.InsertDataToNode(
					"/map/?bxajaxid=" + ajax_div_id + "&AJAX_CALL=Y&map=Y&set_filter=Y"
							+ filterformvalues + boundstring,
					'comp_' + ajax_div_id, true);

		} else if(isAutoResize) {
			isAutoResize = false;
		}
	}
}

function _utf8_encode(str) {
	
	return str;
/*
	var trans = [];
	for ( var i = 0x410; i <= 0x44F; i++)
		trans[i] = i - 0x350; // А-Яа-я
	trans[0x401] = 0xA8; // Ё
	trans[0x451] = 0xB8; // ё

	var ret = [];
	// Составляем массив кодов символов, попутно переводим кириллицу
	for ( var i = 0; i < str.length; i++) {
		var n = str.charCodeAt(i);
		if (typeof trans[n] != 'undefined')
			n = trans[n];
		if (n <= 0xFF)
			ret.push(n);
	}
	return escape(String.fromCharCode.apply(null, ret));
*/

}
