/*--------------------------------------
# Author: Dennis L. Ward (UCAR)
# Modified by Kirsten K. Meymaris (UCAR)
# Copyright 2008-2009 All Rights Reserved	
# University Corporation for Atmosperhic Research, 	
# Chicago Botanic Gardens, & University of Montana	
----------------------------------------*/

//  ************************************************************************
//  *                                                                      *
//  *     ASSOCIATIVE ARRAY OF ICONS -- MUST BE FIRST BLOCK OF CODE!!!     *
//  *                                                                      *
//  ************************************************************************
    //  *** BE SURE THAT THIS ARRAY IS CALLED FROM NEW CHRONOLOGICAL ORDER ***
	var myicons = [];
	// 1
	myicons["1"] = new GIcon(G_DEFAULT_ICON, "/citizen_science/budburst/maps/icons/p1.png");
		myicons["1"].shadow = "/citizen_science/budburst/maps/icons/icon_shadow.png";
		myicons["1"].iconSize = new GSize(12, 20);
		myicons["1"].shadowSize = new GSize(22, 20);
		myicons["1"].iconAnchor = new GPoint(6, 20);
		myicons["1"].infoWindowAnchor = new GPoint(5, 0);
	// 2 
	myicons["2"] = new GIcon(G_DEFAULT_ICON, "/citizen_science/budburst/maps/icons/p2.png");
		myicons["2"].shadow = "/citizen_science/budburst/maps/icons/icon_shadow.png";
		myicons["2"].iconSize = new GSize(12, 20);
		myicons["2"].shadowSize = new GSize(22, 20);
		myicons["2"].iconAnchor = new GPoint(6, 20);
		myicons["2"].infoWindowAnchor = new GPoint(5, 0);
	// 3
	myicons["3"] = new GIcon(G_DEFAULT_ICON, "/citizen_science/budburst/maps/icons/p3.png");
		myicons["3"].shadow = "/citizen_science/budburst/maps/icons/icon_shadow.png";
		myicons["3"].iconSize = new GSize(12, 20);
		myicons["3"].shadowSize = new GSize(22, 20);
		myicons["3"].iconAnchor = new GPoint(6, 20);
		myicons["3"].infoWindowAnchor = new GPoint(5, 0);
	//4 
	myicons["4"] = new GIcon(G_DEFAULT_ICON, "/citizen_science/budburst/maps/icons/p4.png");
		myicons["4"].shadow = "/citizen_science/budburst/maps/icons/icon_shadow.png";
		myicons["4"].iconSize = new GSize(12, 20);
		myicons["4"].shadowSize = new GSize(22, 20);
		myicons["4"].iconAnchor = new GPoint(6, 20);
		myicons["4"].infoWindowAnchor = new GPoint(5, 0);
	//5 
	myicons["5"] = new GIcon(G_DEFAULT_ICON, "/citizen_science/budburst/maps/icons/p5.png");
		myicons["5"].shadow = "/citizen_science/budburst/maps/icons/icon_shadow.png";
		myicons["5"].iconSize = new GSize(12, 20);
		myicons["5"].shadowSize = new GSize(22, 20);
		myicons["5"].iconAnchor = new GPoint(6, 20);
		myicons["5"].infoWindowAnchor = new GPoint(5, 0);
	//6 
	myicons["6"] = new GIcon(G_DEFAULT_ICON, "/citizen_science/budburst/maps/icons/p6.png");
		myicons["6"].shadow = "/citizen_science/budburst/maps/icons/icon_shadow.png";
		myicons["6"].iconSize = new GSize(12, 20);
		myicons["6"].shadowSize = new GSize(22, 20);
		myicons["6"].iconAnchor = new GPoint(6, 20);
		myicons["6"].infoWindowAnchor = new GPoint(5, 0);
	//7 
	myicons["7"] = new GIcon(G_DEFAULT_ICON, "/citizen_science/budburst/maps/icons/p7.png");
		myicons["7"].shadow = "/citizen_science/budburst/maps/icons/icon_shadow.png";
		myicons["7"].iconSize = new GSize(12, 20);
		myicons["7"].shadowSize = new GSize(22, 20);
		myicons["7"].iconAnchor = new GPoint(6, 20);
		myicons["7"].infoWindowAnchor = new GPoint(5, 0);
	//8 
	myicons["8"] = new GIcon(G_DEFAULT_ICON, "/citizen_science/budburst/maps/icons/p8.png");
		myicons["8"].shadow = "/citizen_science/budburst/maps/icons/icon_shadow.png";
		myicons["8"].iconSize = new GSize(12, 20);
		myicons["8"].shadowSize = new GSize(22, 20);
		myicons["8"].iconAnchor = new GPoint(6, 20);
		myicons["8"].infoWindowAnchor = new GPoint(5, 0);
	//9 
	myicons["9"] = new GIcon(G_DEFAULT_ICON, "/citizen_science/budburst/maps/icons/p9.png");
		myicons["9"].shadow = "/citizen_science/budburst/maps/icons/icon_shadow.png";
		myicons["9"].iconSize = new GSize(12, 20);
		myicons["9"].shadowSize = new GSize(22, 20);
		myicons["9"].iconAnchor = new GPoint(6, 20);
		myicons["9"].infoWindowAnchor = new GPoint(5, 0);
	//10 
	myicons["10"] = new GIcon(G_DEFAULT_ICON, "/citizen_science/budburst/maps/icons/p10.png");
		myicons["10"].shadow = "/citizen_science/budburst/maps/icons/icon_shadow.png";
		myicons["10"].iconSize = new GSize(12, 20);
		myicons["10"].shadowSize = new GSize(22, 20);
		myicons["10"].iconAnchor = new GPoint(6, 20);
		myicons["10"].infoWindowAnchor = new GPoint(5, 0);
	//11 
	myicons["11"] = new GIcon(G_DEFAULT_ICON, "/citizen_science/budburst/maps/icons/p11.png");
		myicons["11"].shadow = "/citizen_science/budburst/maps/icons/icon_shadow.png";
		myicons["11"].iconSize = new GSize(12, 20);
		myicons["11"].shadowSize = new GSize(22, 20);
		myicons["11"].iconAnchor = new GPoint(6, 20);
		myicons["11"].infoWindowAnchor = new GPoint(5, 0);
	//12 
	myicons["12"] = new GIcon(G_DEFAULT_ICON, "/citizen_science/budburst/maps/icons/p12.png");
		myicons["12"].shadow = "/citizen_science/budburst/maps/icons/icon_shadow.png";
		myicons["12"].iconSize = new GSize(12, 20);
		myicons["12"].shadowSize = new GSize(22, 20);
		myicons["12"].iconAnchor = new GPoint(6, 20);
		myicons["12"].infoWindowAnchor = new GPoint(5, 0);
	//13 
	myicons["13"] = new GIcon(G_DEFAULT_ICON, "/citizen_science/budburst/maps/icons/p13.png");
		myicons["13"].shadow = "/citizen_science/budburst/maps/icons/icon_shadow.png";
		myicons["13"].iconSize = new GSize(12, 20);
		myicons["13"].shadowSize = new GSize(22, 20);
		myicons["13"].iconAnchor = new GPoint(6, 20);
		myicons["13"].infoWindowAnchor = new GPoint(5, 0);
	//14 
	myicons["14"] = new GIcon(G_DEFAULT_ICON, "/citizen_science/budburst/maps/icons/p14.png");
		myicons["14"].shadow = "/citizen_science/budburst/maps/icons/icon_shadow.png";
		myicons["14"].iconSize = new GSize(12, 20);
		myicons["14"].shadowSize = new GSize(22, 20);
		myicons["14"].iconAnchor = new GPoint(6, 20);
		myicons["14"].infoWindowAnchor = new GPoint(5, 0);
		
