
var markers = new Array();
var markerCounter = 0;
var map = '';

function createMarker(point,html,source) {

	var icon = new GIcon(G_DEFAULT_ICON); 
	icon.image = root_link+'/images/main/'+source+'.png';
	icon.iconSize = new GSize(15, 20);
	icon.shadowSize = new GSize(20, 20);
	icon.iconAnchor = new GPoint(10, 20);
	icon.infoWindowAnchor = new GPoint(16, 1);
	
	var marker = new GMarker(point,icon);
    GEvent.addListener(marker, "click", function() {marker.openInfoWindowHtml(html); });
    return marker;
	
}

function createMarkerLarge(point,html,source) {

	var icon = new GIcon(G_DEFAULT_ICON); 
	icon.image = root_link+'/images/main/'+source+'-large.png';
	icon.iconSize = new GSize(30, 40);
	icon.shadowSize = new GSize(40, 40);
	icon.iconAnchor = new GPoint(10, 20);
	icon.infoWindowAnchor = new GPoint(16, 1);
	
	var marker = new GMarker(point,icon);
    GEvent.addListener(marker, "click", function() {marker.openInfoWindowHtml(html); });
    return marker;
	
}

function zoomMarker(oldLevel,newLevel) {
	//alert(oldLevel+','+newLevel);
	if ((oldLevel < 6) && (newLevel >= 6)) {	
		map.clearOverlays();
		for (i = 1; i <= markerCounter; i++) {
			//alert(markers[i][1]);
			markers[i][0] = createMarkerLarge(markers[i][1],markers[i][2],markers[i][3]);
			//markers[i][0].hide();
			//markers[i][1].show();
			map.addOverlay(markers[i][0]);
		}
	} else if ((oldLevel >= 6) && (newLevel < 6)) {	
		map.clearOverlays();
		for (i = 1; i <= markerCounter; i++) {
			//markers[i][1].hide();
			//markers[i][0].show();
			//alert(markers[i][1]);
			markers[i][0] = createMarker(markers[i][1],markers[i][2],markers[i][3]);
			map.addOverlay(markers[i][0]);
		}
	}
	
}

function loadMap() {
	
	//alert(document.getElementById('googleMap'));
	
    if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById('googleMap'));
		map.addControl(new GLargeMapControl3D());
		if (document.getElementById('startLat')) {
			var startLat	= document.getElementById('startLat').value;
			var startLng	= document.getElementById('startLng').value;
		} else {
			//var startLat	= 50.898269;
			//var startLng	= 4.401398;
			var startLat	= 22.982670;
			var startLng	= 16.721191;
			
			//alert(document.getElementById('startLat'));
			
			map.setCenter(new GLatLng(startLat,startLng, false),2);
			GEvent.addListener(map, "zoomend", function (oldLevel, newLevel) {
            zoomMarker(oldLevel,newLevel);
	        });
		}
    	
		if (document.getElementById('companyList')) {
			var counter = 1;
			while (document.getElementById('companyCoordLat'+counter)) {
				//alert(1);
				startLat	= document.getElementById('companyCoordLat'+counter).value;
				startLng	= document.getElementById('companyCoordLng'+counter).value;
				companyId	= document.getElementById('companyCoord'+counter).value;
				imageSource	= document.getElementById('imageSource'+counter).value;
				companyInfo	= document.getElementById('companyInfo'+companyId).innerHTML;
				point = new GLatLng(startLat, startLng);
				markers[counter] = new Array(5);
				markers[counter][0] = createMarker(point,companyInfo,imageSource);
				//markers[counter][1] = createMarkerLarge(point,companyInfo,imageSource);
				markers[counter][1] = point;
				markers[counter][2] = companyInfo;
				markers[counter][3] = imageSource;
				markers[counter][4] = companyId;
				map.addOverlay(markers[counter][0]);
				//map.addOverlay(markers[counter][1]);
				//markers[counter][1].hide();
				markerCounter++;
				counter++;
			}
			//randomPartner = Math.floor(Math.random()*markerCounter)
			//dispMarkerInfo(markers[randomPartner][4]);
		} else {
			var point = new GLatLng(startLat, startLng);
			var marker = createMarker(point, 'Some stuff');
			map.addOverlay(marker);
		}
    }
}

function dispMarkerInfo(directoryId) {

	if (map != '') {
		var counter	= document.getElementById('directoryCounter'+directoryId).value;
		var companyId	= document.getElementById('companyCoord'+counter).value;
		var companyInfo	= document.getElementById('companyInfo'+companyId).innerHTML;
		map.setZoom(4);
		markers[counter][0].openInfoWindowHtml(companyInfo);
		document.location = '#googleMapAnchor';
	} else {
		document.location = root_link+'/directory.php?DirectoryId='+directoryId;
	}
	
}

function dispMarkerInfo2(directoryId,Zoom) {

	if (map != '') {
		var counter	= document.getElementById('directoryCounter'+directoryId).value;
		var companyId	= document.getElementById('companyCoord'+counter).value;
		var companyInfo	= document.getElementById('companyInfo'+companyId).innerHTML;
		if (Zoom == 1) {
			map.setZoom(4);
		} else {
			var startLat	= 22.982670;
			var startLng	= 16.721191;
			map.setCenter(new GLatLng(startLat,startLng, false),2);
		}
		markers[counter][0].openInfoWindowHtml(companyInfo);
		document.location = '#googleMapAnchor';
	} else {
		document.location = root_link+'/directory.php?DirectoryId='+directoryId;
	}
	
}
