var open = new Array();
var faces = '';

function Show(objeto)
{
  jQuery(objeto).css('display', 'inline');
}

function Hide(objeto)
{
  jQuery(objeto).css('display', 'none');
}

function ShowHide(objeto)
{
  jQuery(objeto).css('display', (jQuery(objeto).css('display') == 'inline')?'none':'inline');
}

function ShowHideBlock(objeto)
{
  jQuery(objeto).css('display', (jQuery(objeto).css('display') == 'block')?'none':'block');
}

function ShowHelp(objeto)
{
  jQuery(objeto).css('backgroundColor', (jQuery(objeto).css('backgroundColor') == '#FFFFFF')?'#F5F6F1':'#FFFFFF');
}

function ExpandHide(objeto)
{
  jQuery(objeto).toggleClass('idhidden');
}

function showAvatar(show,hide)
{
  jQuery.fn.show = function(mode) {
    return this.each(function() {
      switch(this.className) {
        case 'usr simple':
        this.className = 'usr';
        break;
        case 'usr':
        this.className = 'usr simple';
        break;
      }
    });
  };

  jQuery("#sa").html( (jQuery("#sa").html() == show) ? hide: show);
  jQuery("#show").attr('value', ((jQuery("#show").attr('value') == 1) ? 0 : 1));

  if (jQuery("#show").attr('value') == 0) {
    jQuery("td[@class=usr simple]").show();
  } else {
    jQuery("td[@class=usr]").show();
  }
}

function waiting(exibir, append)
{
  if (exibir) {
    jQuery('<div id="waitingmsg"><h3>'+exibir+'</h3></div>').appendTo(append);
  } else {
    jQuery("#waitingmsg").remove();
  }
}

function warning(exibir, append)
{
  if (exibir) {
    jQuery('<div id="confAlert" class="confAlert">'+exibir+'</div>').appendTo(append);
  } else {
    jQuery("#confAlert").remove();
  }
}

function selectFilter(id)
{
  switch (id)
  {
    case 'friend':
    legend = 'Amizades';
    break;
    case 'love':
    legend = 'Paqueras';
    break;
    case 'hot':
    legend = 'Picantes';
    break;
    default:
    legend = 'Todos os Contatos';
    break;
  }
  var old = $('filter').value;
  $('filter').value = id;
  $('sel' + old).removeClassName('selected');
  $('sel' + id).addClassName('selected');
}

function aba(id)
{
  setSelectedMenuItem("side"+id);

  jQuery("#messageBoxes").html(""); // limpa messageboxes

  /* verifica se e a aba desativar perfil para mudar o botao */
  accexclude = (id == "accexclude") ? true : false;
  jQuery("#desativar").css('display',(accexclude)?'inline':'none');
  jQuery("#salvar").css('display',(accexclude)?'none':'inline');

  /* Esconde todos e mostra so o selecionado */
  jQuery("fieldset[@class=accfield]").css('display',"none");
  ShowHideBlock('#'+id);
}

function options_for_select(id, options, default_value)
{
  var nItem;
  var nItemLabel;

  if ($(id).options.length >= 1) {
    store_default_value(id);
    $(id).disable = true;
    $(id).length = 0;
    $(id).selectedIndex = null;
  }
  if (options == '') {
    if ($(id).defaultValue !== undefined) {
      options = $(id).defaultValue;
    } else {
      options = '{"0":"'.concat(default_value).concat('"}');
      $(id).defaultValue = options;
    }
  }

  eval('var _options = ' + options);
  for (i in _options) {
    if (typeof _options[i] != 'string') continue;
    nItem = document.createElement("option");
    nItemLabel = document.createTextNode(_options[i]);
    nItem.value = i;
    nItem.appendChild(nItemLabel);
    $(id).appendChild(nItem);
  }
  $(id).disabled = ($(id).length < 2);
}

function store_default_value(id)
{
  if ($(id).disabled && $(id).defaultValue === undefined) {
    $(id).defaultValue = '{"0":"'.concat($(id).options[0].firstChild.nodeValue).concat('"}');
  }
}

function reset_select(id, defaultValue)
{
  if (!$(id).disabled) {
    options_for_select(id, '', defaultValue);
    $(id).disabled = true;
  }
}

