        var map;
	var progressbar;
        var baseIcon;
        var largemarkers_load = 0;  // not loaded
        var smallmarkers_load = 1;  // loaded by default
        var lock_moveend = false;


////////////////////////////////////////////////////
// we'll have to remove the small icons when zooming in, so if we get data clear overlays
// zoom in twice to show data??
//  this way we can remove markes on zoom out??
// next steps:
//  php, query by lat/long
// reset should also reset zoom

        function initialize() {
            if (GBrowserIsCompatible()) {
                map = new GMap2(document.getElementById("map_canvas"));
                map.setMapType(G_PHYSICAL_MAP);
                map.setCenter(new GLatLng(37.4419, -95.1419), 4);
                map.addControl(new GLargeMapControl3D());
                map.addMapType(G_PHYSICAL_MAP);
                map.addControl(new GHierarchicalMapTypeControl());
                var progressbarOptions = {width: 150, loadstring: 'One moment please'};
                progressBar = new ProgressbarControl(map, progressbarOptions);
               GEvent.addListener(map,"moveend", function(){loaddata();});

       // Create a base icon for all Majors that specifies the
       // shadow, icon dimensions, etc.
       baseIcon = new GIcon();
       baseIcon.iconSize = new GSize(20, 34);
       baseIcon.shadowSize = new GSize(37, 34);
       baseIcon.iconAnchor = new GPoint(9, 34);
       baseIcon.infoWindowAnchor = new GPoint(9, 2);
       baseIcon.infoShadowAnchor = new GPoint(18, 25);

            }
        }

      // A function to create the marker and set up the event window
      function createMarker(point,html,icon) {
        var icon_image = 'images/' + icon + '.png';
        var icon_detail = new GIcon(baseIcon, icon_image, null, branchUrl + "/otis/images/shadow50.png");
        var marker = new GMarker(point, icon_detail);
        GEvent.addListener(marker, "click", function() {
          lock_moveend = true;
          marker.openInfoWindowHtml(html);
        });
        return marker;
      }

   function loaddata() {
       if (lock_moveend) {
         lock_moveend = false;
       } else {

   		var bounds = map.getBounds();
   		var zoom = map.getBoundsZoomLevel(bounds);
   		//if (zoom > 6 && largemarkers_load == 0) {  // this turns off adding markings for zooming in, but disables panning :(
   		if (zoom > 6) {
   		map.clearOverlays();
   			 if (document.map.air.checked) {addAirMarkers2('');}
   			 if (document.map.water.checked) {addWaterMarkers2('');}
   			 if (document.map.land.checked) {addLandMarkers2('');}
   			 if (document.map.criminal.checked) {addCriminalMarkers2();}
   			 if (document.map.federal.checked) {addFederalMarkers2();}
   			 if (document.map.crossmedia.checked) {addCrossmediaMarkers2();}
   			largemarkers_load = 1;
   			smallmarkers_load = 0;
   		}
   		else if (zoom < 7 && smallmarkers_load == 0) {
   		  map.clearOverlays();
   			 if (document.map.air.checked) {addAirMarkers();}
   			 if (document.map.water.checked) {addWaterMarkers();}
   			 if (document.map.land.checked) {addLandMarkers();}
   			 if (document.map.criminal.checked) {addCriminalMarkers();}
   			 if (document.map.federal.checked) {addFederalMarkers();}
   			 if (document.map.crossmedia.checked) {addCrossmediaMarkers();}
   		  largemarkers_load = 0;
   		  smallmarkers_load = 1;
   		}
   		}

   		}

   function getextent(amap) {
        return "swlat="+amap.getBounds().getSouthWest().lat() +"&swlng="+amap.getBounds().getSouthWest().lng() +"&nelat="+amap.getBounds().getNorthEast().lat()+"&nelng="+amap.getBounds().getNorthEast().lng();
    }

        function addAirMarkers() {
           var bounds = map.getBounds();
   		   var zoom = map.getBoundsZoomLevel(bounds);
   		   if (zoom > 6) {addAirMarkers2(''); return;}  // if we're zoomed in only add big markers

           progressBar.start();

           downloadUrl("map_xml_generator.php?query_id_num=102", function(data) {
           var markers = data.documentElement.getElementsByTagName("marker");

            var bounds = map.getBounds();

            for (var i = 0; i < markers.length; i++) {
                var latlng = new GLatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng")));


                    map.addOverlay(new MarkerLight(latlng, {
                        image: "images/aquacirclemarker.png"
                    }));
            }});

            setTimeout('remove_pbar()', 20);
        }

        function addWaterMarkers() {
           var bounds = map.getBounds();
   		   var zoom = map.getBoundsZoomLevel(bounds);
   		   if (zoom > 6) {addWaterMarkers2(''); return;}  // if we're zoomed in only add big markers
           progressBar.start();

           downloadUrl("map_xml_generator.php?query_id_num=104", function(data) {
           var markers = data.documentElement.getElementsByTagName("marker");

            var bounds = map.getBounds();

            for (var i = 0; i < markers.length; i++) {
                var latlng = new GLatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng")));


                    map.addOverlay(new MarkerLight(latlng, {
                        image: "images/bluecirclemarker.png"
                    }));
            }});

            setTimeout('remove_pbar()', 20);
        }

        function addLandMarkers() {
           var bounds = map.getBounds();
   		   var zoom = map.getBoundsZoomLevel(bounds);
   		   if (zoom > 6) {addLandMarkers2(''); return;}  // if we're zoomed in only add big markers

           progressBar.start();

           downloadUrl("map_xml_generator.php?query_id_num=106", function(data) {
           var markers = data.documentElement.getElementsByTagName("marker");

            var bounds = map.getBounds();

            for (var i = 0; i < markers.length; i++) {
                var latlng = new GLatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng")));


                    map.addOverlay(new MarkerLight(latlng, {
                        image: "images/purplecirclemarker.png"
                    }));
            }});

            setTimeout('remove_pbar()', 20);
        }

        function addCriminalMarkers() {
           var bounds = map.getBounds();
   		   var zoom = map.getBoundsZoomLevel(bounds);
   		   if (zoom > 6) {addCriminalMarkers2(); return;}  // if we're zoomed in only add big markers

           progressBar.start();

           downloadUrl("map_xml_generator.php?query_id_num=109", function(data) {
           var markers = data.documentElement.getElementsByTagName("marker");

            var bounds = map.getBounds();

            for (var i = 0; i < markers.length; i++) {
                var latlng = new GLatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng")));


                    map.addOverlay(new MarkerLight(latlng, {
                        image: "images/yellowcirclemarker.png"
                    }));
            }});

            setTimeout('remove_pbar()', 20);
        }
        function addFederalMarkers() {
           var bounds = map.getBounds();
   		   var zoom = map.getBoundsZoomLevel(bounds);
   		   if (zoom > 6) {addFederalMarkers2(''); return;}  // if we're zoomed in only add big markers

           progressBar.start();

           downloadUrl("map_xml_generator.php?query_id_num=111", function(data) {
           var markers = data.documentElement.getElementsByTagName("marker");

            var bounds = map.getBounds();

            for (var i = 0; i < markers.length; i++) {
                var latlng = new GLatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng")));


                    map.addOverlay(new MarkerLight(latlng, {
                        image: "images/orangecirclemarker.png"
                    }));
            }});

            setTimeout('remove_pbar()', 20);
        }
        function addCrossmediaMarkers() {
           var bounds = map.getBounds();
   		   var zoom = map.getBoundsZoomLevel(bounds);
   		   if (zoom > 6) {addCrossmediaMarkers2(''); return;}  // if we're zoomed in only add big markers

           progressBar.start();

           downloadUrl("map_xml_generator.php?query_id_num=110", function(data) {
           var markers = data.documentElement.getElementsByTagName("marker");

            var bounds = map.getBounds();

            for (var i = 0; i < markers.length; i++) {
                var latlng = new GLatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng")));


                    map.addOverlay(new MarkerLight(latlng, {
                        image: "images/pinkcirclemarker.png"
                    }));
            }});

            setTimeout('remove_pbar()', 20);
        }

         function addAirMarkers2(e_ind_var) {
            progressBar.start();

 			var querylogic = "map_xml_generator.php?query_id_num=102&e_ind=Null";

			if (document.map.water.checked == false && document.map.land.checked == false && document.map.criminal.checked == false && document.map.crossmedia.checked == false && document.map.federal.checked == false) {
				map.clearOverlays();
			}

 			e_ind_var = "&e_ind=" + e_ind_var;

 			var extender = getextent(map);
 			querylogic = querylogic . extender;

             downloadUrl("map_xml_generator.php?query_id_num=102&"+getextent(map)+e_ind_var, function(data) {
             var markers = data.documentElement.getElementsByTagName("marker");

             var bounds = map.getBounds();

             for (var i = 0; i < markers.length; i++) {
                 var latlng = new GLatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng")));
                 //var html = markers[i].getAttribute("name");
                 //var html = '<font face="Arial, Helvetica, Geneva" size="1">' + markers[i].getAttribute("name") + '</font>';

                 var icon = "las";
                 var multifac = "";

                 if (markers[i].getAttribute("multi_facility") == "Y") {
                      icon = "lasp";
                      multifac = "&nbsp;&nbsp;&nbsp;<a href=javascript:popup_window('multi_fac_map.php?id=102&color=" + icon + '&IDNumber=' + markers[i].getAttribute("programid") + "','','toolbar=no,location=no,status=no,menubar=yes,scrollbars=yes,resizable=yes,width=805,height=470')>Multi Facility</a>";
                 }



               var html = '<font face="Arial, Helvetica, Geneva" size="1">' + "<a href=javascript:popup_window(branchUrl + '/cgi-bin/get1cReport.cgi?tool=eici&IDNumber=" + markers[i].getAttribute("programid") + "','','toolbar=no,location=no,status=no,menubar=yes,scrollbars=yes,resizable=yes,width=855,height=700')>" + markers[i].getAttribute("name") + '</a><br>Statutes: ' + markers[i].getAttribute("law") + "/" + markers[i].getAttribute("section") + "<br><font color=gray>More Information</font><br>FRS ID: <a href=javascript:popup_window(branchUrl + '/cgi-bin/get1cReport.cgi?tool=echo&IDNumber=" + markers[i].getAttribute("frs_id") + "','','toolbar=no,location=no,status=no,menubar=yes,scrollbars=yes,resizable=yes,width=855,height=700')>" + markers[i].getAttribute("frs_id") + '</a>' + multifac + '</font>';

           		var marker = createMarker(latlng,html,icon);
           		map.addOverlay(marker);
             }});

             setTimeout('remove_pbar()', 20);
        }

 		function addWaterMarkers2(e_ind_var) {
           progressBar.start();

			if (document.map.air.checked == false && document.map.land.checked == false && document.map.criminal.checked == false && document.map.crossmedia.checked == false && document.map.federal.checked == false)
			{map.clearOverlays();}

			var querylogic = "map_xml_generator.php?query_id_num=104&e_ind=Null";

			e_ind_var = "&e_ind=" + e_ind_var;

			var extender = getextent(map);
			querylogic = querylogic . extender;

            downloadUrl("map_xml_generator.php?query_id_num=104&"+getextent(map)+e_ind_var, function(data) {
            var markers = data.documentElement.getElementsByTagName("marker");

            var bounds = map.getBounds();

            for (var i = 0; i < markers.length; i++) {
                var latlng = new GLatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng")));
                //var html = markers[i].getAttribute("name");
                //var html = '<font face="Arial, Helvetica, Geneva" size="1">' + markers[i].getAttribute("name") + '</font>';

                var icon = "lbs";
                var multifac = "";

                if (markers[i].getAttribute("multi_facility") == "Y") {
                     icon = "lbsp";
                     multifac = "&nbsp;&nbsp;&nbsp;<a href=javascript:popup_window('multi_fac_map.php?id=104&color=" + icon + '&IDNumber=' + markers[i].getAttribute("programid") + "','','toolbar=no,location=no,status=no,menubar=yes,scrollbars=yes,resizable=yes,width=805,height=470')>Multi Facility</a>";
                }



              var html = '<font face="Arial, Helvetica, Geneva" size="1">' + "<a href=javascript:popup_window(branchUrl + '/cgi-bin/get1cReport.cgi?tool=eici&IDNumber=" + markers[i].getAttribute("programid") + "','','toolbar=no,location=no,status=no,menubar=yes,scrollbars=yes,resizable=yes,width=855,height=700')>" + markers[i].getAttribute("name") + '</a><br>Statutes: ' + markers[i].getAttribute("law") + "/" + markers[i].getAttribute("section") + "<br><font color=gray>More Information</font><br>FRS ID: <a href=javascript:popup_window(branchUrl + '/cgi-bin/get1cReport.cgi?tool=echo&IDNumber=" + markers[i].getAttribute("frs_id") + "','','toolbar=no,location=no,status=no,menubar=yes,scrollbars=yes,resizable=yes,width=855,height=700')>" + markers[i].getAttribute("frs_id") + '</a>' + multifac + '</font>';

          		var marker = createMarker(latlng,html,icon);
          		map.addOverlay(marker);
            }});

            setTimeout('remove_pbar()', 20);
        }

        function addLandMarkers2(e_ind_var) {
           progressBar.start();

			if (document.map.water.checked == false && document.map.air.checked == false && document.map.criminal.checked == false && document.map.crossmedia.checked == false && document.map.federal.checked == false)
			{map.clearOverlays();}

			var querylogic = "map_xml_generator.php?query_id_num=106&e_ind=Null";
			e_ind_var = "&law=" + e_ind_var;

			var extender = getextent(map);
			querylogic = querylogic . extender;

            downloadUrl("map_xml_generator.php?query_id_num=106&"+getextent(map)+e_ind_var, function(data) {
            var markers = data.documentElement.getElementsByTagName("marker");

            var bounds = map.getBounds();

            for (var i = 0; i < markers.length; i++) {
                var latlng = new GLatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng")));
                //var html = markers[i].getAttribute("name");
                //var html = '<font face="Arial, Helvetica, Geneva" size="1">' + markers[i].getAttribute("name") + '</font>';

                var icon = "lps";
                var multifac = "";

                if (markers[i].getAttribute("multi_facility") == "Y") {
                     icon = "lpsp";
                     multifac = "&nbsp;&nbsp;&nbsp;<a href=javascript:popup_window('multi_fac_map.php?id=106&color=" + icon + '&IDNumber=' + markers[i].getAttribute("programid") + "','','toolbar=no,location=no,status=no,menubar=yes,scrollbars=yes,resizable=yes,width=805,height=470')>Multi Facility</a>";
                }



              var html = '<font face="Arial, Helvetica, Geneva" size="1">' + "<a href=javascript:popup_window(branchUrl + '/cgi-bin/get1cReport.cgi?tool=eici&IDNumber=" + markers[i].getAttribute("programid") + "','','toolbar=no,location=no,status=no,menubar=yes,scrollbars=yes,resizable=yes,width=855,height=700')>" + markers[i].getAttribute("name") + '</a><br>Statutes: ' + markers[i].getAttribute("law") + "/" + markers[i].getAttribute("section") + "<br><font color=gray>More Information</font><br>FRS ID: <a href=javascript:popup_window(branchUrl + '/cgi-bin/get1cReport.cgi?tool=echo&IDNumber=" + markers[i].getAttribute("frs_id") + "','','toolbar=no,location=no,status=no,menubar=yes,scrollbars=yes,resizable=yes,width=855,height=700')>" + markers[i].getAttribute("frs_id") + '</a>' + multifac + '</font>';

          		var marker = createMarker(latlng,html,icon);
          		map.addOverlay(marker);
            }});

            setTimeout('remove_pbar()', 20);
        }

        function addCriminalMarkers2() {
           progressBar.start();

			if (document.map.water.checked == false && document.map.land.checked == false && document.map.air.checked == false && document.map.crossmedia.checked == false && document.map.federal.checked == false)
			{map.clearOverlays();}

            downloadUrl("map_xml_generator.php?query_id_num=109&"+getextent(map), function(data) {
            var markers = data.documentElement.getElementsByTagName("marker");

            for (var i = 0; i < markers.length; i++) {
                var latlng = new GLatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng")));

                var icon = "lys";
                //var more_info = "<br><font color=gray>More Information</font>";
                var more_info = "<br><a href=javascript:popup_window('" + markers[i].getAttribute("overlay_key") + "','','toolbar=no,location=no,status=no,menubar=yes,scrollbars=yes,resizable=yes,width=855,height=700')>More Information</a>";


              var html = '<font face="Arial, Helvetica, Geneva" size="1">' + markers[i].getAttribute("name") + '</a><br>Statutes: ' + markers[i].getAttribute("law") + "/" + markers[i].getAttribute("section") + more_info + "</font>";

          		var marker = createMarker(latlng,html,icon);
          		map.addOverlay(marker);
            }});

            setTimeout('remove_pbar()', 20);
        }


        function addCrossmediaMarkers2() {
           progressBar.start();

			if (document.map.water.checked == false && document.map.air.checked == false && document.map.criminal.checked == false && document.map.federal.checked == false)
			{map.clearOverlays();}

			var querylogic = "map_xml_generator.php?query_id_num=110&e_ind=Null";

			var extender = getextent(map);
			querylogic = querylogic . extender;

            downloadUrl("map_xml_generator.php?query_id_num=110&"+getextent(map), function(data) {
            var markers = data.documentElement.getElementsByTagName("marker");

            var bounds = map.getBounds();

            for (var i = 0; i < markers.length; i++) {
                var latlng = new GLatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng")));

                var icon = "lpks";
                var multifac = "";

                if (markers[i].getAttribute("multi_facility") == "Y") {
                     icon = "lpksp";
                     multifac = "&nbsp;&nbsp;&nbsp;<a href=javascript:popup_window('multi_fac_map.php?id=110&color=" + icon + '&IDNumber=' + markers[i].getAttribute("programid") + "','','toolbar=no,location=no,status=no,menubar=yes,scrollbars=yes,resizable=yes,width=805,height=470')>Multi Facility</a>";
                }



              var html = '<font face="Arial, Helvetica, Geneva" size="1">' + "<a href=javascript:popup_window(branchUrl + '/cgi-bin/get1cReport.cgi?tool=eici&IDNumber=" + markers[i].getAttribute("programid") + "','','toolbar=no,location=no,status=no,menubar=yes,scrollbars=yes,resizable=yes,width=855,height=700')>" + markers[i].getAttribute("name") + '</a><br>Statutes: ' + markers[i].getAttribute("law") + "/" + markers[i].getAttribute("section") + "<br><font color=gray>More Information</font><br>FRS ID: <a href=javascript:popup_window(branchUrl + '/cgi-bin/get1cReport.cgi?tool=echo&IDNumber=" + markers[i].getAttribute("frs_id") + "','','toolbar=no,location=no,status=no,menubar=yes,scrollbars=yes,resizable=yes,width=855,height=700')>" + markers[i].getAttribute("frs_id") + '</a>' + multifac + '</font>';

          		var marker = createMarker(latlng,html,icon);
          		map.addOverlay(marker);
            }});

            setTimeout('remove_pbar()', 20);
        }

        function addFederalMarkers2() {
           progressBar.start();

			if (document.map.water.checked == false && document.map.air.checked == false && document.map.criminal.checked == false && document.map.crossmedia.checked == false )
			{map.clearOverlays();}

			var querylogic = "map_xml_generator.php?query_id_num=111&e_ind=Null";

			var extender = getextent(map);
			querylogic = querylogic . extender;

            downloadUrl("map_xml_generator.php?query_id_num=111&"+getextent(map), function(data) {
            var markers = data.documentElement.getElementsByTagName("marker");

            var bounds = map.getBounds();

            for (var i = 0; i < markers.length; i++) {
                var latlng = new GLatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng")));

                var icon = "los";
                var multifac = "";

                if (markers[i].getAttribute("multi_facility") == "Y") {
                     icon = "losp";
                     multifac = "&nbsp;&nbsp;&nbsp;<a href=javascript:popup_window('multi_fac_map.php?id=111&color=" + icon + '&IDNumber=' + markers[i].getAttribute("programid") + "','','toolbar=no,location=no,status=no,menubar=yes,scrollbars=yes,resizable=yes,width=805,height=470')>Multi Facility</a>";
                }

              var more_info = "<br><font color=gray>More Information</font>";
              if (markers[i].getAttribute("overlay_key")) {
              	more_info = "<br><a href=javascript:popup_window('" + markers[i].getAttribute("overlay_key") + "','','toolbar=no,location=no,status=no,menubar=yes,scrollbars=yes,resizable=yes,width=855,height=700')>More Information</a>";
              	}

              var html = '<font face="Arial, Helvetica, Geneva" size="1">' + "<a href=javascript:popup_window(branchUrl + '/cgi-bin/get1cReport.cgi?tool=eici&IDNumber=" + markers[i].getAttribute("programid") + "','','toolbar=no,location=no,status=no,menubar=yes,scrollbars=yes,resizable=yes,width=855,height=700')>" + markers[i].getAttribute("name") + '</a><br>Statutes: ' + markers[i].getAttribute("law") + "/" + markers[i].getAttribute("section") + more_info + "<br>FRS ID: <a href=javascript:popup_window(branchUrl + '/cgi-bin/get1cReport.cgi?tool=echo&IDNumber=" + markers[i].getAttribute("frs_id") + "','','toolbar=no,location=no,status=no,menubar=yes,scrollbars=yes,resizable=yes,width=855,height=700')>" + markers[i].getAttribute("frs_id") + '</a>' + multifac + '</font>';

          		var marker = createMarker(latlng,html,icon);
          		map.addOverlay(marker);
            }});

            setTimeout('remove_pbar()', 20);
        }

      function popup_window(theURL,winName,features) {
        window.open(theURL,winName,features);
        }


        function clearMarkers() {
          	document.map.air.disabled=false;
            document.map.air.checked=false;
          	document.map.water.disabled=false;
            document.map.water.checked=false;
        	document.map.land.disabled=false;
            document.map.land.checked=false;
        	document.map.criminal.disabled=false;
            document.map.criminal.checked=false;
        	document.map.federal.disabled=false;
            document.map.federal.checked=false;
        	document.map.crossmedia.disabled=false;
            document.map.crossmedia.checked=false;

            map.clearOverlays();
            
        }



		function disableAir() {
		    document.map.air.disabled=true;
		}
		function disableWater() {
		    document.map.water.disabled=true;
		}
		function disableLand() {
		    document.map.land.disabled=true;
		}
		function disableeind() {
		    document.map.eind.disabled=true;
		}
		function disableCriminal() {
		    document.map.criminal.disabled=true;
		}
		function disableFederal() {
		    document.map.federal.disabled=true;
		}
		function disableCrossmedia() {
		    document.map.crossmedia.disabled=true;
		}

        function remove_pbar() {
           progressBar.remove();
        }

