	var map = null;
    var geocoder = null;
    var mapDiv = null;
    var imNotSleepJet = true;
    
	var markerConfig = new Array();
	var mapConfig = new Array();    

	function initialize(mapConfig) {
		if (GBrowserIsCompatible()) {
			mapDiv = $("#"+mapConfig['containerId']);
      	
			if(mapConfig['mapHeight']!='') mapDiv.css("height", mapConfig['mapHeight']);
			if(mapConfig['mapWidth']!='') mapDiv.css("width", mapConfig['mapWidth']);
			
			map = new GMap2(mapDiv[0]);
        
			if(mapConfig['mapDragging']==true) map.enableDragging();
			else map.disableDragging();
        
        
			geocoder = new GClientGeocoder();
			
		}
	}

	
	function mapError(mapErrorImgSrc){
		var mapErrorImg = document.createElement('img');
		mapErrorImg.src = mapErrorImgSrc;
		mapErrorImg.title = "Brak mapy";
		mapErrorImg.alt = "Brak mapy";
              
		mapDiv.replaceWith(mapErrorImg);		
	}
	
	
    function showMap(address, markerConfig, mapConfig) {
      initialize(mapConfig);
      
      if (geocoder) {
        geocoder.getLatLng(
          address,
          function(point) {
            if (!point) {
			  mapError(mapConfig['mapErrorImg']);
            } else {
              map.setCenter(point, mapConfig['mapZoom']);
              map.addControl(new GSmallMapControl());
              
              if(markerConfig['icon']!=''){
	              var markerIcon = new GIcon();  
	              markerIcon.image = markerConfig['icon'];  
	              markerIcon.shadow = markerConfig['icon_shadow'];  
	              markerIcon.iconSize = new GSize(32, 32);  
	              markerIcon.infoWindowAnchor = new GPoint(16,16);  
	              markerIcon.iconAnchor = new GPoint(16,16);  
	              markerIcon.shadowSize = new GSize(59, 32);             
              }
              markerOptions = { icon:markerIcon, autoPan:true };
			  var marker = new GMarker(point, markerOptions);
              map.addOverlay(marker);
              
              var showInfo = markerConfig['header']+"<div>"+markerConfig['body']+"</div>"+markerConfig['footer']
                     
              map.openInfoWindowHtml(point, "<div style='background-color:"+markerConfig['balloonBackground']+"; width:"+markerConfig['balloonWidth']+"; height:"+markerConfig['balloonHaight']+"; text-align: "+markerConfig['balloonAlign']+";'>"+showInfo+"</div><br />");
              
              GEvent.addListener(marker, "click", function() {
              	map.openInfoWindowHtml(point, "<div style='background-color:"+markerConfig['balloonBackground']+"; width:"+markerConfig['balloonWidth']+"; height:"+markerConfig['balloonHaight']+"; text-align: "+markerConfig['balloonAlign']+";'>"+showInfo+"</div><br />");
              });
                           

            }
          }
        );
      }
      else{
      	mapError(mapConfig['mapErrorImg']);
      }
    }
