Morris = window.Morris = {}

$ = jQuery

# Very simple event-emitter class. # # @private class Morris.EventEmitter

on: (name, handler) ->
  unless @handlers?
    @handlers = {}
  unless @handlers[name]?
    @handlers[name] = []
  @handlers[name].push(handler)
  @

fire: (name, args...) ->
  if @handlers? and @handlers[name]?
    for handler in @handlers[name]
      handler(args...)

# Make long numbers prettier by inserting commas. # # @example # Morris.commas(1234567) -> '1,234,567' Morris.commas = (num) ->

if num?
  ret = if num < 0 then "-" else ""
  absnum = Math.abs(num)
  intnum = Math.floor(absnum).toFixed(0)
  ret += intnum.replace(/(?=(?:\d{3})+$)(?!^)/g, ',')
  strabsnum = absnum.toString()
  if strabsnum.length > intnum.length
    ret += strabsnum.slice(intnum.length)
  ret
else
  '-'

# Zero-pad numbers to two characters wide. # # @example # Morris.pad2(1) -> '01' Morris.pad2 = (number) -> (if number < 10 then '0' else '') + number