| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 | 
							- class Morris.Area extends Morris.Line
 
-   # Initialise
 
-   #
 
-   areaDefaults = 
 
-     fillOpacity: 'auto'
 
-     behaveLikeLine: false
 
-   constructor: (options) ->
 
-     return new Morris.Area(options) unless (@ instanceof Morris.Area)
 
-     areaOptions = $.extend {}, areaDefaults, options
 
-     @cumulative = not areaOptions.behaveLikeLine
 
-     if areaOptions.fillOpacity is 'auto'
 
-       areaOptions.fillOpacity = if areaOptions.behaveLikeLine then .8 else 1
 
-     super(areaOptions)
 
-   # calculate series data point coordinates
 
-   #
 
-   # @private
 
-   calcPoints: ->
 
-     for row in @data
 
-       row._x = @transX(row.x)
 
-       total = 0
 
-       row._y = for y in row.y
 
-         if @options.behaveLikeLine
 
-           @transY(y)
 
-         else
 
-           total += (y || 0)
 
-           @transY(total)
 
-       row._ymax = Math.max row._y...
 
-   # draw the data series
 
-   #
 
-   # @private
 
-   drawSeries: ->
 
-     @seriesPoints = []
 
-     if @options.behaveLikeLine
 
-       range = [0..@options.ykeys.length-1]
 
-     else
 
-       range = [@options.ykeys.length-1..0]
 
-     for i in range
 
-       @_drawFillFor i
 
-       @_drawLineFor i
 
-       @_drawPointFor i
 
-   _drawFillFor: (index) ->
 
-     path = @paths[index]
 
-     if path isnt null
 
-       path = path + "L#{@transX(@xmax)},#{@bottom}L#{@transX(@xmin)},#{@bottom}Z"
 
-       @drawFilledPath path, @fillForSeries(index)
 
-   fillForSeries: (i) ->
 
-     color = Raphael.rgb2hsl @colorFor(@data[i], i, 'line')
 
-     Raphael.hsl(
 
-       color.h,
 
-       if @options.behaveLikeLine then color.s * 0.9 else color.s * 0.75,
 
-       Math.min(0.98, if @options.behaveLikeLine then color.l * 1.2 else color.l * 1.25))
 
-   drawFilledPath: (path, fill) ->
 
-     @raphael.path(path)
 
-       .attr('fill', fill)
 
-       .attr('fill-opacity', @options.fillOpacity)
 
-       .attr('stroke', 'none')
 
 
  |