/* <![CDATA[ */
var centerLatitude=42.65;
var centerLogitude=25.33;
var getMarkersURL = "http://www.bsd.bg/index.php?module=companies&action=citymarkers";
var getCompaniesURL = "http://www.bsd.bg/index.php?module=companies&action=resellers";
var startZoom = 7;
var map;

function createMarker(latlng, html, iconImage, cityid) {
	if(iconImage!='') {
		var icon = new GIcon();
		if(iconImage) icon.image = iconImage;
		icon.iconSize = new GSize(32, 28);
		icon.iconAnchor = new GPoint(14, 14);
		var marker = new GMarker(latlng,icon);
	} else {
		var marker = new GMarker(latlng);
	}
	GEvent.addListener(marker, 'click', function(){
		//var markerHTML = html;
		reloadCity(getCompaniesURL+'gnid='+cityid);
		//marker.openInfoWindowHtml(markerHTML);
	});
	return marker;
}

function reloadCity(url,innerdiv){

	var elem = document.getElementById(innerdiv);
	elem.innerHTML='<div class="loading"></div>';
	var xmlHttp;
	try
	{    // Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	}
	catch (e)
	{    // Internet Explorer
		try
		{      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");      }
		catch (e)
		{      try
		{        xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");        }
		catch (e)
		{        alert("Your browser does not support AJAX!");        return false;        }     }
	}
	xmlHttp.onreadystatechange=function()
	{
		if(xmlHttp.readyState==4)
		{
			elem.innerHTML = xmlHttp.responseText;
		}
	/*	else{
			elem.innerHTML='<div class="loading"></div>';
		} */
	}
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function init(){
	if (GBrowserIsCompatible()) {
		map = new google.maps.Map2(document.getElementById("resellers_map"));
		map.setMapType(G_HYBRID_MAP);
		map.addControl(new GSmallMapControl());
		map.setCenter(new google.maps.LatLng(centerLatitude, centerLogitude), startZoom);
		updateMarkers(false);

		GEvent.addListener(map, 'zoomend', function(){
			map.clearOverlays();
			ids = "";
			updateMarkers(true);
		});

		/* GEvent.addListener(map, 'moovend', function() {
		updateMarkers();
		}); */

		GEvent.addListener(map, "dragend", function() {
			updateMarkers(false);
		});
	}
}

var oldsouthWest;
var oldnorthEast;

function updateMarkers(blnZoom){

	var bounds = map.getBounds();
	var southWest = bounds.getSouthWest().toUrlValue();
	var northEast = bounds.getNorthEast().toUrlValue();

	if(oldsouthWest != southWest && oldnorthEast != northEast){
		//map.clearOverlays();
		oldsouthWest = southWest;
		oldnorthEast = northEast;
		var getVars = "ne=" + northEast + "&sw=" + southWest;

		//GLog.writeUrl(getMarkersURL + "?" + getVars);

		AjaxRequest(getMarkersURL + "?" + getVars + (blnZoom ? "&zoom=" + map.getZoom() : "&ids="+ids+"&zoom="+map.getZoom()));
	}
}

var ids = "";

function AjaxRequest(url){
	var xmlHttp;
	try
	{    // Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	}
	catch (e)
	{    // Internet Explorer
		try
		{      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");      }
		catch (e)
		{      try
		{        xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");        }
		catch (e)
		{        alert("Your browser does not support AJAX!");        return false;        }     }
	}
	xmlHttp.onreadystatechange=function()
	{
		if(xmlHttp.readyState==4)
		{
			var jscript = xmlHttp.responseText;
			var points;
			eval(jscript);

			for(i in points){
				ids += points[i].id + ",";
				var point = new GLatLng(points[i].lat,points[i].lng);
				var marker = createMarker(point,points[i].html,points[i].icon,points[i].id);
				map.addOverlay(marker);
			}
		}
	}
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

//google.setOnLoadCallback(init);
window.onload = init;
window.onunload = GUnload;
/* ]]> */