var con = new Connector;
function client()
{
var jabber = new Jabber;
var buffer = '';
var xtools = new XTools;
var disconnected = false;
function request(data)
{
if ( !disconnected )
con.go('$this.Ujabber.listen', {'stream':stream, 'request':request}, '');
}
function stream(data)
{
function trim(pData)
{
return pData.replace(/^ +| +$/g, '');
}
data = trim(data);
if ( data == 'disconnected' || data == '')
{
disconnected = true;
var XmlDoc = "" +
"" + path_im + "" +
"";
im_window.load('_contacts_im_','instant_messenger_content','
.::Expresso Messenger::.','window.xsl','',true,true,false);
im_window.elementC('_contacts_im_').innerHTML = xtools.parse(XmlDoc,'disconnected.xsl');
func.byId('img_status_im').src = im_unavailable.src;
}
else if ( data.lastIndexOf('>') == data.length - 1)
{
if ( buffer.length )
{
data = buffer + data;
buffer = '';
}
// com xmlns ocorre problemas durante o parse entre
// xml e xsl e por esse motivo está sendo retirado
data = '' + data.replace(/ xmlns='.*?'/g, '') + '';
if ( window.ActiveXObject )
{
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = "false";
xmlDoc.loadXML(data);
}
else
{
var parser = new DOMParser();
var xmlDoc = parser.parseFromString(data, "text/xml");
}
var node = xmlDoc.documentElement.firstChild;
while ( node )
with ( node )
{
jabber.doIt(nodeName, node);
node = nextSibling;
}
}
else
{
buffer += data;
}
}
function contacts(data)
{
function handler(Xmldata)
{
};
con.go('$this.Ujabber.setPresence', {'request':handler},'type=unavailable');
var status = "";
if( status = cookies_im.checkCookie('status'))
{
status = status.substr(status.indexOf("=") + 1,status.length);
im.status = status;
}
else
{
im.status = 'type=available';
im.statusFlag = 'available';
func.byId('im_status_src').src = im_available.src;
}
im.presence(im.status);
}
request();
setTimeout("con.go('$this.Ujabber.getContacts', {'request':"+contacts+"})", 3000);
}