﻿var _gMap; 
var _geocoder; 
var _homeMarker; 
var _homeIcon; 
var _acspGeoXml; 
var _lspGeoXml; 
var _scpGeoXml;
var _vpGeoXml;
var _vgfGeoXml;
var _controlPrefix = 'ctl00_mainContentHolder_';

function Initialize() {
   if (GBrowserIsCompatible()) {
      _geocoder = new GClientGeocoder(); 
      _homeIcon = new GIcon(); 
      _homeIcon.image = '../Images/home.png'; 
      _homeIcon.shadow = '../Images/home-shadow.png'; 
      _homeIcon.iconSize = new GSize(32, 32); 
      _homeIcon.shadowSize = new GSize(59, 32); 
      _homeIcon.iconAnchor = new GPoint(16, 16); 
      _homeIcon.infoWindowAnchor = new GPoint(32, 0); 
      InitializeMap();
      InitializeLayers(); 
      InitializeProgramTypes(); 
      }
   }
function InitializeMap() {
   _gMap = new GMap2(document.getElementById('mapCanvas')); 
   _gMap.setCenter(new GLatLng(42.756, - 75.809), 6); 
   _gMap.addControl(new GLargeMapControl()); 
  // _gMap.enableScrollWheelZoom(); 
   }
function InitializeLayers() {
   _acspGeoXml = new GGeoXml("http://www.newyorkersvolunteer.com/kml/acsp.kml"); 
   _lspGeoXml = new GGeoXml("http://www.newyorkersvolunteer.com/kml/lsp.kml"); 
   _scpGeoXml = new GGeoXml("http://www.newyorkersvolunteer.com/kml/scp.kml");
   _vpGeoXml = new GGeoXml("http://www.newyorkersvolunteer.com/kml/vp.kml");
   _vgfGeoXml = new GGeoXml("http://www.newyorkersvolunteer.com/kml/vgf.kml"); 
   }
function InitializeProgramTypes() {
   var programTypes = document.getElementById(_controlPrefix + 'programTypes').value; 
   if (programTypes.indexOf('ACSP') > - 1) {
      document.getElementById('ACSPCheckBox').click(); 
      }
   if (programTypes.indexOf('LSP') > - 1) {
      document.getElementById('LSPCheckBox').click(); 
      }
   if (programTypes.indexOf('SCP') > - 1) {
      document.getElementById('SCPCheckBox').click(); 
      }
   if (programTypes.indexOf('VP') > - 1) {
      document.getElementById('VPCheckBox').click();
      }
  if (programTypes.indexOf('VGF') > -1) {
      document.getElementById('VGFCheckBox').click();
      }
   }
function FindLocation() {
   var address = document.getElementById(_controlPrefix + 'AddressTextBox').value; 
   if (address == '') return; 
   if (_geocoder) {
      _geocoder.getLatLng( address, function(point) {
         if (!point) {
            alert("'" + address + "' could not be found.\n\nPlease check your input and try again."); }
         else {
            _gMap.setCenter(point, 13); if (_homeMarker) {
               _gMap.removeOverlay(_homeMarker); }
            _homeMarker = new GMarker(point, _homeIcon); _gMap.addOverlay(_homeMarker); }
         }
      ); 
      }
   }
function ToggleLayer(checkbox) {
   var layer = eval('_' + checkbox.value + 'GeoXml'); 
   _gMap.removeOverlay(layer); 
   var dataPanel = document.getElementById(checkbox.value + '_DataPanel'); 
   dataPanel.style.display = 'none'; 
   if (checkbox.checked) {
      var dataContent = document.getElementById(checkbox.value + '_DataPanelContent'); 
      _gMap.addOverlay(layer); 
      TransformXml('../xml/' + checkbox.value + '.xml', '../Transforms/DataGrid.xsl', dataContent); 
      dataPanel.style.display = 'block'; 
      }
   }
function LoadXmlDocument(url) {
   try {
      xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); 
      }
   catch(e) {
      try {
         xmlDoc = document.implementation.createDocument("", "", null); 
         }
      catch(e) {
         alert(e.message)}
      }
   try {
      xmlDoc.async = false; 
      xmlDoc.load(url); 
      return(xmlDoc); 
      }
   catch(e) {
      alert(e.message)}
   return(null); 
   }
function TransformXml(xmlUrl, xslUrl, element) {
   var xmlDocument = LoadXmlDocument(xmlUrl); 
   var xslDocument = LoadXmlDocument(xslUrl); 
   if (window.ActiveXObject) {
      element.innerHTML = xmlDocument.transformNode(xslDocument); 
      }
   else if (document.implementation && document.implementation.createDocument) {
      xsltProcessor = new XSLTProcessor(); 
      xsltProcessor.importStylesheet(xslDocument); 
      resultDocument = xsltProcessor.transformToFragment(xmlDocument, document); 
      element.appendChild(resultDocument); 
      element.innerHTML = element.innerHTML.replace(/&lt;/g, '<').replace(/&gt;/g, '>');
      }
   }
function SetCenterAndZoom(x, y, z, zoom) {
   _gMap.setCenter(new GLatLng(y, x), zoom); 
   }
function ToggleDescription(name) {
   var panel = document.getElementById(name); 
   panel.style.display = (panel.style.display == 'none' || panel.style.display == '') ? 'block' : 'none'; 
   }
