
var taskDeleteObserver = function(evt) {
  var taskEffectSettings = {
    duration: 0.3,
    queue : "taskDeleteConfirm"
  };
  var url = this.down("a").getAttribute("href");
  var confirmDialog = $("taskDeleteConfirmDialog");
  Position.clone(this, confirmDialog, {
    setWidth : false,
    setHeight : false,
    offsetLeft : 10,
    offsetTop : 20
  });

  if (confirmDialog.visible()) {
    confirmDialog.update('');
    Effect.Fade(confirmDialog, taskEffectSettings);
  } else {
    new Ajax.Request(url, {
      method: "get",
      onSuccess: function(t) {
        confirmDialog.update(t.responseText);
        Effect.Appear(confirmDialog, taskEffectSettings);
        $("formCancel").onclick = function(evt) {
          Effect.Fade(confirmDialog, taskEffectSettings);
          Event.stop(evt);
        };
      }
    });
  }
  Event.stop(evt);
};

// add event observer to all delete-buttons
function registerTaskDeleteObserver() {
  $$(".task-delete").each(function(item) {
    item.onclick = taskDeleteObserver.bindAsEventListener(item);
  });
}

Event.observe(window, "load", function() {
  // create confirm dialog div
  var taskDeleteConfirmDialog = document.createElement('div');
  taskDeleteConfirmDialog.setAttribute('id', 'taskDeleteConfirmDialog');
  Element.extend(taskDeleteConfirmDialog);
  taskDeleteConfirmDialog.hide();
  document.body.appendChild(taskDeleteConfirmDialog);
  registerTaskDeleteObserver();
});

Ajax.Responders.register({
  onComplete: function(obj) {
    registerTaskDeleteObserver();
  }
});