//  ************************************************************************
//  *                                                                      *
//  *        ENGLISH MAPPING FUNCTIONS ARE IN THE FOLLOWING BLOCK          *
//  *                                                                      *
//  ************************************************************************

function phenoMap(ppID) {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("PBBmap"));
        map.setCenter(new GLatLng(+40, -100), 3);
		// Now set up look & feel of the map environment...
		map.addControl(new GSmallMapControl());
        map.addControl(new GMenuMapTypeControl()); 
        map.addControl(new GScaleControl());
		map.enableContinuousZoom();
		map.enableScrollWheelZoom();
		map.enableDoubleClickZoom();
		map.removeMapType(G_NORMAL_MAP);
		map.addMapType(G_PHYSICAL_MAP);
	    map.setMapType(G_PHYSICAL_MAP);
	    //map.setMapType(G_HYBRID_MAP);
		map.getContainer().style.overflow="hidden"; // hides any copyright overflow
		// Grab the data from the database via php parser...
		GDownloadUrl("/citizen_science/budburst/maps/PPxml.php?tempPP=" + ppID + "", function(data) {
          var xml = GXml.parse(data);
          var markers = xml.documentElement.getElementsByTagName("marker");
          for (var i = 0; i < markers.length; i++) {
            var observationID = markers[i].getAttribute("observationID");
            var obsDate = markers[i].getAttribute("obsDate");
            var speciesID = markers[i].getAttribute("speciesID");
            var commonName = markers[i].getAttribute("commonName");
            var speciesName = markers[i].getAttribute("speciesName");
            var phenophaseID = markers[i].getAttribute("phenophaseID");
            var phenophaseName = markers[i].getAttribute("phenophaseName");
            var chronoOrder = markers[i].getAttribute("chronoOrder");
            var imageURL = markers[i].getAttribute("imageURL");
            var point = new GLatLng(parseFloat(markers[i].getAttribute("latitude")),
                                    parseFloat(markers[i].getAttribute("longitude")));
            var marker = createMarker(observationID, obsDate, speciesID, commonName, speciesName, phenophaseID, phenophaseName, chronoOrder, imageURL, point);
            map.addOverlay(marker);

          }
        });
      }
} //END FUNCTION


