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

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