using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Drawing.Design;
using System.Drawing.Drawing2D;
using System.Globalization;
using System.Text;
using System.Text.RegularExpressions;
using DevComponents.DotNetBar.Charts.Style;
namespace DevComponents.DotNetBar.Charts
{
    /// 
    /// Represents the collection of ChartSeries.
    /// 
    [Editor("DevComponents.Charts.Design.ChartSeriesCollectionEditor, DevComponents.Charts.Design, " +
            "Version=14.1.0.37, Culture=neutral,  PublicKeyToken=90f470f34c89ccaf", typeof(UITypeEditor))]
    public class ChartSeriesCollection : CustomNamedCollection
    {
        #region GetUniqueName
        public string GetUniqueName()
        {
            return (GetUniqueName("Series"));
        }
        #endregion
    }
    public class ChartSeries : BaseSeries
    {
        #region Constants
        private const int StockHigh = 0;
        private const int StockLow = 1;
        private const int StockClose = 2;
        private const int StockOpen = 3;
        private const int StockMedian = 4;
        #endregion
        #region Private variables
        private States _States;
        private SeriesPointCollection _SeriesPoints;
        private PointData _PointData;
        private PointData _EmptyPointData;
        private PointData _StepPointData;
        private ChartAxis _AxisX;
        private ChartAxis _AxisY;
        private int _BarOffset;
        private int _BarWidth;
        private double _BarWidthRatio;
        private Tbool _BarShadingEnabled = Tbool.NotSet;
        private BarFillRange _BarFillRange = BarFillRange.NotSet;
        private BarLabelPosition _BarLabelPosition = BarLabelPosition.NotSet;
        private Color[] _BarShadingColors;
        private ChartSeriesVisualStyle _ChartSeriesVisualStyle;
        private EffectiveStyle _EffectiveChartSeriesStyle;
        private DataLabelVisualStyle _DataLabelVisualStyle;
        private EffectiveStyle _EffectiveDataLabelStyle;
        private Tbool _CrosshairEnabled = Tbool.NotSet;
        private Tbool _CrosshairHighlightPoints = Tbool.NotSet;
        private Tbool _CrosshairHighlightSinglePoint = Tbool.NotSet;
        private Tbool _CrosshairShowLabels = Tbool.NotSet;
        private ScaleType _ScaleTypeX = ScaleType.NotSet;
        private ScaleType _ScaleTypeY = ScaleType.NotSet;
        private ScaleType _ActualScaleTypeX = ScaleType.NotSet;
        private ScaleType _ActualScaleTypeY = ScaleType.NotSet;
        private object _MinValueX;
        private object _MinValueY;
        private object _MaxValueX;
        private object _MaxValueY;
        private object _AreaBaseValue;
        private SortedSeriesPoints _SortedSeriesPoints;
        private object[] _EmptyValues;
        private List