function createMarker(observationID, obsDate, speciesID, commonName, speciesName, phenophaseID, phenophaseName, chronoOrder, imageURL, point) {
//     var marker = new GMarker(point); 
      var marker = new GMarker(point, myicons[chronoOrder]);
//  The next two lines can be used to split/shorten a title, if used
//	  var title40 = splitLine(title,40);
//	  var splitTitle = title40.replace(/\n/g,'<br \/>');
     var html =  "<div style=\"width:400px\"><img src=/citizen_science/budburst/"+ imageURL + " align=\"right\" alt=" + speciesName + " width=\"100\" height=\"100\"><strong>" + commonName + "</strong><br />" +
				  "<i>" + speciesName + "</i><br />" + 
	  			  phenophaseName + " on " + obsDate + "<br />" +
	  			  "Observation No. " + observationID + "<br /></div>";
      GEvent.addListener(marker, 'click', function() {
        marker.openInfoWindowHtml(html);
      });

      return marker;
	  
} //END FUNCTION

//  ************************************************************************
//  *                                                                      *
//  *        LINE SPLITTING  FUNCTIONS ARE IN THE FOLLOWING BLOCK          *
//  *                                                                      *
//  ************************************************************************

// Line Splitter Function
// copyright Stephen Chapman, 19th April 2006
// you may copy this code but please keep the copyright notice as well
function splitLine(st,n) {
	var b = ''; 
	var s = st;
	while (s.length > n) {
		var c = s.substring(0,n);
		var d = c.lastIndexOf(' ');
		var e =c.lastIndexOf('\n');
		if (e != -1) d = e; 
		if (d == -1) d = n; 
		b += c.substring(0,d) + '\n';
		s = s.substring(d+1);
		} //END WHILE
	return b+s;
} //END FUNCT
                  
