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

Revision 235, 2.3 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                }
35                else if ( data.lastIndexOf('>') == data.length - 1)
36                {
37                        if ( buffer.length )
38                        {
39                                data = buffer + data;
40                                buffer = '';
41                        }
42
43                        // com xmlns ocorre problemas durante o parse entre
44                        // xml e xsl e por esse motivo está sendo retirado
45                        data = '<handler>' + data.replace(/ xmlns='.*?'/g, '') + '</handler>';
46
47                        if ( window.ActiveXObject )
48                        {
49                                var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
50                                xmlDoc.async = "false";
51                                xmlDoc.loadXML(data);
52                        }
53                        else
54                        {
55                                var parser = new DOMParser();
56                                var xmlDoc = parser.parseFromString(data, "text/xml");
57                        }
58
59                        var node = xmlDoc.documentElement.firstChild;
60
61                        while ( node )
62                        {
63                                with ( node )
64                                {
65                                        jabber.doIt(nodeName, node);
66                                }
67                                node = node.nextSibling;
68                        }
69                }
70                else
71                {
72                        buffer += data;
73                }
74        }
75
76        function contacts(data)
77        {
78        }
79        request();
80        setTimeout("con.go('$this.Ujabber.getContacts', {'request':"+contacts+"})", 3000);
81}
82window.onbeforeunload = function(){con.__HTTP__['$this.Ujabber.listen'].abort();}
83/*window.onbeforeunload = function(){con.__HTTP__['$this.Ujabber.getContacts'].abort();}
84window.onbeforeunload = function(){con.__HTTP__['$this.Ujabber.getVcard'].abort();}
85window.onbeforeunload = function(){con.__HTTP__['$this.ldap_im.photo_ldap'].abort();}
86window.onbeforeunload = function(){con.__HTTP__['$this.Ujabber.setStatus'].abort();}
87window.onbeforeunload = function(){con.__HTTP__['$this.Ujabber.setPresence'].abort();}*/
Note: See TracBrowser for help on using the repository browser.