(function()
{
var jid = "";
var path = "/jmessenger/";
var _showhidden = null;
var _xtools = null;
var userCurrent = null;
var zIndex = 9001;
function actionButton()
{
if( arguments.length > 0 )
{
var e = arguments[0];
var jid = arguments[1];
if ( !e )
var e = window.event;
( ( e.target ) ? e.target : e.srcElement ).oncontextmenu = function(e)
{
return false;
};
if ( ( e.which && e.which > 1 ) || ( e.button && e.button > 1 ) )
optionsItensContact(e, jid);
else
TrophyIM.rosterClick(jid);
}
}
function addContacts()
{
if( arguments.length > 0 )
{
var jidFrom = getUserCurrent().jid;
var jidTo = arguments[0];
var name = arguments[1];
var group = arguments[2];
TrophyIM.addContacts( jidFrom, jidTo, name, group );
}
}
function configEvents(pObj, pEvent, pHandler)
{
if ( typeof pObj == 'object' )
{
if ( pEvent.substring(0, 2) == 'on' )
pEvent = pEvent.substring(2, pEvent.length);
if ( pObj.addEventListener )
pObj.addEventListener(pEvent, pHandler, false);
else if ( pObj.attachEvent )
pObj.attachEvent('on' + pEvent, pHandler);
}
}
function loginPage()
{
setXTools();
var winLoginPage =
{
id_window : "window_login_page",
width : 260,
height : 150,
top : 100,
left : 400,
draggable : true,
visible : "display",
resizable : true,
zindex : zIndex++,
title : "Login - Expresso Messenger",
closeAction : "remove",
content : _xtools.parse(_xtools.xml("login_page"), "loginPage.xsl")
};
_winBuild( winLoginPage );
}
function rosterDiv()
{
setXTools();
var winRosterDiv =
{
id_window : "window_Roster_im",
width : 250,
height : 410,
top : 50,
left : 50,
draggable : true,
visible : "display",
resizable : true,
zindex : zIndex++,
title : "Contatos - Expresso Messenger",
closeAction : "hidden",
content : _xtools.parse(_xtools.xml("contacts_list"),"contactsList.xsl")
};
_winBuild( winRosterDiv );
}
function HTMLSnippets( pType )
{
return new ( function( )
{
this.loginPage = loginPage;
this.rosterDiv = rosterDiv;
});
}
function getUserCurrent()
{
return userCurrent;
}
function getZindex()
{
return zIndex++;
}
function groupsHidden()
{
if( arguments.length > 0 )
{
var _element = arguments[0];
_element.style.background = "url('images/arrow_right.gif')no-repeat center left";
_element.onclick = function(){ groupsVisible(_element);};
// Hidden all
var _elementNext = _element.nextSibling;
while( _elementNext )
{
_elementNext.style.display = "none";
_elementNext = _elementNext.nextSibling;
}
}
}
function groupsVisible()
{
if( arguments.length > 0 )
{
var _element = arguments[0];
_element.style.background = "url('images/arrow_down.gif')no-repeat center left";
_element.onclick = function(){ groupsHidden(_element);};
// Display all
var _elementNext = _element.nextSibling;
while( _elementNext )
{
_elementNext.style.display = "block";
_elementNext = _elementNext.nextSibling;
}
}
}
function parse()
{
if( arguments.length == 2 )
return _xtools.parse(_xtools.xml(arguments[0]), arguments[1] );
if( arguments.length === 3 )
return _xtools.parse(_xtools.xml(arguments[0]), arguments[1], arguments[2] );
}
function loadScripts(pFiles)
{
// Load JavaScript
var loadJavaScript = function(pJs)
{
var newScript = document.createElement("script");
newScript.setAttribute("type", "text/javascript");
newScript.setAttribute("src", pJs );
return newScript;
};
// Load CSS
var loadStyleSheet = function(pCss)
{
var newStyle = document.createElement("link");
newStyle.setAttribute("rel", "stylesheet");
newStyle.setAttribute("type", "text/css");
newStyle.setAttribute("href", pCss);
return newStyle;
};
for(var i = 0; i < pFiles.length; i++)
{
if( pFiles[i].indexOf(".js") > -1 )
document.getElementsByTagName("head")[0].appendChild(loadJavaScript(pFiles[i]));
if( pFiles[i].indexOf(".css") > -1 )
document.getElementsByTagName("head")[0].appendChild(loadStyleSheet(pFiles[i]));
}
}
function optionsItensContact()
{
if( arguments.length > 0 )
{
var element = ( arguments[0].target ) ? arguments[0].target : arguments[0].srcElement;
var jid = arguments[1];
if( _showhidden == null )
_showhidden = new ShowHidden(300);
var _options = [
['Autorizar', 'TrophyIM.setAutorization(\''+jid+'\')' ],
['Remover', 'Remover : ' + jid ],
['Renomear', 'Renomear : ' + jid],
['Trocar grupo', 'Trocar grupo : ' + jid],
];
var _itens = "";
for( var i in _options )
{
_itens += '';
_itens += _options[i][0] + '
';
}
var _optionsItens = document.createElement("div");
_optionsItens.setAttribute("style", "margin: -5px 0px 0px 20px;");
_optionsItens.className = "x-menu";
_optionsItens.style.zIndex = '99999';
_optionsItens.innerHTML = _itens;
_showhidden.action('onmouseover', 'onmouseout', _optionsItens);
element.parentNode.onmouseout = function(){ _showhidden.hiddenObject(false); };
element.parentNode.onmouseover = function(){ _showhidden.hiddenObject(true); };
element.parentNode.appendChild( _optionsItens );
}
}
function setPresence()
{
if( arguments.length > 0 )
{
var element = arguments[0];
if( _showhidden == null )
_showhidden = new ShowHidden(300);
var _status = [
['Afastado', 'away', ''],
['Disponível', 'available', ''],
['Livre p/ Conversa', 'chat', ''],
['Não Disponível', 'xa', ''],
['Ocupado', 'dnd', ''],
];
var _itens = "";
for( var i in _status )
{
_itens += '';
_itens += _status[i][2]+ "" + _status[i][0] + "
";
}
var _statusItens = document.createElement("div");
_statusItens.setAttribute("style", "margin: 62px 0px 0px 76px;");
_statusItens.className = "x-menu";
_statusItens.style.zIndex = '99999';
_statusItens.innerHTML = _itens;
_showhidden.action('onmouseover', 'onmouseout', _statusItens);
element.parentNode.onmouseout = function(){ _showhidden.hiddenObject(false); };
element.parentNode.onmouseover = function(){ _showhidden.hiddenObject(true); };
element.parentNode.appendChild(_statusItens);
}
}
function setStatusJabber()
{
if( arguments.length > 0 )
{
var _text = arguments[0];
var _img = arguments[1];
document.getElementById('statusJabberImg').setAttribute("style", "background-image: url('images/"+_img+".gif'); margin-left: 13px;width:15px; height:15px;");
document.getElementById('statusJabberText').innerHTML = _text;
}
}
function setUserCurrent( _jid , _password )
{
userCurrent =
{
'jid' : _jid,
'password' : _password
}
}
function setXTools()
{
if( _xtools == null )
_xtools = new xtools(path);
}
function loadIM()
{
var files = [
'js/xtools.js',
'js/dragdrop.js',
'js/makeW.js',
'js/show_hidden.js',
'js/trophyim.js',
//'css/trophyim.css',
//'css/window_azul.css'
//'css/window_cataratas.css'
//'css/window_celepar.css'
//'css/window_comics.css'
//'css/window_default.css'
//'css/window_escritorio.css'
//'css/window_metropole.css'
'css/window_rochas.css'
];
loadScripts(files);
}
loadIM.prototype.actionButton = actionButton;
loadIM.prototype.addContacts = addContacts;
loadIM.prototype.configEvents = configEvents;
loadIM.prototype.getUserCurrent = getUserCurrent;
loadIM.prototype.getZIndex = getZindex;
loadIM.prototype.groupsHidden = groupsHidden;
loadIM.prototype.groupsVisible = groupsVisible;
loadIM.prototype.parse = parse;
loadIM.prototype.setPresence = setPresence;
loadIM.prototype.setStatusJabber = setStatusJabber;
loadIM.prototype.setUserCurrent = setUserCurrent;
loadIM.prototype.HTMLSnippets = new HTMLSnippets;
window.loadIM = new loadIM;
})();