﻿// JScript File
var map;
var directionsPanel;
var directions;
var gdir;
var homelatlng;
var centerpoint;
var homepoint;
var mrkr;
var xcoord;
var ycoord;
var panpoint;
var gmarkers = [];
var htmls = [];
var i = 0;
function initialize() 
{

    xcoord = 39.26203141523749;
    ycoord = -120.10665893554687;
          // arrays to hold variants of the info window html with get direction forms open
    var to_htmls = [];
    var from_htmls = [];
    if (GBrowserIsCompatible()) 
    {      

        map = new GMap2(document.getElementById("map_canvas"));
        map.addControl(new GSmallMapControl());
        centerpoint = new GLatLng(39.26203141523749,-120.10665893554687);
        homepoint = new GLatLng(xcoord, ycoord);
        map.setCenter(centerpoint, 10);

        function createMarker(point,name,html, idx) 
        {
            var specialIcon = new GIcon();
            specialIcon.iconSize = new GSize(62, 32);
            specialIcon.shadowSize = new GSize(82, 32);
            specialIcon.iconAnchor = new GPoint(16, 32);
            specialIcon.infoWindowAnchor = new GPoint(5, 36);
            if(idx>0)
            {
                specialIcon.image = "assets/d.png";
                specialIcon.shadow = "assets/d-shadow.png";
            }
            else
            {
                specialIcon.image = "assets/spacer.gif";
            }
            markerOptions = { icon:specialIcon, title:name };
            InfoOffset = new GSize(-100, 100);
            var marker = new GMarker(point, markerOptions);


            GEvent.addListener(marker, "click", function() 
            {
                marker.openInfoWindow(html,{ maxWidth:200});
                var zoom = map.getZoom();
                var newlat;
                newlat = (zoom*zoom)/2.1*Math.pow(0.1,zoom/2.1)*100;
                panpoint = new GLatLng(point.lat()+(newlat), point.lng()+(newlat/3));
                setTimeout("map.panTo(panpoint);",500);
                //map.panTo(panpoint);

            });
            
            html = '<div class=\'infowindowsm\'>' + html + '</div>';

            gmarkers[i] = marker;
            htmls[i] = html;

            i++;
            return marker;

        }
        function myclick(i) 
        {
            gmarkers[i].openInfoWindow(htmls[i],{ maxWidth:200 });
                var zoom = map.getZoom();
                var newlat;
                newlat = (zoom*zoom)/2.2*Math.pow(0.1,zoom/2.2)*100;
                panpoint = new GLatLng(point.lat()+(newlat), point.lng()+(newlat));
                setTimeout("map.panTo(panpoint);",500);
        }


        // Read the data from example.xml
        var request = GXmlHttp.create();
        request.open("GET", "xml/davesloc.xml", true);
        request.onreadystatechange = function() 
        {
            if (request.readyState == 4) 
            {
                var xmlDoc = GXml.parse(request.responseText);
                // obtain the array of markers and loop through it
                var markers = xmlDoc.documentElement.getElementsByTagName("marker");
          
                for (var i = 0; i < markers.length; i++) 
                {
                    // obtain the attribues 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,i);
                    map.addOverlay(marker);
                }
            }
        }
        request.send(null);

/*
        GEvent.addListener(map,"click", function(overlay,latlng) {
                  if (overlay) {
                    // ignore if we click on the info window
                    return;
                  }
                  var tileCoordinate = new GPoint();
                  var tilePoint = new GPoint();
                  var currentProjection = G_NORMAL_MAP.getProjection();
                  tilePoint = currentProjection.fromLatLngToPixel(latlng, map.getZoom());
                  tileCoordinate.x = Math.floor(tilePoint.x / 256);
                  tileCoordinate.y = Math.floor(tilePoint.y / 256);
                  var myHtml = "Latitude: " + latlng.lat() + "<br/>Longitude: " + latlng.lng() + 
                    "<br/>The Tile Coordinate is:<br/> x: " + tileCoordinate.x + 
                    "<br/> y: " + tileCoordinate.y + "<br/> at zoom level " + map.getZoom();	
                  map.openInfoWindow(latlng, myHtml);
                });*/
    }
    else 
    {
      alert("Sorry, the Google Maps API is not compatible with this browser");
    }    
}

function myclick(i) 
{
    var point = gmarkers[i].getLatLng();
    gmarkers[i].openInfoWindow(htmls[i],{ maxWidth:200 });
                var zoom = 10;
                map.setZoom(10);
                var newlat;
                newlat = (zoom*zoom)/2.15*Math.pow(0.1,zoom/2.15)*100;
                panpoint = new GLatLng(point.lat()+(newlat), point.lng()+(newlat/4));
                setTimeout("map.panTo(panpoint);",500);
}