require('colors')

exports.renderBits = function renderBits (bits, width, inverse) {
  var bottom = '▄'
  var both = '█'
  var top = '▀'

  var bit = 0
  var nextRow
  var _b, _t
  var out = ' '
  // var _debug = []
  // var row = 0
  var i, j

  // add one row to out for top framing
  for (i = 0; i < width; ++i) {
    out += ' '
  }
  out += ' \n'
  for (i = 0; i < (width / 2); i++) {
    // console.error('row ',i);
    // _debug[row] = [];
    // _debug[row+1] = [];
    out += ' '

    for (j = 0; j < width; j++) {
      // console.log('column ',j);
      nextRow = bit + width
      var c = ' '
      _t = 0
      _b = 0

      if (bits[bit]) {
        _t = 1
        c = '\u001b[53m' + top
      }

      if (bits[nextRow]) {
        _b = 1
        c = bottom.underline
      }

      if (_b && _t) {
        c = '\u001b[53m' + (both.underline)
      }
      // _debug[row].push(_t+'');
      // _debug[row+1].push(_b+'');

      out += c
      bit++
    }
    bit += width
    // console.log('advancing bit to ',bit);
    // row += 2
    out += ' \n'
  }

  // defaults tp inverse. this makes sense for people with dark terminals.
  return inverse ? out : out.inverse
}