function reset_select_unless(id, defaultValue)
{
  if ($(id).length == 1) {
    reset_select(id, defaultValue);
  }
}

function submit_key(form,evento) {
  if (evento.keyCode == 13) {
    $(form).submit();
  }
}

function round_interaction_menu()
{
  roundCorners({
  'msg': {corners:"tl bl", border:"#D9D4C7"},
  'hot': {corners:"tl bl", border:"#D9D4C7"},
  'love': {corners:"tl bl", border:"#D9D4C7"},
  'friends': {corners:"tl bl", border:"#D9D4C7"},
  'blocked': {corners:"tl bl", border:"#D9D4C7"},
  'denounce': {corners:"tl bl", border:"#D9D4C7"}
  });
}

function round_relations_menu()
{
  roundCorners({
  'pending': {corners:"tl bl", border:"#D9D4C7"},
  'hot': {corners:"tl bl", border:"#D9D4C7"},
  'love': {corners:"tl bl", border:"#D9D4C7"},
  'friends': {corners:"tl bl", border:"#D9D4C7"},
  'blocked': {corners:"tl bl", border:"#D9D4C7"},
  'allcont': {corners:"tl bl", border:"#D9D4C7"}
  });
}

function reloadBottom()
{
  //  var re = /\bMSIE\b/;
  //  if (navigator.appVersion.match(re)) {
  if (jQuery.browser.msie) {
    document.body.style.className = '';
  }
}

function highlight(item)
{
  //  item.className = (item.className == '')?'selected':'';
  jQuery(item).toggleClass('selected');
}

function highlightInner(item)
{
  highlight($(item));
  var cor = ($(item).className == 'selected')?'#FFFFFF':'#F1EFE9';
  var someNodeList = $(item).getElementsByTagName('div');
  var nodes = $A(someNodeList);
  nodes.each(function(node){
    subs = $A(node.childNodes);
    if (subs.length == 4) {
      subs.each(function(sub){
        sub.style.backgroundColor = cor;
      });
    }
  });
}

var __SELECTEDMENUITEM__ = 'sidepersdata';
//var __SELECTEDMENUITEM__ = '';

function setSelectedMenuItem(item)
{
  if (__SELECTEDMENUITEM__ != '') {
    highlightInner($(__SELECTEDMENUITEM__));
  }
  __SELECTEDMENUITEM__ = item;
  highlightInner(item);
}

function debug (o)
{
  //  w = window.open('','debug','scrollbars=1,resizable=1');
  //  d = w.document;
  d = document;
  d.open();
  for (a in o) {
    d.write(a + ' => ' + o[a] + '<br />\n');
    /*d.write(a + ' => ' + o.getAttributeNode(a) + '<br />\n');*/
  }
  d.close();
}
/*
function viewprofile(user,message)
{
  var msg = "<strong>" + user.name + "</strong> " + message;
  if ($('visit_'+user.jid) == null) {
    _msg_alert(user, msg, 'visit_'+user.jid, 'tprofile');
  }
}

function toastie(user,message)
{
  var msg = "<strong>" + user.name + "</strong> " + message;
  if ($('toasty_'+user.jid) == null) {
    _msg_alert(user, msg, 'toasty_'+user.jid, 'tchat');
  }
}

function blink(user,message)
{
  var msg = "<strong>" + user.name + "</strong> " + message;
  if ($('blink_'+user.jid) == null) {
    _msg_alert(user, msg, 'blink_'+user.jid, 'tblink');
  }
}
*/
//var _msg_poll_ini = { y:80, x:140, m:20, getX: function() { this.x += this.m; return String(this.x).concat('px'); }, getY: function() { this.y += this.m; return String(this.y).concat('px'); } };

function readMessages(element)
{
  closeBlink(element);
  window.location.href = env+'/messages/list';
}

