protected void TrackChanged(object sender, EventArgs e)
        {
            if (GPX == null)
                return;
            if (String.IsNullOrEmpty(ddlTracks.SelectedValue))
            {
                pnlAnalysis.Visible = false;
                pnlActivity.Visible = false;
                ActivityPanelsVisible = false;
                return;
            }

            List<wptType> trackPoints = GPX.GetTrackFirstSegmentPoints(ddlTracks.SelectedValue);

            lblTrackPointCount.Text = String.Format(" ({0})", trackPoints.Count());

            Analyzer = new DataAnalyzer(trackPoints);

            gvTrackPoints.DataSource = Analyzer.TrackPoints;
            gvTrackPoints.DataBind();

            lblSegmentCount.Text = String.Format(" ({0})", Analyzer.Segments.Count());

            gvSegments.DataSource = Analyzer.Segments;
            gvSegments.DataBind();

            lblTotalDistance.Text = FormatDistance(Analyzer.TotalDistance());
            lblTotalVerticalDistance.Text = FormatDistance(Analyzer.TotalVerticalDistance());
            lblTotalFlatEarthDistance.Text = FormatDistance(Analyzer.TotalFlatEarthDistance());

            lblTotalTime.Text = FormatTime(Analyzer.TotalTime());

            lblAverageDistance.Text = FormatDistance(Analyzer.AverageDistance());
            lblAverageVerticalDistance.Text = FormatDistance(Analyzer.AverageVerticalDistance());
            lblAverageFlatEarthDistance.Text = FormatDistance(Analyzer.AverageFlatEarthDistance());

            lblAverageTime.Text = FormatTime(Analyzer.AverageTime());
            lblAverageCourse.Text = FormatCourse(Analyzer.AverageCourse());

            lblAverageVelocity.Text = FormatVelocity(Analyzer.AverageVelocity());
            lblAverageVerticalVelocity.Text = FormatVelocity(Analyzer.AverageVerticalVelocity());
            lblAverageFlatEarthVelocity.Text = FormatVelocity(Analyzer.AverageFlatEarthVelocity());

            pnlAnalysis.Visible = true;

            pnlActivity.Visible = true;
            ActivityChanged(ddlActivity, EventArgs.Empty);
        }