// JavaScript Document
//for singlelocation pages to parse file name
		function DocNameExtract()
		{
			wholeurl = window.location.href;
			x = wholeurl.length;
			while((wholeurl.substring(x,x-1)) != "."){ x--; } clipend = x;
			while((wholeurl.substring(x,x-1)) != "/"){ x--; } clipstart = x;
			return wholeurl.substring(clipend-1,clipstart);
		}
//function to get relative path between documents using a shared parent directory as a temporary "site root." Takes common parent directory as first argument. Takes new path from that directory as second argument
// // **moved to common.js**
//	 function relPathReset(parentDir,newPath)
//	{
//	  //path to current file
//	  var homeurl = window.location.href;
//	  var path = parseUri(homeurl).directory;
//	  var trunc = path.split(parentDir); 
//	  trunc[0] = newPath;
//	  endurl = trunc.pop();
//	  var bbackurl = endurl.replace(/\/[0-9a-zA-Z]*/, "");
//	  var backurl = bbackurl.replace(/\/[0-9a-zA-Z]*/g, "../");
//	  var finPath =(backurl + trunc[0]);
//	  return finPath;
//	}
//	 
 // Begin Google specific -- A function to create the marker and set up the event window
 // function called by and arguments passed from script below
function createMarker(point,name,html,single) 
	{
	
		if(typeof single != 'undefined')
		{
			i = single;
		}
        var marker = new GMarker(point);

        // The info window version with the "to here" form open
        to_htmls[i] = html + '<br>Directions: <b>To here</b> - <a href="javascript:fromhere(' + i + ')">From here</a>' +
           '<br>Start address:<form action="http://maps.google.com/maps" method="get" target="_blank">' +
           '<input type="text" SIZE=40 MAXLENGTH=40 name="saddr" id="saddr" value="" /><br>' +
           '<INPUT value="Get Directions" TYPE="SUBMIT">' +
           '<input type="hidden" name="daddr" value="' + point.lat() + ',' + point.lng() + 
                   "(" + name + ")" + 
           '"/>';
       // The info window version with the "from here" form open
        from_htmls[i] = html + '<br>Directions: <a href="javascript:tohere(' + i + ')">To here</a> - <b>From here</b>' +
           '<br>End address:<form action="http://maps.google.com/maps" method="get"" target="_blank">' +
           '<input type="text" SIZE=40 MAXLENGTH=40 name="daddr" id="daddr" value="" /><br>' +
           '<INPUT value="Get Directions" TYPE="SUBMIT">' +
           '<input type="hidden" name="saddr" value="' + point.lat() + ',' + point.lng() +
                  // "(" + name + ")" + 
           '"/>';
        // The inactive version of the direction info
        html = html + '<br>Directions: <a href="javascript:tohere('+i+')">To here</a> - <a href="javascript:fromhere('+i+')">From here</a>';

        GEvent.addListener(marker, "click", function() 
		{
          marker.openInfoWindowHtml(html);
        }
		);
        // save the info we need to use later for the side_bar
        gmarkers[i] = marker;
        htmls[i] = html;
		//moved from top
		
		
        // add a line to the side_bar html
	if (typeof single == 'undefined')
		{
		
    	side_bar_html += '<li><a href="javascript:myclick(' + i + ')">' + name + '</a></li>';
		i++;
		}
        
        return marker;
    }
	  
//Read the xml and build the map
  if (GBrowserIsCompatible()) 
{
      // this variable will collect the html which will eventually be placed in the side_bar or info windows

	var side_bar_html = "";
    
      // arrays to hold copies of the markers and html used by the side_bar
      // because the function closure trick doesnt work there
      var gmarkers = [];
      var htmls = [];
      var i = 0;
      // arrays to hold variants of the info window html with get direction forms open
      var to_htmls = [];
      var from_htmls = [];

      // This function picks up the click and opens the corresponding info window
      function myclick(i) {
        gmarkers[i].openInfoWindowHtml(htmls[i]);
      }

      // functions that open the directions forms
		      function tohere(i) {
		        gmarkers[i].openInfoWindowHtml(to_htmls[i]);
		      }
		      function fromhere(i) {
		        gmarkers[i].openInfoWindowHtml(from_htmls[i]);
		      }


      // create the map
 	    var map = new GMap2(document.getElementById("map"));
		map.addControl(new GSmallMapControl());
		map.addControl(new GMapTypeControl());
		map.setCenter(new GLatLng( 39.827763,-75.009468), 8);

      // Read the data from maps.xml 
	  // ****** Set path to xml document here ***** 
	  // IMPORTANT ***** Arguments for newPath need to be changed if common parent directory changes or path to xml doc changes.
	 
	  var newPath = (relPathReset("patientcare","xml"));
	  // alert(newPath);
	  var request = GXmlHttp.create();
      request.open("GET", newPath+"/allmappoints.xml", true);
    request.onreadystatechange = function() 
   {
		if (request.readyState == 4) 
		{
		  var xmlDoc = request.responseXML;
		  // obtain the array of markers and loop through it
		  var markers = xmlDoc.documentElement.getElementsByTagName("marker");
	//cull out request for single map page
			if(null === document.getElementById("side_bar") )
			{        
				for (var i = 0; i < markers.length; i++) 
				{
					//get single map name from file name on url
					var page = DocNameExtract();
					if (markers[i].getAttribute("id") == page)
						{
								// obtain the attributes of the marker
								var lat = parseFloat(markers[i].getAttribute("lat"));
								var lng = parseFloat(markers[i].getAttribute("lng"));
								var point = new GLatLng(lat,lng);
								var html = markers[i].getAttribute("html");
								var label = markers[i].getAttribute("label");				
								//get index number to pass on to labels
								var single = i;
								// create the marker for this page
								var marker = createMarker(point,label,html,single);
								map.addOverlay(marker);
								marker.openInfoWindowHtml(to_htmls[i]);
						}
				}
			}else
			{			
				for (var i = 0; i < markers.length; i++) //for multi map page
				{
				  // obtain the attributes of each marker
					var lat = parseFloat(markers[i].getAttribute("lat"));
					var lng = parseFloat(markers[i].getAttribute("lng"));
					var point = new GLatLng(lat,lng);
					var html = markers[i].getAttribute("html");
					var label = markers[i].getAttribute("label");
					// create the marker
					var marker = createMarker(point,label,html,single);
					map.addOverlay(marker);
				}			
			}	
				
		
      
		 
          // put the assembled side_bar_html contents into the side_bar div
  		   if(document.getElementById("side_bar") !== null)
		  {
//	  		}
//			else
//			{    
		  document.getElementById("side_bar").innerHTML = side_bar_html;
			}
		}
	}
      request.send(null);
}

else 
	{
      alert("Sorry, the Google Maps API is not compatible with this browser");
    }    

    // This Javascript is based on code provided by the
    // Blackpool Community Church Javascript Team
    // http://www.commchurch.freeserve.co.uk/   
    // http://econym.org.uk/gmap/