    function loadGmap(mLat,mLng,mZoom,mTiny,mMarker) {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        map.setCenter(new GLatLng(mLat, mLng), mZoom);
        // Now set up look & feel of the map environment
		map.addControl(new GSmallMapControl());
        //map.addControl(new GMapTypeControl(mTiny)); //(true) enables abbreviations
        map.addControl(new GMenuMapTypeControl()); //(true) no longer enables abbreviations
        map.addControl(new GScaleControl());
		map.enableContinuousZoom();
		map.enableScrollWheelZoom();
		map.enableDoubleClickZoom();
		map.removeMapType(G_NORMAL_MAP);
		map.addMapType(G_PHYSICAL_MAP);
	    map.setMapType(G_HYBRID_MAP);
		map.getContainer().style.overflow="hidden"; // hides any copyright overflow
		// Now we add the marker
		if (mMarker) {
		   var point = new GLatLng(mLat, mLng);
		   map.addOverlay(new GMarker(point));
		} //ENDIF MARKER
      } //ENDIF GBrowser
    } //END FUNCT

function loadAtacama(mLat,mLng,mZoom,mTiny) {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        map.setCenter(new GLatLng(mLat, mLng), mZoom);
        // Now set up look & feel of the map environment
		map.addControl(new GSmallMapControl());
        //map.addControl(new GMapTypeControl(mTiny)); //(true) enables abbreviations
        map.addControl(new GMenuMapTypeControl()); //(true) no longer enables abbreviations
        map.addControl(new GScaleControl());
		map.enableContinuousZoom();
		map.enableScrollWheelZoom();
		map.enableDoubleClickZoom();
		map.removeMapType(G_NORMAL_MAP);
		map.addMapType(G_PHYSICAL_MAP);
	    map.setMapType(G_HYBRID_MAP);
		map.getContainer().style.overflow="hidden"; // hides any copyright overflow
		//build the Altacama polygon
		var polygon = new GPolygon([
		new GLatLng(-18.5,-70.25),
		new GLatLng(-18.5,-68.5),
		new GLatLng(-27.0,-68.5),
		new GLatLng(-27.0,-70.25),
		new GLatLng(-18.5,-70.25)
		], "#f33f00", 2, 1, "#ff0000", 0.2);
		map.addOverlay(polygon);
      } //ENDIF
    } //END FUNCT
	
function loadAndes(mLat,mLng,mZoom,mTiny) {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        map.setCenter(new GLatLng(mLat, mLng), mZoom);
        // Now set up look & feel of the map environment
		map.addControl(new GSmallMapControl());
        //map.addControl(new GMapTypeControl(mTiny)); //(true) enables abbreviations
        map.addControl(new GMenuMapTypeControl()); //(true) no longer enables abbreviations
        map.addControl(new GScaleControl());
		map.enableContinuousZoom();
		map.enableScrollWheelZoom();
		map.enableDoubleClickZoom();
		map.removeMapType(G_NORMAL_MAP);
		map.addMapType(G_PHYSICAL_MAP);
	    map.setMapType(G_HYBRID_MAP);
		map.getContainer().style.overflow="hidden"; // hides any copyright overflow
        //build the Andes Polyline
		   var encodedPolyline = new GPolyline.fromEncoded({
		   color: "#FF0000",
		   weight: 10,
		   points: "aqmp@rf{vLxd|F`zjEts}PnhnLdlhRfypN|juPnioF|gaWmdP~dbM{kyNpei^yhyYnpb[yren@nfha@hq|HjmoYtngJlv|St~sHndqWpioFbokQbtjDvk`UnihCnavUctcAfnfMhihCjyfKhtjD",
		   levels: "BBBBBBBBBBBBBBBBBB",
		   zoomFactor: 32,
		   numLevels: 4});
		map.addOverlay(encodedPolyline);
      } //ENDIF
    } //END FUNCT

//  ************************************************************************
//  *                                                                      *
//  *        ENGLISH MAPPING FUNCTIONS ARE IN THE FOLLOWING BLOCK          *
//  *                                                                      *
//  ************************************************************************

function dynamicLoad() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        map.setCenter(new GLatLng(+5, -80), 2);
		// Now set up look & feel of the map environment...
		map.addControl(new GSmallMapControl());
        map.addControl(new GMenuMapTypeControl()); 
        map.addControl(new GScaleControl());
		map.enableContinuousZoom();
		map.enableScrollWheelZoom();
		map.enableDoubleClickZoom();
		map.removeMapType(G_NORMAL_MAP);
		map.addMapType(G_PHYSICAL_MAP);
	    map.setMapType(G_HYBRID_MAP);
		map.getContainer().style.overflow="hidden"; // hides any copyright overflow
		// Grab the data from the database via php parser...	
        GDownloadUrl("/php/gmaps/genmap2.php", function(data) {
          var xml = GXml.parse(data);
          var markers = xml.documentElement.getElementsByTagName("marker");
          for (var i = 0; i < markers.length; i++) {
            var title = markers[i].getAttribute("title");
            var author = markers[i].getAttribute("author");
            var location = markers[i].getAttribute("location");
            var pcURL = markers[i].getAttribute("pcURL");
            var craft = markers[i].getAttribute("craft");
            var pcDate = markers[i].getAttribute("pcDate");
            var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
                                    parseFloat(markers[i].getAttribute("lng")));
            var marker = createMarker(point, title, author, location, pcURL, craft, pcDate);
            map.addOverlay(marker);

          }
        });
      }
} //END FUNCTION


