$(function () {
  $("div.status").each(function () {
    var self = $(this);
    self.prepend("<span class='closer'>&times;</span> ")
        .find('span.closer').click(function () {
          self.hide('fast'); 
        });
  });

  var class_toggler = function (obj, cls, its, dur) {
    if (its == 0) return;
    var self = obj;
    var duration = dur;
    var class_name = cls;
    var iteration = its;
    self.addClass(class_name);
    setTimeout(function () {
      self.removeClass(class_name);
      setTimeout(function () {
        class_toggler(self, class_name, iteration - 1, duration);
      }, duration/2);
    }, duration);
    
  };

  $('tr.created').each(function () {
    class_toggler($(this), "create_notice", 3, 300);
  });

  var make_editor = function (e) {
    $('#inline_editor').remove();
    var span = $(e.target);
    var tr = span.parents('tr').eq(0);
    var tags = tr.attr('tags');
    var title_td = tr.find('td.first');
    var title = title_td.text().replace(/^\s+|\s+$/g, "");
    var description_td = title_td.next('td');
    var description = description_td.text().replace(/edit$/, '').replace(/^\s+|\s+$/g, "");
    var id = description_td.next('td').find('input[name=taskId]').val();
    var priority = parseInt(tr.find('td:first')[0].className.replace(/priority_/, "0"), 10);

    var container = $('<div id="inline_editor"></div>');
    var form = $('<form action="edit.post.php" method="post" class="editor">' +
        '<input type="hidden" name="taskId" value="" />' +
        '<input type="hidden" name="csrf_token" value="' + csrf_token + '" />' +
        '<label>Title:</label>' + 
        '<input class="text" type="text" name="title" value="" />' +
        '<label>Description:</label>' + 
        '<input class="text" type="text" name="description" value="" />' +
        '<label>Tags:</label>' +
        '<input class="text" type="text" name="tags" value="" />' +
        '<label>Priority:</label>' + 
        '<input class="submit" type="submit" value="Save" />' +
      '</form>');
    form.find('input[name=taskId]').val(id);
    form.find('input[name=title]').val(title);
    form.find('input[name=description]').val(description);
    form.find('input[name=tags]').val(tags);
    form.find('input[type=submit]').before($('#task_priority').clone());
    container.html(form);
    var idx = form.find('select option[value=' + priority + ']')
                  .prevAll('option').size();
    form.find('select')[0].selectedIndex = idx;
    var closer = $("<span class='closer'>&times;</span>");
    form.prepend(closer);
    closer.click(function () {
      container.remove();
    });
    $(document.body).append(container);
    var height = container.height();
    var width = container.width();
    var offset = span.offset();
    var y_pos = offset.top - (height/2);
    var x_pos = offset.left - width;
    container.css({
        'position':'absolute',
        'top':y_pos+'px',
        'left':x_pos+'px'
      });
  };

  $('#current_tasks tbody td.first').each(function () {
    var td = $(this);
    var edit = $("<span class='editor'>edit</span>");
    td.next('td').append(edit);
    edit.click(make_editor);
  });

})


