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

Revision 2345, 8.5 KB checked in by alexandrecorreia, 14 years ago (diff)

Ticket #986 - Implementado function para adição de contatos e caixa de menu.

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