function _msg_alert(user, msg, id, css, title)
{
  //  var t = document.createElement('div');
  //jQuery(t).attr({ id: id, className: "toastie ".concat(css) });
  //jQuery(t).css({ display: "none", opacity: 100 });

  switch (css) {
    case 'tmail':
      var message_body = '<div id="'+id+'" class="toastie '+css+'"><div class="ttop">'+title+'</div>\n<div class="tctr">\n<div class="roundframe"><a href="/personbyid/'+user.jid.substring(0,user.jid.indexOf('@'))+'"><img src="/data/retrieveAvatar?jid='+user.jid+'" alt="" /></a></div>\n<div class="tcontent">\n'+msg+'\n<br /><nobr><img src="/images/buttons/index.php?txt='+__buttons__['Ver']+'" onclick="readMessages(this)" /> <img src="/images/buttons/index.php?txt='+__buttons__['Fechar']+'&mdl=error" alt="" onclick="closeBlink(this)" /></nobr>\n</div>\n</div></div>';
      break;
      
    default:
      var message_body = '<div id="'+id+'" class="toastie '+css+'"><div class="ttop">'+title+'</div>\n<div class="tctr">\n<div class="roundframe"><a href="/personbyid/'+user.jid.substring(0,user.jid.indexOf('@'))+'"><img src="/data/retrieveAvatar?jid='+user.jid+'" alt="" /></a></div>\n<div class="tcontent">\n'+msg+'\n<br /><nobr><img src="/images/buttons/index.php?txt='+__buttons__['Chat']+'" alt="" onclick="openChat(\''+user.jid+'\', this)" /> <img src="/images/buttons/index.php?txt='+__buttons__['Fechar']+'&mdl=error" alt="" onclick="closeBlink(this)" /></nobr>\n</div>\n</div></div>';
      break;
  }
  
  var holder = ($('center') == null)?$('center_full'):$('center');
  jQuery(function($){
    $(document.body).append(message_body);
  });
  //new Effect.Appear(jQuery('#'+id), {afterSetup: function() { jQuery('#'+id).css('display','block'); }, duration:0.5});
  //jQuery('#'+id).show();
}

function sendBlink(user)
{
  top.imsg.blink(user);
}

function sentBlink(el,msg)
{
  jQuery(el).attr('onclick','void(0)');
  jQuery(el).css('cursor','text');
  el.lastChild.nodeValue = msg;
  new Effect.Highlight(el);
}

function openChat(from, el, nick)
{
  if (nick !== undefined) {
    top.imsg.roster.openChat(from, nick);
  } else {
    top.imsg.roster.openChat(from);
  }

  /* flag para indicar se ja esta mostrando um item da fila */
  top.imsg.showing = 0;
  top.imsg.queue.pop();

  /* se tem itens na fila mostra mais itens */
  if (top.imsg.queue.length > 0) {
    top.imsg.playqueue();
  }

  if (el != undefined) {
    closeBlink(el);
  }
}

function openMessages()
{
  if (nick !== undefined) {
    top.imsg.roster.openChat(from, nick);
  } else {
    top.imsg.roster.openChat(from);
  }

  /* flag para indicar se ja esta mostrando um item da fila */
  top.imsg.showing = 0;
  top.imsg.queue.pop();

  /* se tem itens na fila mostra mais itens */
  if (top.imsg.queue.length > 0) {
    top.imsg.playqueue();
  }

  if (el != undefined) {
    closeBlink(el);
  }
}

function alertOwner(user)
{
  top.imsg.toastieprofile(user);
}

function enterChat(nick)
{
  if (top.imsg !== null) {
    top.imsg.openGroupchat('gadesh@conference.localhost',nick,null);
    //    top.imsg.openGroupchat(jid,null,null);
  }
}

function openMessage(jid)
{
  top.imsg.roster.openIMessage(jid);
}

function closeBlink(el)
{
  var aDiv = el.parentNode.parentNode.parentNode.parentNode;
  new Effect.Fade(aDiv, {afterFinish: function() { aDiv.parentNode.removeChild(aDiv); }, duration:0.5});

  /* flag para indicar se ja esta mostrando um item da fila */
  top.imsg.showing = 0;
  top.imsg.queue.pop();

  /* se tem itens na fila mostra mais itens */
  if (top.imsg.queue.length > 0) {
    top.imsg.playqueue();
  }
}

/* =========== JABBER =========== */

var lastUserSelected;
function selectUser(el) {
  if(lastUserSelected)
  lastUserSelected.className = "rosterUser";
  el.className = "rosterUserSelected";
  lastUserSelected = el;
}

function openChangeStatus() {
  var onlStatW;
  if (!onlStatW || onlStatW.closed)
  onlStatW = top.imsg.open("/jwchat/changestatus.html","onlStatW"+top.imsg.makeWindowName(top.imsg.jid),"width=330,height=240,resizable=yes");
  onlStatW.focus();
  return false;
}

