/**
 * Blitz-Messenger verschiebbar machen
 *
 * @author kscheffelmeier
 */
function draggableMessenger() {

  new Draggable('messenger',{starteffect: false, endeffect: false});
}

/**
 * Submit des Forms mit der Enter-Taste
 *
 * @author kscheffelmeier
 */
function submitOnEnter(textarea, msg, e)
{
  if (!e) {

    e = window.event;
  }

  if (e && e.keyCode == 13) {

    if(msg) {

      $('message').value = msg;

      new Ajax.Updater('msger_msges', '/profil/blitzMessengerMessages', {asynchronous:false, evalScripts:true, onComplete: function() { textarea.value = ''; scrollToBottom(); },  parameters:Form.serialize('blitz_form')});
      return false;
    }
  } else {

    return true;
  }
}

/**
 * Chatter wechseln und Nachrichten anzeigen
 *
 * @author kscheffelmeier
 */
function changeChatter(user_id) {

  new Ajax.Updater('msger_msges', '/profil/blitzMessengerMessages?type=chatter&user_id='+user_id+'', {asynchronous:false, evalScripts:true});
}

/**
 * Nachdem abschicken einer Blitz-Message,
 * muss an das Ende gescrollt werden um die neuste Message anzuzeigen
 *
 * @author kscheffelmeier
 */
function scrollToBottom() {

  var div = document.getElementById('msger_msges');
  //h = div.scrollHeight - div.offsetHeight;
  div.scrollTop = div.scrollHeight;
}

/**
 * Automatisches Nachladen der Messages starten
 *
 * @author kscheffelmeier
 */
function observeMessageCount(user_id, user_id_two) {

  p_updater_count = new Ajax.PeriodicalUpdater(
    'blitz_msger_count', '/profil/blitzMessengerMessageCount?user_id='+user_id+'&user_id_two='+user_id_two+'', {
    method: 'get', frequency: 10, decay: 1, asynchronous:false, evalScripts:true
  });
}

/**
 * Automatisches Nachladen der Messages stoppen
 *
 * @author kscheffelmeier
 */
function stopObserveMessageCount() {

  p_updater_count.stop();
}

/**
 * Automatisches Nachladen der Drop-Down-Box
 *
 * @author kscheffelmeier
 */
function observeDropdown(user_id_two) {

  if(user_id_two) {

    p_updater_dropdown = new Ajax.Updater(
      'msger_username', '/profil/blitzMessengerMessageDropdown?user_id_two='+user_id_two, {asynchronous:false, evalScripts:true});
  } else {

    p_updater_dropdown = new Ajax.Updater(
      'msger_username', '/profil/blitzMessengerMessageDropdown?type=alluser', {asynchronous:false, evalScripts:true});
  }
}

/**
 * Automatisches Nachladen der Messages starten
 *
 * @author kscheffelmeier
 */
function observeMessages(user_id_two) {

  if (user_id_two) {

    document.getElementById('user_id_two').value = user_id_two;
  }

  p_updater = new Ajax.PeriodicalUpdater(
    'msger_msges', '/profil/blitzMessengerMessages?type=observe', {
    method: 'get', frequency: 10, decay: 1, asynchronous:false, evalScripts:true, onComplete: function() { scrollToBottom(); }, parameters:Form.serialize('blitz_form')
  });

  if (user_id_two) {

    observeDropdown(user_id_two);
  } else {

    observeDropdown();
  }
}

/**
 * Automatisches Nachladen der Messages stoppen
 *
 * @author kscheffelmeier
 */
function stopObserveMessages() {

  p_updater.stop();
}

/*
 * User ID als value in user_id_two schreiben
 */
function setUserValue(select_user) {

  stopObserveMessages();

  var user_id = select_user.options[select_user.selectedIndex].value;
  $('user_id_two').value = user_id;
  changeChatter(user_id);

  observeMessages();
}


/*
 * Select chatter in Drop-Down-Box
 */
function setChatterInDropDownBox(user_id) {

  var list = $('messenger_selectbox').options;

  for(var counter = 0; counter < list.length; counter++) {

    if(list[counter].value == user_id) {

      $('messenger_selectbox').selectedIndex = counter;
    }
  }
}

/**
 * Show Blitzmessenger
 *
 * @author kscheffelmeier
 */
function showBlitzmessenger() {

  document.getElementById('messenger').style.display = 'block';
}

/**
 * Benutzer ist offline, Messenger soll nicht angezeigt werden.
 * Info in einer Modalbox ausgeben.
 * @param string title
 * @param int target_user_id
 */
function showOfflineMessengerInfoBox(title, target_user_id) {

  if (title == null) {

    title = 'Benutzer ist offline';
  }
  if (target_user_id == null) {

    target_user_id = 0;
  }



  Modalbox.show('/profil/ajaxShowOfflineMessengerInfoBox/?target_user_id='+target_user_id, { title: title, width: 400, height: 80});

  return false;
}
