
function getHTTPObject()
		{
		 	if (window.ActiveXObject)
				 return new ActiveXObject("Microsoft.XMLHTTP");
			else if (window.XMLHttpRequest)
				 return new XMLHttpRequest();
			else {
					 alert("Your browser does not support AJAX!");
					 return null;
			};
		}

function init(mapZoom){

  //alert(mapZoom);

	// ***************
	// LOAD GOOGLE MAP
	// ***************
	
//	alert();
	
	var map = new GMap2(document.getElementById("map_canvas"));
	map.setUIToDefault();
		
	// Create custom marker
	var newIcon = new GIcon();
  newIcon.image = "http://maps.google.com/mapfiles/ms/micons/red-pushpin.png";
  newIcon.shadow = "http://maps.google.com/mapfiles/ms/micons/pushpin_shadow.png";
  newIcon.iconSize = new GSize(20, 20);
  newIcon.shadowSize = new GSize(20, 20);
  newIcon.iconAnchor = new GPoint(3, 20);
  newIcon.infoWindowAnchor = new GPoint(5, 1);
	// Set up our GMarkerOptions object literal
	markerOptions = { icon:newIcon };
	
	// Get map data
	
	mapData = getHTTPObject();

  mapData.onreadystatechange = function()
	{ 
	  if(mapData.readyState == 4)
          {
						if(mapData.status == 200)
        		{
        			tempString = mapData.responseText;
        			//Split string by [split] into latitudes and longitudes
        			//alert(tempString);
        			
        			tempArray = tempString.split("[split]");
        			
        			latitudeString = tempArray[0];
        			longitudeString = tempArray[1];
							titleString = tempArray[2];
							urlString = tempArray[3];
							descString = tempArray[4];
        			
							//alert(latitudeString);
							
        			//Split each by ,
        			
        			latitudes = latitudeString.split(",");
        			longitudes = longitudeString.split(",");
        			titles = titleString.split("[titlesplit]");
							urls = urlString.split("[urlsplit]");
							descs = descString.split("[descsplit]");
							
        			//Draw Markers based on data
							
							var newMarkers = new Array();
							
        			for (count=0; count<(latitudes.length-1); count++)
							//Remember, there's always an empty entry in the array!
        			{
								newLatLng = new GLatLng(latitudes[count], longitudes[count], true);
								newMarker = new GMarker(newLatLng, markerOptions);
								
								GEvent.addListener(newMarker,"click",function(count){
								  return function(){
									windowInformation = "<span class='map_bubble'><a href='" + urls[count]+"'>" + titles[count] + "</a><br>" + descs[count] + "</span>";
									   this.openInfoWindowHtml(windowInformation);;
									  }
									}(count));
								
								newMarkers[count] = newMarker;
        				map.addOverlay(newMarkers[count]);
        			}//for count
							
							//Draw Lines Based On Markers							
							for (i=1; i<newMarkers.length; i++)
							{
								var polyOptions = {clickable:false};
								var polyline = new GPolyline([
								  newMarkers[i].getLatLng(),
								  newMarkers[i-1].getLatLng()
								  ], "#ff0000", 3, 0.75, polyOptions);
								map.addOverlay(polyline);					
							} // for newMarkers
							
							//Only zoom out if we're at the root
							if (mapZoom == 'all')
							{
									//Zoom to include previous markers
  								var latlngBounds = new GLatLngBounds();
									
									//Only include last 4 markers
  								var limit = 4;
  								if (newMarkers.length < limit)
  								{
  								 limit = newMarkers.length;
  								}
									
									for ( var i = 0; i < limit; i++ )
                  {
                    //alert(newMarkers[i].getLatLng());
										latlngBounds.extend( newMarkers[i].getLatLng() );
                  }
									map.setCenter(latlngBounds.getCenter(), map.getBoundsZoomLevel(latlngBounds));
									  							
            	} // if MapZoom = all
							else 
							{
							  //First, center on marker for current page
  							var newCoordinatesLoop = document.getElementsByName('geo.position');
              	for (var i=0; i<newCoordinatesLoop.length; i++) {
              	  var newCoordinates = newCoordinatesLoop[i].content;
              	  var newLatLng = newCoordinates.split(';');
                  map.setCenter(new GLatLng(newLatLng[0],newLatLng[1]), 8);
								}; //for var
							}// if MapZoom = all ELSE
					 }// if MapData.status = 200
           else	
           {
           		alert(mapData.statusText);
  						document.getElementById("mapCanvas").innerHTML ="Error: returned status code " + mapData.status + " " + mapData.statusText;
	  			 }// if MapData.status = 200 ELSE
	}; // mapData.readyState = 4
	
	
  } //onreadyStateChange function
	
	mapData.open("GET", "returnBlogMapData.php", true); 
	mapData.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
	mapData.send(null);
 }; // function init