var _messenger_in_use = false;
// var _messenger_message_sent_listeners = Array()


/*new Effect.Fade("messenger_popup") */


/*
Registers a new message sent event listener

Params
* function
*/
function add_on_message_sent(func) {

    // Add the new message listener to the collection of listeners
    _messenger_message_sent_listeners.add( func );

}



/*

Occurs when the message has been sent sucessfully

*/
function message_sent() {

  hide_messenger_popup()
  /*
  for ( listener in _messenger_message_sent_listeners ) {

    listener.call();

  }
  */

}


/*

Occurs when the message fails

*/
function message_failure() {

  alert("failed");

}


/*

Sends the message currently loaded into the messenger
window

*/
function send_message() {

  $('messenger_form').onsubmit();

  //$('messenger_loading_panel').style.display = "block";

  new Effect.Appear($('messenger_loading_panel'), {duration: .1, queue: "end"} );

  return false;
}


/*

Displays the messenger box.

Params:
* element: the element to display the box for.

*/
function show_messenger_popup(element, recipient_id, recipient_name) {

  popup_box = $('messenger_popup');

  y = Position.cumulativeOffset(element)[1];
  x = Position.cumulativeOffset(element)[0];


  if (recipient_id == null || recipient_name == null ) {

    recipient_id = element.getAttribute("recipient_id");
    recipient_name = element.getAttribute("recipient_name");

  }

  $('messenger_recipient_name').innerHTML = recipient_name;
  $('messenger_id_parameter').value = recipient_id;

  popup_box.style.top  = (y - 100) + "px";
  popup_box.style.left = (x - 150) + "px";


   // Show the popup box
   popup_box.setAttribute('class', 'visible');

   // hack for ie
   popup_box.style.display = "block";

  // Called on the fade's afterFinish event
  after_finish = function (obj) {

    // Focus on the textarea.

   $('messenger_message_box').focus();


  }

  new Effect.Appear( 'messenger_popup', { duration: .25, afterFinish: after_finish, queue: "end" } );

  return false;

}


/*

Hides the messenger popup

*/
function hide_messenger_popup() {

  popup_box = $('messenger_popup');

  // Called on the fade's afterFinish event
  after_finish = function(obj) {

    // Hide loading panel
    $('messenger_loading_panel').style.display = "none";

    // Hide messenger box
    popup_box.setAttribute('class', 'hidden');

  }

  // Start the effect
  new Effect.Fade( 'messenger_popup', { duration: .25, afterFinish: after_finish } );

}