function userClicked(el,jid) {
  selectUser(el);

  var user = top.imsg.roster.getUserByJID(top.imsg.cutResource(jid));

  if(user && typeof(user.type) != 'undefined' && user.type == 'groupchat')
  return top.imsg.openGroupchat(jid);

  if (!top.imsg.isGateway(jid))
  return top.imsg.roster.openChat(jid);
}

function viewProfile(profile)
{
  top.location = "/person/".concat(profile);
}

function __createInput(id, type, value) {
  var inp = document.createElement('input');
  jQuery(inp).attr({ type: type, value: value, id: id, name: id });
  return inp;
}

function setEmail(el, id)
{
  (id == 'email_label') ? jQuery('#email_label').text(el.value) : null;
  Hide(el);
  Show("#"+id);
}

function setPass(el, id1, id2)
{
  Hide(el);
  Show("#"+id1);
  Show("#"+id2);
}

function setStatusAndClose(status, cntr)
{
  top.imsg.changeStatus(status,null,null);
  ShowHideBlock('#selectStatus');
}

function isToastie() {
  return jQuery("div[@class=ttop]").get().length;
}

/* =========== JABBER =========== */


/* LANGUAGES {{{ */

function selectLanguage()
{
  jQuery('div#languageBar > ul').slideToggle('normal');

}

/* }}} LANGUAGES */

// INIT CORNER
var roundParams = { size: '8px' };

function roundCorners(id, params)
{
  jQuery(function($) {
    if (typeof(id) == "object") {
      $.each(id, function(k,v){
        $('#'.concat(k,':visible')).css({ border: '1px solid '.concat(v.border) }).corner((v.corners ? v.corners : '').concat(' ',roundParams.size));
      });
    } else {
      $('#'.concat(id,':visible')).css({ border: '1px solid '.concat(params.border) }).corner((params.corners ? params.corners : '').concat(' ',roundParams.size));
    }
  });
}

jQuery(document).ready(function($){
  if ($.browser.msie) {
    $('h3.alert, h3.error, h3.info, h3.success, div.cornerPics').corner(roundParams.size);
  } else {
    $('h3.alert, p.alert, h3.error, h3.info, h3.success, p.error, p.info, p.success, div.cornerPics').corner(roundParams.size);
  }
  $('div.idcard').css('border', '1px solid #EAE6DB').corner(roundParams.size);
  $('#usercode').css('border', '3px solid #FFF').corner(roundParams.size);
});

function roundIdCards()
{
  jQuery('div.idcard').css('border', '1px solid #EAE6DB').corner(roundParams.size);
}

/* AJAX */

Ajax.Responders.register({
  onCreate: function(){
    jQuery.blockUI();
  },
  onComplete: function(){
    jQuery.unblockUI();
  }
});

if (typeof __loading__ != "undefined") {
  jQuery.blockUI.defaults.pageMessage = '<h2><img src="/images/indicator.gif" alt="" /> '.concat(__loading__, '</h2>');
}
jQuery().ajaxStart(jQuery.blockUI).ajaxStop(jQuery.unblockUI);

function loadAction(url, result, form)
{
  if (url === null) {
    return false;
  }

  new Ajax.Request(url, {
    method: 'POST',
    onComplete:  function (data) {
      jQuery('#'.concat(result)).html(data.responseText).show();
    },
    parameters: (typeof(form) != "undefined" ? jQuery(form).formSerialize() : null)
  });

  return false;
}

function loadFaces()
{
  if (faces.length > 0) {
    $('selectFace').update(faces);
    ShowHide('#selectFace');
  } else {
    new Ajax.Request('/bar/loadFaces', {
      method: 'GET',
      onComplete:  function (data) {
        $('selectFace').update(data.responseText);
        ShowHide('#selectFace');
        faces = data.responseText;
      }
    });
  }
}

function openGroupChat()
{
  if (typeof(group_chat) == "undefined")
  {
  	var group_chat = top.imsg.open("/user/groupChat", "group_chat", "width=750,height=450,resizable=no,menubar=no,statusbar=no");
  	group_chat.focus();
  }
  return false;
}