source: trunk/instant_messenger/js/client.js @ 151

Revision 151, 2.2 KB checked in by niltonneto, 16 years ago (diff)

Commit da nova versão do módulo, usando agente em C.
Vide Página do módulo do Trac:
http://www.expressolivre.org/dev/wiki/messenger

A versão anterior encontra-se na subpasta bkp (32/64).

Line 
1var con = new Connector;
2function client()
3{
4        var jabber = new Jabber;
5        var buffer = '';
6        var xtools = new XTools;
7        var disconnected = false;
8        function request(data)
9        {
10                if ( !disconnected )
11                        con.go('$this.Ujabber.listen', {'stream':stream, 'request':request}, '');
12        }
13        function stream(data)
14        {
15                function trim(pData)
16                {
17                        return pData.replace(/^ +| +$/g, '');
18                }
19                data = trim(data);
20                if ( data == 'disconnected' || data == '</stream:stream>')
21                {
22                        disconnected = true;
23                        var XmlDoc = "<disconnected>" +
24                                                        "<path>" + path_im + "</path>" +
25                                                 "</disconnected>";
26                        im_window.load('_contacts_im_','instant_messenger_content','<title>.::Expresso Messenger::.</title>','window.xsl','',true,true,false);
27                        im_window.elementC('_contacts_im_').innerHTML  = xtools.parse(XmlDoc,'disconnected.xsl');
28                        func.byId('img_status_im').src = im_unavailable.src;
29                }
30                else if ( data.lastIndexOf('>') == data.length - 1)
31                {
32                        if ( buffer.length )
33                        {
34                                data = buffer + data;
35                                buffer = '';
36                        }
37
38                        // com xmlns ocorre problemas durante o parse entre
39                        // xml e xsl e por esse motivo está sendo retirado
40                        data = '<handler>' + data.replace(/ xmlns='.*?'/g, '') + '</handler>';
41
42                        if ( window.ActiveXObject )
43                        {
44                                var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
45                                xmlDoc.async = "false";
46                                xmlDoc.loadXML(data);
47                        }
48                        else
49                        {
50                                var parser = new DOMParser();
51                                var xmlDoc = parser.parseFromString(data, "text/xml");
52                        }
53
54                        var node = xmlDoc.documentElement.firstChild;
55                        while ( node )
56                                with ( node )
57                                {
58                                        jabber.doIt(nodeName, node);
59                                        node = nextSibling;
60                                }
61                }
62                else
63                {
64                        buffer += data;
65                }
66        }
67
68        function contacts(data)
69        {
70                function handler(Xmldata)
71                {
72                };
73                con.go('$this.Ujabber.setPresence', {'request':handler},'type=unavailable');
74
75                var status = "";
76                if( status = cookies_im.checkCookie('status'))
77                {
78                        status = status.substr(status.indexOf("=") + 1,status.length);
79                        im.status = status;
80                }
81                else
82                {
83                        im.status = 'type=available';
84                        im.statusFlag = 'available';
85                        func.byId('im_status_src').src = im_available.src;
86                }
87
88                im.presence(im.status);
89        }
90        request();
91        setTimeout("con.go('$this.Ujabber.getContacts', {'request':"+contacts+"})", 3000);
92}
Note: See TracBrowser for help on using the repository browser.