function createMarker(point, title, author, location, pcURL, craft, pcDate) {
      var marker = new GMarker(point);
	  var title40 = splitLine(title,40);
	  var splitTitle = title40.replace(/\n/g,'<br \/>');
      var html =  "<FONT COLOR=\"#000000\"><strong><br /><a href= "+ pcURL + ">" + splitTitle + "</a></strong><br />" + 
	              "From: " + author + "<br />" + 
				  "<i>" + location + "</i><br />" +
				  "<i>" + pcDate + "</i></FONT>";
      GEvent.addListener(marker, 'click', function() {
        marker.openInfoWindowHtml(html);
      });
	  // The new marker "mouseover" listener        
      // GEvent.addListener(marker,"mouseover", function() { 
      //  marker.openInfoWindowHtml(html); 
     // });        

      return marker;
	  
} //END FUNCTION

//  ************************************************************************
//  *                                                                      *
//  *        SPANISH MAPPING FUNCTIONS ARE IN THE FOLLOWING BLOCK          *
//  *                                                                      *
//  ************************************************************************


function dynamicLoadSP() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        map.setCenter(new GLatLng(+5, -80), 2);
		// Now set up look & feel of the map environment...
		map.addControl(new GSmallMapControl());
        map.addControl(new GMenuMapTypeControl()); 
        map.addControl(new GScaleControl());
		map.enableContinuousZoom();
		map.enableScrollWheelZoom();
		map.enableDoubleClickZoom();
		map.removeMapType(G_NORMAL_MAP);
		map.addMapType(G_PHYSICAL_MAP);
	    map.setMapType(G_HYBRID_MAP);
		map.getContainer().style.overflow="hidden"; // hides any copyright overflow
		// Grab the data from the database via php parser...	
        GDownloadUrl("/php/gmaps/genmap2.php", function(data) {
          var xml = GXml.parse(data);
          var markers = xml.documentElement.getElementsByTagName("marker");
          for (var i = 0; i < markers.length; i++) {
            var title = markers[i].getAttribute("spTitle");
            var author = markers[i].getAttribute("author");
            var location = markers[i].getAttribute("location");
            var spURL = markers[i].getAttribute("spURL");
            var craft = markers[i].getAttribute("craft");
            var spDate = markers[i].getAttribute("spDate");
            var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
                                    parseFloat(markers[i].getAttribute("lng")));
            var marker = createMarkerSP(point, title, author, location, spURL, craft, spDate);
            // Only add marker if the Spanish title exists...
			if(title != "") {
				map.addOverlay(marker);
			}
          }
        });
      }
} //END FUNCTION


function createMarkerSP(point, title, author, location, spURL, craft, spDate) {
      var marker = new GMarker(point);
	  var title40 = splitLine(title,40);
	  var splitTitle = title40.replace(/\n/g,'<br \/>');
      var html =  "<FONT COLOR=\"#000000\"><strong><br /><a href= "+ spURL + ">" + splitTitle + "</a></strong><br />" + 
	              "Por: " + author + "<br />" + 
				  "<i>" + location + "</i><br />" +
				  "<i>" + spDate + "</i></FONT>";
      GEvent.addListener(marker, 'click', function() {
        marker.openInfoWindowHtml(html);
      });
	  // The new marker "mouseover" listener        
      // GEvent.addListener(marker,"mouseover", function() { 
      //  marker.openInfoWindowHtml(html); 
     // });        

      return marker;
	  
} //END FUNCTION

//  ************************************************************************
//  *                                                                      *
//  *        LINE SPLITTING  FUNCTIONS ARE IN THE FOLLOWING BLOCK          *
//  *                                                                      *
//  ************************************************************************

// Line Splitter Function
// copyright Stephen Chapman, 19th April 2006
// you may copy this code but please keep the copyright notice as well
function splitLine(st,n) {
	var b = ''; 
	var s = st;
	while (s.length > n) {
		var c = s.substring(0,n);
		var d = c.lastIndexOf(' ');
		var e =c.lastIndexOf('\n');
		if (e != -1) d = e; 
		if (d == -1) d = n; 
		b += c.substring(0,d) + '\n';
		s = s.substring(d+1);
		} //END WHILE
	return b+s;
} //END FUNCT
                  
