/* Copyright 2009 FitnessKeeper, Inc.  All Rights Reserved. */

// requires swfobject-1.5.js
 
var amlineSWF   = null;
var amcolumnSWF = null;
var flashMovies = {};

function initTripChartManualEntry()
{
   amlineSWF = new SWFObject(contextPath + "/amline/amline.swf", "speed_elev_vs_dist", "100%", "100%", "8", "#FFFFFF");
   amlineSWF.addParam("wmode", "transparent");
   amlineSWF.addVariable("chart_id", "speed_elev_vs_dist");
   amlineSWF.addVariable("path", contextPath + "/amline/");
   amlineSWF.addVariable("settings_file", contextPath + "/amline/speed_elev_vs_dist_settings.xml");   
   amlineSWF.addVariable("data_file", escape(contextPath + "/chartdata/empty"));
   amlineSWF.addVariable("preloader_color", "#333333");
   amlineSWF.write("activityChartPanel");
}

function initTripChart()
{
   amlineSWF = new SWFObject(contextPath + "/amline/amline.swf", "speed_elev_vs_dist", "100%", "100%", "8", "#FFFFFF");
   amlineSWF.addParam("wmode", "transparent");
   amlineSWF.addVariable("chart_id", "speed_elev_vs_dist");
   amlineSWF.addVariable("path", contextPath + "/amline/");
   amlineSWF.addVariable("settings_file", contextPath + "/amline/speed_elev_vs_dist_settings.xml");
   amlineSWF.addVariable("data_file", escape(contextPath + "/chartdata/speed_elev_vs_dist"));
   amlineSWF.addVariable("preloader_color", "#333333");
   amlineSWF.write("activityChartPanel");
}

function initOverviewChart(userId, timeSpan)
{
   //alert("initOverviewChart");
   var dataUrl = contextPath + "/chartdata/performance_overview?userId=" + userId + "&timeSpan=" + timeSpan;

   amcolumnSWF = new SWFObject(contextPath + "/amcolumn/amcolumn.swf", "performance_overview", "100%", "100%", "8", "#FFFFFF");
   amcolumnSWF.addParam("wmode", "transparent");
   amcolumnSWF.addVariable("chart_id", "performance_overview");
   amcolumnSWF.addVariable("path", contextPath + "/amcolumn/");
   amcolumnSWF.addVariable("settings_file", contextPath + "/amcolumn/performance_overview_settings.xml");
   amcolumnSWF.addVariable("data_file", escape(dataUrl));
   amcolumnSWF.addVariable("preloader_color", "#333333");
   amcolumnSWF.write("overviewChartPanel");
}

function initFitnessAnalyticsChart(xAxis, yAxis)
{
   //alert("initFitnessAnalyticsChart");
   var dataUrl = contextPath + "/chartdata/fitness_analytics?x=Distance&y1=Time";

   amlineSWF = new SWFObject(contextPath + "/amline/amline.swf", "fitness_analytics", "100%", "100%", "8", "#FFFFFF");
   amlineSWF.addParam("wmode", "transparent");
   amlineSWF.addVariable("chart_id", "fitness_analytics");
   amlineSWF.addVariable("path", contextPath + "/amline/");
   amlineSWF.addVariable("settings_file", contextPath + "/amline/fitness_analytics_settings.xml");
   amlineSWF.addVariable("data_file", escape(dataUrl));
   amlineSWF.addVariable("preloader_color", "#333333");
   amlineSWF.write("fitnessAnalyticsChartPanel");
}

function amChartInited(chart_id)
{
   //alert("amChartInited " + chart_id);
   flashMovies[chart_id] = document.getElementById(chart_id);
   
   if (chart_id == "speed_elev_vs_dist")
   {     
      flashMovies[chart_id].setSettings("<settings><labels><label lid='0'><x>55</x><y>!20</y>"
         + "<text_color>111111</text_color><text><![CDATA[<b>distance(" + userDistanceUnits + ")</b>]]></text>"
         + "</label><label lid='1'><x>40</x><y>0</y><text_color>0039BF</text_color>"
         + "<text><![CDATA[<b>speed(" + userSpeedUnits + ")</b>]]></text></label>"
         + "<label lid='2'><x>!110</x><y>0</y><text_color>14870B</text_color>"
         + "<text><![CDATA[<b>elevation(" + userElevationUnits + ")</b>]]></text></label></labels>"
         + "<graphs><graph gid='1'><balloon_text><![CDATA[<b>{value} " + userSpeedUnits + "</b>]]></balloon_text>"
         + "</graph><graph gid='2'><balloon_text><![CDATA[<b>{value} " + userElevationUnits + "</b>]]></balloon_text>"
         + "</graph></graphs></settings>");
   }
   else if (chart_id == "performance_overview")
   {
      var titleTimeSpan = "Weekly";
      var balloonTimeSpan = "Week";
      
      if (overviewTimeSpan == "month")
      {
         titleTimeSpan = "Monthly";
         balloonTimeSpan = "Month";
      }
      
      var columnLabelFreq = 1;
      
      if ((overviewTimeSpan == "week") && (userNumWeeksActive > 40))
      {
         columnLabelFreq = 2;
      }
      
      flashMovies[chart_id].setSettings("<settings><labels>"
         + "<label lid='0'><y>4</y><align>center</align>"
         + "<text><![CDATA[<b>" + titleTimeSpan + " Total Distances by Activity Type</b>]]></text>"
         + "<text_size>18</text_size></label>"
         + "<label lid='1'><x>5</x><y>5</y>"
         + "<text_color>#555555</text_color><text><![CDATA[<b>distance(" + userDistanceUnits + ")</b>]]></text>"
         + "</label></labels><column>"
         + "<balloon_text><![CDATA[<b>" + balloonTimeSpan + " of {series}<br>{title} {value} " + userDistanceUnits + "<br>Total {total} " + userDistanceUnits + "</b>]]></balloon_text>"
         + "</column><values><category><frequency>" + columnLabelFreq + "</frequency></category></values></settings>");
   }
}

function amRolledOverSeries(chartId, series)
{
   if (chartId == "speed_elev_vs_dist")
   {
      var key = ("d" + series).replace(".", "p");
      var point = rkMap.pointsByDistanceTraveled[key];
      setCurrLoc(rkMap, point.latitude, point.longitude);
   }
}

function updateTripChartData()
{
   // sometimes this was getting called before the chart was ready (browser-specific)
   if (flashMovies.speed_elev_vs_dist && flashMovies.speed_elev_vs_dist.reloadData)
   {
      flashMovies.speed_elev_vs_dist.reloadData();
   }
}
