var view = "map";
var map = null;

var marker_count = 0;
var markerList = [ ];

var domain = 'www.kathkids.at'
var map_uri = "/map/render.php";
var map_loaded = false;
var _bundesland = 0;
var _kategorie = 0;

var bounds = null;

// Icons
var iconPath = 'http://' + domain + '/fileadmin/templates/kathkids/marker/';
var iconWidth = '11';
var iconHeight = '32';
var iconList = [ ];
var availableIcons = [0];

google.load("maps", "2.x");

function addMarker(_data) {
	var point = new GLatLng(parseFloat(_data.lat), parseFloat(_data.lng));
	_icon_id = 0;
	var _icon = iconList[_icon_id];

	bounds.extend(point);
	var marker = new GMarker(point, _icon);
	GEvent.addListener(marker, 'click', function() { 
		marker.openInfoWindowHtml('<strong>' + _data.company + '</strong><br />' + _data.middle_name + ': ' + _data.first_name + ' ' + _data.last_name + '<br /><br />' + _data.zip + ' ' + _data.address + '<br />' + _data.city + '<br /><br /><a href="' + _data.www + '" target="_blank">Homepage</a>');
	});

	marker.uid = _data.uid;
	
	map.addOverlay(marker);
	markerList.push(marker);
}

function init_iconList() {
	for (n = 0; n < availableIcons.length; n++) {
		var _icon = new GIcon();
		_icon.image = iconPath + 'icon.png';
		_icon.iconSize = new GSize(11, 32);
		_icon.iconAnchor = new GPoint(0, 30);
		_icon.infoWindowAnchor = new GPoint(0,0);
		_icon.transparent = "http://www.google.com/intl/en_ALL/mapfiles/markerTransparent.png";
		iconList[availableIcons[n]] = _icon;
	}
}

function initMap() {
	bounds = new GLatLngBounds();
	map = new GMap2(document.getElementById('gmap'));
	map.addControl(new GSmallMapControl());
	map.addControl(new GMapTypeControl());
	init_iconList();
	//window.console.log(iconList);
}

function renderMap() {
	jQuery.ajax({
	  url: map_uri,
	  data: {
	    kategorie: _kategorie,
	    bundesland: _bundesland
	  },
	  dataType: 'json',
	  success: function(data, textStatus, XMLHttpRequest) {
	  	if (data.length == 0) {
	  		alert('Keine Einträge vorhanden!');
	  	} else {
			initMap();
		  	for (var i = 0; i < data.length; i++) {
		  		var _data = data[i];
		  		//window.console.log(_data);
				addMarker(_data);
		  	}
			if (data.length < 2) {
				map.setCenter(bounds.getCenter(), 12);
			} else {
				//map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
				map.setCenter(bounds.getCenter(), 12);
			}
		}
	  }
	});
}
