
var map = null;
var manager = null;
var bounds = new GLatLngBounds();
var geocoder = null;

GMap2.prototype.centerAndZoomOnBounds = function(bounds) { 
	var center_lat = (bounds.getNorthEast().lat() + bounds.getSouthWest().lat()) / 2.0; 
	var center_lng = (bounds.getNorthEast().lng() + bounds.getSouthWest().lng()) / 2.0; 
	if(bounds.getNorthEast().lng() < bounds.getSouthWest().lng()){ 
		center_lng += 180; 
	} 
	var center = new GLatLng(center_lat,center_lng) 
	zoom = map.getBoundsZoomLevel(bounds);
	map.setCenter(center, zoom);
}

function wheelZoom(event)
{
	if (event.detail) // Firefox
	{
		if (event.detail < 0)	map.zoomIn();
		if (event.detail > 0) map.zoomOut();
	}
	else if (event.wheelDelta) // IE
	{
		if (event.wheelDelta > 0)	map.zoomIn();
		if (event.wheelDelta < 0)	map.zoomOut();
	}
		
	if (event.preventDefault) // Firefox
	{
		event.preventDefault();
		event.stopPropagation();
	}
	else // IE
	{
		event.returnValue = false;
		event.cancelBubble = true;
	}		
}

function unload()
{
	if (window.navigator.cookieEnabled)
	{
		var cval = ""+map.getZoom()+'|'+map.getCenter().lat()+'|'+map.getCenter().lng();
		pageCCont = getPageCC ();
		setCookie(pageCCont, cval, '', '', '', '');
	}
	GUnload();
}

function load() 
{
	if (GBrowserIsCompatible())
	{
		var element = document.getElementById('map');
		
		//GEvent.addDomListener(element, 'DOMMouseScroll', wheelZoom); // Firefox
		//GEvent.addDomListener(element, 'mousewheel', wheelZoom); // IE
		
		map = new GMap2(element);
		
		map.enableContinuousZoom();
		map.enableDoubleClickZoom();
		map.addControl(new GLargeMapControl());
		map.addControl(new GScaleControl());
		map.addControl(new GMapTypeControl());
		
		var noFromCookie = positionMap();
		
		manager = new GMarkerManager(map);
		addMarkers();
		
		//map.centerAndZoomOnBounds(bounds);
		if(!noFromCookie) {
			pageCCont = getPageCC ();
			var cval = getCookie(pageCCont);
			if(cval) {
				cva = cval.split('|');
				zoom = parseInt(cva[0]);
				center = new GLatLng(cva[1], cva[2]);
				map.setCenter(center, zoom);
			}
 		}
	}
}

var normalIcon = new GIcon();
normalIcon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
normalIcon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
normalIcon.iconSize = new GSize(12, 20);
normalIcon.shadowSize = new GSize(22, 20);
normalIcon.iconAnchor = new GPoint(6, 20);
normalIcon.infoWindowAnchor = new GPoint(5, 1);

var placeIcon = new GIcon();
placeIcon.image = "http://labs.google.com/ridefinder/images/mm_20_yellow.png";
placeIcon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
placeIcon.iconSize = new GSize(12, 20);
placeIcon.shadowSize = new GSize(22, 20);
placeIcon.iconAnchor = new GPoint(6, 20);
placeIcon.infoWindowAnchor = new GPoint(5, 1);

var yellowIcon = new GIcon();
yellowIcon.image = "http://labs.google.com/ridefinder/images/mm_20_yellow.png";
yellowIcon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
yellowIcon.iconSize = new GSize(12, 20);
yellowIcon.shadowSize = new GSize(22, 20);
yellowIcon.iconAnchor = new GPoint(6, 20);
yellowIcon.infoWindowAnchor = new GPoint(5, 1);

var bigIcon = new GIcon();
bigIcon.image = "http://www.google.com/intl/pl_ALL/mapfiles/markerTransparent.png";
bigIcon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
bigIcon.iconSize = new GSize(18, 28);
bigIcon.shadowSize = new GSize(22, 20);
bigIcon.iconAnchor = new GPoint(6, 28);
bigIcon.infoWindowAnchor = new GPoint(5, 1);

var silverIcon = new GIcon();
silverIcon.image = "http://labs.google.com/ridefinder/images/mm_20_gray.png";
silverIcon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
silverIcon.iconSize = new GSize(12, 20);
silverIcon.shadowSize = new GSize(22, 20);
silverIcon.iconAnchor = new GPoint(6, 20);
silverIcon.infoWindowAnchor = new GPoint(5, 1);



function finishMarker(marker, id, title, zoom)
{
	//GEvent.addListener(marker, "mouseover", function() {window.status = title});	
	//GEvent.addListener(marker, "mouseout", function() {window.status = ""});		
	//GEvent.addListener(marker, "click", function() {window.location.href = "index.php?gallery=" + id});
	manager.addMarker(marker, zoom);
}

function addMarker(marker, zoom)
{
	manager.addMarker(marker, zoom);
}

function createMarkerPlace(point, title, l) {
  var marker = new GMarker(point, {title:title, icon:placeIcon});
  bounds.extend(point);
  GEvent.addListener(marker, "click", function() {
	window.location.href = ""+l;
  });
  return marker;
}
function createMarker(point, title, info, mzoom, l) {
  return createMarkerTM(point, title, info, mzoom, l, normalIcon);
}
function createMarkerBig(point, title, info, mzoom, l) {
  return createMarkerTM(point, title, info, mzoom, l, '');
}
function createMarkerSilver(point, title, info, mzoom, l) {
  return createMarkerTM(point, title, info, mzoom, l, silverIcon);
}
function createMarkerYellow(point, title, info, mzoom, l) {
  return createMarkerTM(point, title, info, mzoom, l, yellowIcon);
}

function createMarkerTM(point, title, info, mzoom, l, icon) {
	var marker = '';
	if(icon)
	  marker = new GMarker(point, {title:title, icon:icon});
	else
	  marker = new GMarker(point, {title:title});
  bounds.extend(point);
  if(l) {
	  GEvent.addListener(marker, "click", function() {
		window.location.href = ""+l;
	  });
  } else {
	  GEvent.addListener(marker, "click", function() {
	  	//alert(map.getCenter());//.setCenter(center, zoom);
		var zoom = map.getZoom() < mzoom ? mzoom : map.getZoom();
		map.setCenter(map.getCenter(), zoom);
	 	marker.openInfoWindowHtml(info);
	  });
	}
  return marker;
}

