using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Drawing.Design;
using System.Drawing.Drawing2D;
using System.Globalization;
using System.Runtime.InteropServices;
using System.Text;
using System.Text.RegularExpressions;
using System.Windows.Forms;
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 : ChartVisualElement, ILegendItem
    {
        #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 SeriesType _SeriesType = SeriesType.Point;
        private SeriesPointCollection _SeriesPoints;
        private PointData _PointData;
        private PointData _EmptyPointData;
        private PointData _StepPointData;
        private object _DataSource;
        private string _DataMember;
        private DataBinder _DataBinder;
        private string _DataPropertyNameSeries;
        private string _DataPropertyNameX;
        private CustomCollection _DataPropertyNamesY;
        private int _SeriesId;
        private object _SeriesKey;
        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 ChartLegendItemVisualStyles _ChartLegendItemVisualStyles;
        private ChartSeriesVisualStyle _ChartSeriesVisualStyle;
        private EffectiveStyle _EffectiveChartSeriesStyle;
        private DataLabelVisualStyle _DataLabelVisualStyle;
        private EffectiveStyle _EffectiveDataLabelStyle;
        private Tbool _CrosshairEnabled = Tbool.NotSet;
        private Tbool _CrosshairHighlightPoints = 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 string _LegendText;
        private ChartLegendItem _LegendItem;
        private object _MinValueX;
        private object _MinValueY;
        private object _MaxValueX;
        private object _MaxValueY;
        private object _AreaBaseValue;
        private bool _SeriesRangeChanged = true;
        private SortedSeriesPoints _SortedSeriesPoints;
        private object[] _EmptyValues;
        private List