Show:
                            /**
                             * Provides functionality for creating charts.
                             *
                             * @module charts
                             * @submodule charts-base
                             */
                            var CONFIG = Y.config,
                                WINDOW = CONFIG.win,
                                DOCUMENT = CONFIG.doc,
                                Y_Lang = Y.Lang,
                                IS_STRING = Y_Lang.isString,
                                _getClassName = Y.ClassNameManager.getClassName,
                                SERIES_MARKER = _getClassName("seriesmarker");
                            
                            /**
                             * Gridlines draws gridlines on a Graph.
                             *
                             * @class Gridlines
                             * @constructor
                             * @extends Base
                             * @uses Renderer
                             * @param {Object} config (optional) Configuration parameters.
                             * @submodule charts-base
                             */
                            Y.Gridlines = Y.Base.create("gridlines", Y.Base, [Y.Renderer], {
                                /**
                                 * Reference to the `Path` element used for drawing Gridlines.
                                 *
                                 * @property _path
                                 * @type Path
                                 * @private
                                 */
                                _path: null,
                            
                                /**
                                 * Removes the Gridlines.
                                 *
                                 * @method remove
                                 * @private
                                 */
                                remove: function()
                                {
                                    var path = this._path;
                                    if(path)
                                    {
                                        path.destroy();
                                    }
                                },
                            
                                /**
                                 * Draws the gridlines
                                 *
                                 * @method draw
                                 * @protected
                                 */
                                draw: function()
                                {
                                    if(this.get("axis") && this.get("graph"))
                                    {
                                        this._drawGridlines();
                                    }
                                },
                            
                                /**
                                 * Algorithm for drawing gridlines
                                 *
                                 * @method _drawGridlines
                                 * @private
                                 */
                                _drawGridlines: function()
                                {
                                    var path,
                                        axis = this.get("axis"),
                                        axisPosition = axis.get("position"),
                                        points,
                                        i = 0,
                                        l,
                                        direction = this.get("direction"),
                                        graph = this.get("graph"),
                                        w = graph.get("width"),
                                        h = graph.get("height"),
                                        line = this.get("styles").line,
                                        color = line.color,
                                        weight = line.weight,
                                        alpha = line.alpha,
                                        count = this.get("count"),
                                        length,
                                        lineFunction;
                                    if(isFinite(w) && isFinite(h) && w > 0 && h > 0)
                                    {
                                        if(count && Y.Lang.isNumber(count))
                                        {
                                            points = this._getPoints(count, w, h);
                                        }
                                        else if(axisPosition !== "none" && axis && axis.get("tickPoints"))
                                        {
                                            points = axis.get("tickPoints");
                                        }
                                        else
                                        {
                                            points = this._getPoints(axis.get("styles").majorUnit.count, w, h);
                                        }
                                        l = points.length;
                                        path = graph.get("gridlines");
                                        path.set("width", w);
                                        path.set("height", h);
                                        path.set("stroke", {
                                            weight: weight,
                                            color: color,
                                            opacity: alpha
                                        });
                                        if(direction === "vertical")
                                        {
                                            lineFunction = this._verticalLine;
                                            length = h;
                                        }
                                        else
                                        {
                                            lineFunction = this._horizontalLine;
                                            length = w;
                                        }
                                        for(i = 0; i < l; i = i + 1)
                                        {
                                            lineFunction(path, points[i], length);
                                        }
                                        path.end();
                                    }
                                },
                            
                                /**
                                 * Calculates the coordinates for the gridlines based on a count.
                                 *
                                 * @method _getPoints
                                 * @param {Number} count Number of gridlines
                                 * @return Array
                                 * @private
                                 */
                                _getPoints: function(count, w, h)
                                {
                                    var i,
                                        points = [],
                                        multiplier,
                                        divisor = count - 1;
                                    for(i = 0; i < count; i = i + 1)
                                    {
                                        multiplier = i/divisor;
                                        points[i] = {
                                            x: w * multiplier,
                                            y: h * multiplier
                                        };
                                    }
                                    return points;
                                },
                            
                                /**
                                 * Algorithm for horizontal lines.
                                 *
                                 * @method _horizontalLine
                                 * @param {Path} path Reference to path element
                                 * @param {Object} pt Coordinates corresponding to a major unit of an axis.
                                 * @param {Number} w Width of the Graph
                                 * @private
                                 */
                                _horizontalLine: function(path, pt, w)
                                {
                                    path.moveTo(0, pt.y);
                                    path.lineTo(w, pt.y);
                                },
                            
                                /**
                                 * Algorithm for vertical lines.
                                 *
                                 * @method _verticalLine
                                 * @param {Path} path Reference to path element
                                 * @param {Object} pt Coordinates corresponding to a major unit of an axis.
                                 * @param {Number} h Height of the Graph
                                 * @private
                                 */
                                _verticalLine: function(path, pt, h)
                                {
                                    path.moveTo(pt.x, 0);
                                    path.lineTo(pt.x, h);
                                },
                            
                                /**
                                 * Gets the default value for the `styles` attribute. Overrides
                                 * base implementation.
                                 *
                                 * @method _getDefaultStyles
                                 * @return Object
                                 * @protected
                                 */
                                _getDefaultStyles: function()
                                {
                                    var defs = {
                                        line: {
                                            color:"#f0efe9",
                                            weight: 1,
                                            alpha: 1
                                        }
                                    };
                                    return defs;
                                }
                            
                            },
                            {
                                ATTRS: {
                                    /**
                                     * Indicates the direction of the gridline.
                                     *
                                     * @attribute direction
                                     * @type String
                                     */
                                    direction: {},
                            
                                    /**
                                     * Indicate the `Axis` in which to bind
                                     * the gridlines.
                                     *
                                     * @attribute axis
                                     * @type Axis
                                     */
                                    axis: {},
                            
                                    /**
                                     * Indicates the `Graph` in which the gridlines
                                     * are drawn.
                                     *
                                     * @attribute graph
                                     * @type Graph
                                     */
                                    graph: {},
                            
                                    /**
                                     * Indicates the number of gridlines to display. If no value is set, gridlines will equal the number of ticks in
                                     * the corresponding axis.
                                     *
                                     * @attribute count
                                     * @type Number
                                     */
                                    count: {}
                                }
                            });