		var gMarkers = new Array();
        var gAddresses = new Array();
        var gOverlays = new Array();
		var map = null;
		var startLat;
		var startLong;
		var viewLevel;

		function loadMap(_startLat, _startLong, _viewLevel) 
         {
         	startLat = _startLat;
         	startLong = _startLong;
         	viewLevel = _viewLevel;
            if (GBrowserIsCompatible())
            	GDownloadUrl("GetProviderData.aspx?xml=1", initMap);
         }

         function initMap(data, responseCode)
         {
            map = new GMap2(document.getElementById("map"));

            map.addControl(new GLargeMapControl());
            map.addControl(new GScaleControl());
            map.addControl(new GMapTypeControl());
           
            map.setCenter(new GLatLng(startLat, startLong), viewLevel);
            var baseIcon = new GIcon();
            baseIcon.image = "/img/markers/blue-15px.png";
            baseIcon.shadow = "/img/markers/blue-shadow-15px.png";
         
            baseIcon.iconSize = new GSize(8, 20);
           
            baseIcon.shadowSize = new GSize(13, 20);
            
            baseIcon.iconAnchor = new GPoint(4, 20);
            
            baseIcon.infoWindowAnchor = new GPoint(9, 2);
            baseIcon.infoShadowAnchor = new GPoint(0, 31);

            var  point, overlay, marker;
            var xml = GXml.parse(data);

            markers = xml.documentElement.getElementsByTagName("marker");      
            infom = xml.documentElement.getElementsByTagName("infom");
            
            gMarkers = new Array(markers.length);
            gAddresses = new Array(markers.length);
            gOverlays = new Array(markers.length);
            
			for (var i=0; i < markers.length; i++)
			{
				point = new GLatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng")));
                                 
				overlay = generateOverlay(infom[i], i);

				marker = createMarker(baseIcon, point, overlay, i);
				map.addOverlay(marker);

				gMarkers[i] = marker;
				gAddresses[i] = generateAddress(infom[i]);
				gOverlays[i] = overlay;
			}
         }
   
         function generateOverlay(node, ordinal)
         {
		 	var divHeight = 11;

		 	if (navigator.appName != "Microsoft Internet Explorer") {
		 		divHeight += 11;
		 	}
			
			if(node.getAttribute("cs") == "true")
				divHeight += 11;
				
			if(node.getAttribute("ce") != "")
				divHeight += 11;
			
			if(node.getAttribute("ce").length > 25)
				divHeight += 11;

			if (node.getAttribute("ce").length > 50)
				divHeight += 11;
				
			if(node.getAttribute("nm") != "")
				divHeight += 11;
				
			if(node.getAttribute("nm").length > 25)
				divHeight += 11;

			if (node.getAttribute("nm").length > 50)
				divHeight += 11;
				
				if (node.getAttribute("nm").length > 75)
				divHeight += 11;
				
				if (node.getAttribute("nm").length > 100)
				divHeight += 11;
				
				if (node.getAttribute("nm").length > 125)
				divHeight += 11;
				
				if (node.getAttribute("nm").length > 150)
				divHeight += 11;
				
				if (node.getAttribute("nm").length > 175)
				divHeight += 11;
				
				if (node.getAttribute("nm").length > 200)
				divHeight += 11;
				
			if(node.getAttribute("ad") != "")
				divHeight += 11;
				
			if(node.getAttribute("st") != "")
				divHeight += 11;
				
			if(node.getAttribute("zp") != "")
				divHeight += 11;
			
			if(node.getAttribute("ph") != "")
				divHeight += 11;
		 
            var ret = "<div style='height:" + divHeight + "px;width: 250px; font size: 11px; white-space:normal;padding: 0 10 0 0; margin:0px;'><B>" + node.getAttribute("ce") + "</B><br>";
         
		    if(node.getAttribute("cs") == "true")
				ret += "<b>Coming Soon!</b><br>";
			
			if(node.getAttribute("nm") != "")
				ret += node.getAttribute("nm") + "<br>";
				 
			if(node.getAttribute("ad") != "")
				ret += node.getAttribute("ad") + "<br>"; 
				 
			if(node.getAttribute("ct") != "")
                ret += node.getAttribute("ct") + ", ";
				 
			if(node.getAttribute("st") != "")
                ret += node.getAttribute("st") + " "; 
				 
			if(node.getAttribute("zp") != "")
                ret += node.getAttribute("zp") + "<br>"; 
				 
			if(node.getAttribute("ph") != "")
                ret += node.getAttribute("ph")  + "<br>";

            if ( node.getAttribute("url") != "" )
                ret += "<a href='javascript:openDialog(\"" + node.getAttribute("url") + "\");'>Website</a> &bull; ";

            ret += "<a href='javascript:void(0);' ONCLICK='return getDirections(" + ordinal + ");'>Driving Directions</A>";
            ret += "</div>";

            return ret;
         }

         function generateAddress(node)
         {
            var ret = "";
            ret += node.getAttribute("ad") + ", " 
                + node.getAttribute("ct") + ", " 
                + node.getAttribute("st") + " " 
                + node.getAttribute("zp");

            return ret;
 
         }

         function createMarker(baseIcon, point, html, ordinal) {

            /* var letter = String.fromCharCode("A".charCodeAt(0) + ordinal);
            var icon = new GIcon(baseIcon);
            icon.image = "http://www.google.com/mapfiles/marker" + letter + ".png";
            var marker = new GMarker(point, icon); */
            
            var number = (ordinal + 1);
		    var icon = new GIcon(baseIcon);
		    //icon.image = "img/markers/marker" + number + ".png";
            icon.image = "http://www.neuronetics.com/img/markers/bluepushpin2.png";
			var marker = new GMarker(point, icon);
            

            GEvent.addListener(marker, "click", function() {
               marker.openInfoWindowHtml(html);
            });

            gMarkers[ordinal] = marker;
            return marker;
         }

         function flipPage(hide,show)
         {
            if ( hide != '' )
		document.getElementById(hide).style.display='none';

            if ( show != '' )
		document.getElementById(show).style.display='block';
         }

         function simulateClick(ordinal) {

         	if (map != null) {
         		map.setZoom(12);
         		GEvent.trigger(gMarkers[ordinal], "click");
         	}
         	else {

         		setTimeout("simulateClick(" + ordinal + ")", 100);
         	}
			
         }

         function getDirections(ordinal)
         {
            var marker = gMarkers[ordinal];
            var overlay = gOverlays[ordinal];
            overlay = overlay.replace('50px','65px');
            overlay += "<FORM STYLE='margin-top: 6px; margin-bottom:0px;' ACTION='http://maps.google.com/maps' METHOD='GET' TARGET='_NEW'>"; //?saddr={start_address}&daddr={destination_address}
            overlay += "Starting Address:<BR>";
            overlay += "<INPUT TYPE=TEXTBOX NAME='saddr' SIZE='28'><BR>";
            overlay += "<INPUT TYPE=HIDDEN NAME='daddr' VALUE='" + gAddresses[ordinal] + "'>";
            overlay += "<INPUT TYPE=SUBMIT VALUE='Get Directions'>";
            overlay += "</FORM>";
            marker.openInfoWindowHtml(overlay);
            return false;
         }
