Rey,
you have setup an on "mouseup" event so it is normal it fires each time you release the mouse button. You are filtering "mouseup" to act only if a selection exists, that's ok. Unfortunately the difference between the browsers you mention is that in Firefox the selection is cleared as soon as the next "mousedown" while in Safari/Chrome it is cleared on "mouseup" so when fired your filtering will still find a selection active on Safari/Chrome, thus the second alert you see.

This is how you can alternatively fix that problem, just add these lines:

function clearSelectedText() {
  if (window.getSelection) {
    window.getSelection().removeAllRanges();
  } else if (document.getSelection) {
    document.getSelection().empty();
  } else {
    var selection = document.selection &amp;&amp; document.selection.createRange();
    if (selection.text) {
      selection.collapse(true);
      selection.select();
    }
  }
}

addEvent(document, "mousedown", clearSelectedText); 

Hope this help fix it and explain what happens in Safari/Chrome, I wouldn't mark this as a bug. Have fun.

Diego