events = require('events')
fs = require('fs')
path = require('path')
jade = require('jade')
util = require('util')
mime = require('mime')
# Template engine
gen_files_view = jade.compile([
  '- each file in files'
  '  .file(data-path="#{file.path}")'
  '    .icon'
  '      img(src="icons/#{file.type}.png")'
  '    .name #{file.name}'
].join('\n'))
# Our type

Folder = (jquery_element) ->
  events.EventEmitter.call this
  @element = jquery_element
  self = this
  # Click on blank
  @element.parent().on 'click', ->
    self.element.children('.focus').removeClass 'focus'
    return
  # Click on file
  @element.delegate '.file', 'click', (e) ->
    self.element.children('.focus').removeClass 'focus'
    $(this).addClass 'focus'
    e.stopPropagation()
    return
  # Double click on file
  @element.delegate '.file', 'dblclick', ->
    file_path = $(this).attr('data-path')
    self.emit 'navigate', file_path, mime.stat(file_path)
    return
  return

util.inherits Folder, events.EventEmitter

Folder::open = (dir) ->
  self = this
  fs.readdir dir, (error, files) ->
    if error
      console.log error
      window.alert error
      return
    i = 0
    while i < files.length
      files[i] = mime.stat(path.join(dir, files[i]))
      ++i
    self.element.html gen_files_view(files: files)
    return
  return

exports.Folder = Folder

# ---
# generated by js2coffee 2.1.0