source: sandbox/jabberit_messenger/trophy/js/loadIM.js @ 2390

Revision 2390, 8.8 KB checked in by alexandrecorreia, 14 years ago (diff)

Ticket #986 - Lista de contatos refeita e mudanças nos carregamentos dos layouts(xsl).

  • Property svn:executable set to *
Line 
1(function()
2{
3        var jid                         = "";
4        var path                        = "/jmessenger/";
5        var _showhidden         = null;
6        var _xtools                     = null;
7        var userCurrent         = null;
8        var zIndex                      = 9001;
9       
10        function actionButton()
11        {
12                if( arguments.length > 0 )
13                {
14                        var e   = arguments[0];
15                        var jid = arguments[1];
16               
17                        if ( !e )
18                                var e = window.event;
19                       
20                        ( ( e.target ) ? e.target : e.srcElement ).oncontextmenu = function(e)
21                        {
22                                return false;
23                        };
24       
25                        if ( ( e.which && e.which > 1 ) || ( e.button && e.button > 1 ) )
26                                optionsItensContact(e, jid);
27                        else
28                                TrophyIM.rosterClick(jid);
29                }
30        }
31
32        function addContacts()
33        {
34                if( arguments.length > 0 )
35                {
36                        var jidFrom             = getUserCurrent().jid;
37                        var jidTo               = arguments[0];
38                        var name                = arguments[1];
39                        var group               = arguments[2];
40                       
41                        TrophyIM.addContacts( jidFrom, jidTo, name, group );
42                }
43        }
44       
45        function configEvents(pObj, pEvent, pHandler)
46        {
47                if ( typeof pObj == 'object' )
48                {
49                        if ( pEvent.substring(0, 2) == 'on' )
50                                pEvent = pEvent.substring(2, pEvent.length);
51
52                        if ( pObj.addEventListener )
53                                pObj.addEventListener(pEvent, pHandler, false);
54                        else if ( pObj.attachEvent )
55                                pObj.attachEvent('on' + pEvent, pHandler);
56                }
57        }
58       
59        function loginPage()
60        {
61                setXTools();
62               
63                var winLoginPage =
64                {       
65                         id_window              : "window_login_page",
66                         width                  : 260,
67                         height                 : 150,
68                         top                    : 100,
69                         left                   : 400,
70                         draggable              : true,
71                         visible                : "display",
72                         resizable              : true,
73                         zindex                 : zIndex++,
74                         title                  : "Login - Expresso Messenger",
75                         closeAction    : "remove",
76                         content                : _xtools.parse(_xtools.xml("login_page"), "loginPage.xsl")     
77                };
78
79                _winBuild( winLoginPage );
80        }
81       
82        function rosterDiv()
83        {
84                setXTools();                   
85
86                var winRosterDiv =
87                {
88                         id_window              : "window_Roster_im",
89                         width                  : 250,
90                         height                 : 410,
91                         top                    : 50,
92                         left                   : 50,
93                         draggable              : true,
94                         visible                : "display",
95                         resizable              : true,
96                         zindex                 : zIndex++,
97                         title                  : "Contatos - Expresso Messenger",
98                         closeAction    : "hidden",
99                         content                : _xtools.parse(_xtools.xml("contacts_list"),"contactsList.xsl")       
100                };
101               
102                _winBuild( winRosterDiv );
103        }
104       
105        function HTMLSnippets( pType )
106        {
107                return new ( function( )
108                {
109                        this.loginPage          = loginPage;
110                        this.rosterDiv          = rosterDiv;
111                });
112        }
113       
114        function getUserCurrent()
115        {
116                return userCurrent;
117        }
118       
119        function getZindex()
120        {
121                return zIndex++;
122        }
123       
124        function groupsHidden()
125        {
126                if( arguments.length > 0 )
127                {
128                        var _element = arguments[0];
129                                _element.style.background = "url('images/arrow_right.gif')no-repeat center left";
130                                _element.onclick = function(){ groupsVisible(_element);};
131                               
132                                // Hidden all
133                                var _elementNext = _element.nextSibling;
134                               
135                                while( _elementNext )
136                                {       
137                                        _elementNext.style.display = "none";
138                                        _elementNext = _elementNext.nextSibling;
139                                }
140                }
141        }
142       
143        function groupsVisible()
144        {
145                if( arguments.length > 0 )
146                {
147                        var _element = arguments[0];
148                                _element.style.background = "url('images/arrow_down.gif')no-repeat center left";
149                                _element.onclick = function(){ groupsHidden(_element);};
150
151                                // Display all
152                                var _elementNext = _element.nextSibling;
153                               
154                                while( _elementNext )
155                                {       
156                                        _elementNext.style.display = "block";
157                                        _elementNext = _elementNext.nextSibling;
158                                }
159                }
160        }
161       
162        function parse()
163        {
164                if( arguments.length == 2 )
165                        return _xtools.parse(_xtools.xml(arguments[0]), arguments[1] );
166               
167                if( arguments.length === 3 )
168                        return _xtools.parse(_xtools.xml(arguments[0]), arguments[1], arguments[2] );
169        }
170       
171        function loadScripts(pFiles)
172        {
173                // Load JavaScript
174                var loadJavaScript = function(pJs)
175                {
176                        var newScript = document.createElement("script");
177                                newScript.setAttribute("type", "text/javascript");
178                                newScript.setAttribute("src", pJs );
179                               
180                        return newScript;
181                };
182               
183                // Load CSS
184                var loadStyleSheet = function(pCss)
185                {
186                        var newStyle = document.createElement("link");
187                                newStyle.setAttribute("rel", "stylesheet");
188                                newStyle.setAttribute("type", "text/css");
189                                newStyle.setAttribute("href", pCss);
190                               
191                        return newStyle;
192                };
193               
194                for(var i = 0; i < pFiles.length; i++)
195                {
196                        if( pFiles[i].indexOf(".js") > -1 )
197                                document.getElementsByTagName("head")[0].appendChild(loadJavaScript(pFiles[i]));
198                               
199                        if( pFiles[i].indexOf(".css") > -1 )
200                                document.getElementsByTagName("head")[0].appendChild(loadStyleSheet(pFiles[i]));
201                }
202        }
203
204       
205        function optionsItensContact()
206        {
207                if( arguments.length > 0 )
208                {
209                        var element = ( arguments[0].target ) ? arguments[0].target : arguments[0].srcElement;
210                        var jid         = arguments[1];
211                       
212                        if( _showhidden == null )
213                                _showhidden = new ShowHidden(300);
214
215                        var _options = [
216                                                ['Autorizar', 'TrophyIM.setAutorization(\''+jid+'\')' ],
217                                                ['Remover', 'Remover : ' + jid ],
218                                                ['Renomear', 'Renomear : ' + jid],
219                                                ['Trocar grupo', 'Trocar grupo : ' + jid],
220                                                   ];
221
222                        var _itens = "";
223                       
224                        for( var i in _options )
225                        {
226                                _itens += '<img src="images/arrow_right.gif"/><span style="cursor:pointer; margin:3px;" onclick='+_options[i][1]+'>';
227                                _itens += _options[i][0] + '</span><br/>';
228                        }
229                       
230                        var _optionsItens = document.createElement("div");
231                                _optionsItens.setAttribute("style", "margin: -5px 0px 0px 20px;");
232                                _optionsItens.className         = "x-menu";
233                                _optionsItens.style.zIndex      = '99999';
234                                _optionsItens.innerHTML         = _itens; 
235                                                                                 
236                                _showhidden.action('onmouseover', 'onmouseout', _optionsItens);
237                               
238                        element.parentNode.onmouseout   = function(){ _showhidden.hiddenObject(false); };
239                        element.parentNode.onmouseover  = function(){ _showhidden.hiddenObject(true); };
240                        element.parentNode.appendChild( _optionsItens );
241                }
242               
243        }
244       
245        function setPresence()
246        {
247                if( arguments.length > 0 )
248                {
249                        var element = arguments[0];
250                       
251                        if( _showhidden == null )
252                                _showhidden = new ShowHidden(300);
253                       
254                        var _status = [
255                                               ['Afastado', 'away', '<img src="images/away.gif" />'],
256                                               ['Disponível', 'available', '<img src="images/available.gif" />'],
257                                               ['Livre p/ Conversa', 'chat', '<img src="images/chat.gif" />'],
258                                               ['Não Disponível', 'xa', '<img src="images/xa.gif" />'],
259                                               ['Ocupado', 'dnd', '<img src="images/dnd.gif" />'],
260                                          ];
261                       
262                        var _itens = "";
263                       
264                        for( var i in _status )
265                        {
266                                _itens += '<span style="cursor:pointer;" onclick="TrophyIM.setPresence(\''+_status[i][1]+'\'); loadIM.setStatusJabber(\''+_status[i][0]+'\',\''+_status[i][1]+'\');">';
267                                _itens += _status[i][2]+ "<span style='margin:3px;'>" + _status[i][0] + "</span></span><br/>";
268                        }
269                       
270                        var _statusItens = document.createElement("div");
271                                _statusItens.setAttribute("style", "margin: 62px 0px 0px 76px;");
272                                _statusItens.className          = "x-menu";
273                                _statusItens.style.zIndex       = '99999';
274                                _statusItens.innerHTML          = _itens; 
275                                                                                 
276                                _showhidden.action('onmouseover', 'onmouseout', _statusItens);
277                               
278                        element.parentNode.onmouseout   = function(){ _showhidden.hiddenObject(false); };
279                        element.parentNode.onmouseover  = function(){ _showhidden.hiddenObject(true); };
280                        element.parentNode.appendChild(_statusItens);
281                }
282        }
283       
284        function setStatusJabber()
285        {
286                if( arguments.length > 0 )
287                {
288                        var _text       = arguments[0];
289                        var _img        = arguments[1];
290                       
291                        document.getElementById('statusJabberImg').setAttribute("style", "background-image: url('images/"+_img+".gif'); margin-left: 13px;width:15px; height:15px;");
292                        document.getElementById('statusJabberText').innerHTML = _text;
293                }       
294        }
295       
296        function setUserCurrent( _jid , _password )
297        {
298                userCurrent =
299                {
300                        'jid'           : _jid,
301                        'password'      : _password
302                }
303        }
304       
305        function setXTools()
306        {
307                if( _xtools == null )
308                        _xtools = new xtools(path);
309        }
310       
311        function loadIM()
312        {
313                var files =     [
314                                 'js/xtools.js',
315                                 'js/dragdrop.js',
316                                 'js/makeW.js',
317                                 'js/show_hidden.js',
318                                 'js/trophyim.js',
319                                 //'css/trophyim.css',
320                                 //'css/window_azul.css'
321                                 //'css/window_cataratas.css'
322                                 //'css/window_celepar.css'
323                                 //'css/window_comics.css'
324                                 //'css/window_default.css'
325                                 //'css/window_escritorio.css'
326                                 //'css/window_metropole.css'
327                                 'css/window_rochas.css'
328                            ];
329               
330                loadScripts(files);
331        }
332       
333        loadIM.prototype.actionButton           = actionButton;
334        loadIM.prototype.addContacts            = addContacts;
335        loadIM.prototype.configEvents           = configEvents;
336        loadIM.prototype.getUserCurrent         = getUserCurrent;
337        loadIM.prototype.getZIndex                      = getZindex;
338        loadIM.prototype.groupsHidden           = groupsHidden;
339        loadIM.prototype.groupsVisible          = groupsVisible;
340        loadIM.prototype.parse                          = parse;
341        loadIM.prototype.setPresence            = setPresence;
342        loadIM.prototype.setStatusJabber        = setStatusJabber;
343        loadIM.prototype.setUserCurrent         = setUserCurrent;
344       
345        loadIM.prototype.HTMLSnippets           = new HTMLSnippets;
346        window.loadIM                                           = new loadIM;
347       
348})();
Note: See TracBrowser for help on using the repository browser.