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

Revision 164, 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                        //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                function handler(Xmldata)
81                {
82                };
83                con.go('$this.Ujabber.setPresence', {'request':handler},'type=unavailable');
84
85                var status = "";
86                if( status = cookies_im.checkCookie('status'))
87                {
88                        status = status.substr(status.indexOf("=") + 1,status.length);
89                        im.status = status;
90                }
91                else
92                {
93                        im.status = 'type=available';
94                        im.statusFlag = 'available';
95                        func.byId('im_status_src').src = im_available.src;
96                }
97
98                im.presence(im.status);
99        }
100        request();
101        setTimeout("con.go('$this.Ujabber.getContacts', {'request':"+contacts+"})", 3000);
102}
Note: See TracBrowser for help on using the repository browser.