google.load("maps", "2",{"other_params":"sensor=false"});
var map = null;
var meinlIcon = null;

window.onunload = function(){
	if (google && google.maps) {
		google.maps.Unload.bind(google.maps);
	}
}

function sortDealers(a,d,f) {
	a._dir = (a._dir == null) ? d : Math.abs(a._dir - 1);
	var dealerRows = $$('tr.dealer').sortBy(function(dealer){ var text = ''; dealer.select('td.dealer-' + f, '').each(function(col){ text += (new String(col.innerText || col.textContent)).toLowerCase(); }); return text; });
	if (!a._dir) dealerRows.reverse();
	for(var i = 0; i < dealerRows.length; i++) { dealerRows[i].parentNode.insertBefore(dealerRows[i], null); }
	return false;
}

function createMarker(loc, html) {
	var marker = new google.maps.Marker(loc, meinlIcon);
	google.maps.Event.addListener(marker, 'click', function() { marker.openInfoWindowHtml(html); });
	return marker;
}

function initialize() {
	if($("map-canvas")){
		
		meinlIcon					= new google.maps.Icon();
		meinlIcon.image				= '/fileadmin/templates/css/img/dealer/meinl.png';
		meinlIcon.shadow			= '/fileadmin/templates/css/img/dealer/meinl_shadow.png';
		meinlIcon.iconSize			= new google.maps.Size(34, 22);
		meinlIcon.shadowSize		= new google.maps.Size(34, 22);
		meinlIcon.iconAnchor		= new google.maps.Point(5, 34);
		meinlIcon.infoWindowAnchor	= new google.maps.Point(5, 2);
		meinlIcon.infoShadowAnchor	= new google.maps.Point(5, 25);

		
		map = new google.maps.Map2($("map-canvas"));
		map.setCenter(new google.maps.LatLng(0,0),0);
		map.addControl(new google.maps.LargeMapControl());
		map.addControl(new google.maps.MapTypeControl());
		
		var bounds = new google.maps.LatLngBounds(), dealer, loc, html;
		
		dealers.each(function(de, index){
			loc = new google.maps.LatLng(de.lat, de.lon);
			html = '<div class="dealer-details">' + de.logo + de.address + de.image + '</div>';
			dealers[index]['marker'] = $(createMarker(loc, html));
			map.addOverlay(dealers[index]['marker']);
			bounds.extend(loc);
		});
		
		/*for(var i = 0; i < dealers.length; i++){
			dealer = dealers[i];
			loc = new google.maps.LatLng(dealers[i].lat, dealers[i].lon);
			html = '<div class="dealer-details">' + dealers[i].logo + dealers[i].address + dealers[i].image + '</div>';
			dealers[i]['marker'] = $(createMarker(loc, html));
			map.addOverlay(dealers[i]['marker']);
			bounds.extend(loc);
		}*/
		
		map.setZoom(Math.min(map.getBoundsZoomLevel(bounds), 9));
		map.setCenter(bounds.getCenter());

		$$('tr.dealer').each(function(l, i){
			l.onclick = function(){
				google.maps.Event.trigger(dealers[i].marker, 'click');
				return false;
			}
		});
	}
}
