Changeset 5041 for trunk/jabberit_messenger
- Timestamp:
- 09/05/11 18:10:06 (13 years ago)
- Location:
- trunk/jabberit_messenger
- Files:
-
- 23 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/jabberit_messenger/inc/controller.xml
r3199 r5041 27 27 <item ref="show_hidden" js="show_hidden" /> 28 28 <item ref="setup" js="setup"/> 29 <item ref="xtools" js="xtools" />30 29 <item ref="jsloader" js="jsloader" /> 31 30 <item ref="makeW" js="makeW" /> -
trunk/jabberit_messenger/inc/jabberit_acl.inc.php
r3209 r5041 67 67 $webserver_url .= '/'; 68 68 69 $webserver_url = $webserver_url . 'jabberit_messenger/'; 69 70 $webserver_expresso = $webserver_url . "phpgwapi/"; 71 $webserver_url = $webserver_url . 'jabberit_messenger/'; 70 72 71 73 require_once PHPGW_SERVER_ROOT . '/jabberit_messenger/inc/jabberit_sessions.inc.php'; … … 73 75 $_SESSION['phpgw_info']['jabberit_messenger']['webserver_url'] = $webserver_url; 74 76 77 75 78 require_once dirname(__FILE__) . '/load_lang.php'; 76 79 … … 78 81 $js .= "var _ZINDEX='99000'; "; 79 82 80 echo "<script type=\"text/javascript\">".$js."</script>"; 81 83 // Xtools Phpgwapi 84 echo "<script type='text/javascript' src='".$webserver_expresso."js/x_tools/xtools.js'></script>"; 85 86 // Javascript JMessenger 87 echo "<script type=\"text/javascript\">".$js."</script>"; 82 88 $js = array( 83 89 'j.connector', 84 'j.xtools',85 90 'j.dragdrop', 86 91 'j.makeW', -
trunk/jabberit_messenger/jmessenger/inc/jabberit_acl.inc.php
r3680 r5041 39 39 $webserver_url .= '/'; 40 40 41 $help_expresso = $webserver_url .'help'; 42 $webserver_url = $webserver_url . 'jabberit_messenger/jmessenger/'; 41 $help_expresso = $webserver_url .'help'; 42 $webserver_expresso = $webserver_url . "phpgwapi/"; 43 $webserver_url = $webserver_url . 'jabberit_messenger/jmessenger/'; 43 44 44 45 require_once PHPGW_SERVER_ROOT . '/jabberit_messenger/jmessenger/inc/jabberit_sessions.inc.php'; … … 84 85 $_DbIM = new DataBaseIM(); 85 86 $preferences = $_DbIM->getPreferences(); 86 87 88 87 89 echo "<script type='text/javascript'>".$js."</script>"; 88 echo "<script type='text/javascript' src='".$webserver_url . "js/strophe.mini.js'></script>";89 echo "<script type='text/javascript' src='".$webserver_ url . "js/SnifferBrowser.mini.js'></script>";90 echo "<script type='text/javascript' src='".$webserver_url ."js/jscode/loadIM.mini.js'></script>";91 echo "<script type='text/javascript' src='".$webserver_url ."js/connector.mini.js'></script>";92 echo "<script type='text/javascript' src='".$webserver_ url . "js/xtools.mini.js'></script>";93 echo "<script type='text/javascript' src='".$webserver_url . "js/lang/i18n_pt_Br.mini.js'></script>";94 echo "<script type='text/javascript' src='".$webserver_url . "js/dragdrop.mini.js'></script>";95 echo "<script type='text/javascript' src='".$webserver_url . "js/makeW.mini.js'></script>";96 echo "<script type='text/javascript' src='".$webserver_url . "js/show_hidden.mini.js'></script>";97 echo "<script type='text/javascript' src='".$webserver_url . "js/trophyim_constants.js'></script>";98 echo "<script type='text/javascript' src='".$webserver_url ."js/trophyim.mini.js'></script>";99 echo "<script type='text/javascript' src='".$webserver_url ."js/AddUser.mini.js'></script>";100 echo "<script type='text/javascript' src='".$webserver_url . "js/json2.js'></script>";101 echo "<script type='text/javascript' src='".$webserver_url . "js/SelectEditable.mini.js'></script>";102 echo "<script type='text/javascript'> var loadscript = new LoadIM('".$fullName."','".$preferences."' ); </script>";90 echo "<script type='text/javascript' src='".$webserver_url . "js/strophe.mini.js'></script>"; 91 echo "<script type='text/javascript' src='".$webserver_expresso . "js/browser/browserDetect.js'></script>"; 92 echo "<script type='text/javascript' src='".$webserver_url . "js/jscode/loadIM.mini.js'></script>"; 93 echo "<script type='text/javascript' src='".$webserver_url . "js/connector.mini.js'></script>"; 94 echo "<script type='text/javascript' src='".$webserver_expresso . "js/x_tools/xtools.js'></script>"; 95 echo "<script type='text/javascript' src='".$webserver_url . "js/lang/i18n_pt_Br.mini.js'></script>"; 96 echo "<script type='text/javascript' src='".$webserver_url . "js/dragdrop.mini.js'></script>"; 97 echo "<script type='text/javascript' src='".$webserver_url . "js/makeW.mini.js'></script>"; 98 echo "<script type='text/javascript' src='".$webserver_url . "js/show_hidden.mini.js'></script>"; 99 echo "<script type='text/javascript' src='".$webserver_url . "js/trophyim_constants.js'></script>"; 100 echo "<script type='text/javascript' src='".$webserver_url . "js/trophyim.mini.js'></script>"; 101 echo "<script type='text/javascript' src='".$webserver_url . "js/AddUser.mini.js'></script>"; 102 echo "<script type='text/javascript' src='".$webserver_url . "js/json2.js'></script>"; 103 echo "<script type='text/javascript' src='".$webserver_url . "js/SelectEditable.mini.js'></script>"; 104 echo "<script type='text/javascript'> var loadscript = new LoadIM('".$fullName."','".$preferences."','".$webserver_expresso."'); </script>"; 103 105 104 106 break; -
trunk/jabberit_messenger/jmessenger/js/jscode/loadIM.js
r4360 r5041 1 1 (function() 2 { 3 var _autoStatus; 4 var _autoStatusTime = 60000; // 1 minuto 5 var addUser = null; 6 var conn = null; 7 var fullName = ""; 8 var path = ""; 9 var _preferencesIM = ""; 10 var selectEditable = null; 11 var showhidden = null; 12 var statusUserIM = ""; 13 var _statusMessage = ""; 14 var timeoutId = null; 15 var userCurrent = null; 16 var _timeOutNotification = ""; 17 var Xtools = null; 18 var zIndex = 9001; 19 var windowPopUp = []; 20 21 // Images 22 var add_user = new Image(); 23 add_user.src = path_jabberit + 'templates/default/images/adduser_azul.png'; 24 25 var arrow_down = new Image(); 26 arrow_down.src = path_jabberit + 'templates/default/images/arrow_down.gif'; 27 28 var arrow_right = new Image(); 29 arrow_right.src = path_jabberit + 'templates/default/images/arrow_right.gif'; 30 31 function actionButton() 32 { 33 if( arguments.length > 0 ) 34 { 35 var e = arguments[0]; 36 var _element = ( e.target ) ? e.target : e.srcElement; 37 var jid = arguments[1]; 38 var coord = null; 39 40 if ( !e ) 41 e = window.event; 42 43 var _X = e.clientX + document.body.scrollLeft - document.body.clientLeft; 44 var _Y = e.clientY + document.body.scrollTop - document.body.clientTop; 45 46 coord = { X : _X, Y : _Y }; 47 48 49 var _onContextMenu = function() 50 { 51 return false; 52 }; 53 54 window.document.oncontextmenu = _onContextMenu; 55 56 if( e.button ) 57 { 58 if( e.button > 1 ) 59 optionsItensContact( jid, coord ); 60 else 61 TrophyIM.rosterClick(jid); 62 } 63 else if( e.which ) 64 { 65 if( e.which > 1 ) 66 optionsItensContact( jid, coord ); 67 else 68 if( e.target.id ) 69 TrophyIM.rosterClick(jid); 70 } 71 72 setTimeout(function() 73 { 74 window.document.oncontextmenu = function() 75 { 76 return true; 77 }; 78 79 },500); 80 } 81 } 82 83 function addContact() 84 { 85 if( arguments.length > 0 ) 86 addUser.add(); 87 else 88 addUser.show(); 89 } 90 91 function addIcon() 92 { 93 94 var div_write_msg = ( getElement('em_div_write_msg') != null ) ? getElement('em_div_write_msg') : null ; 95 var StatusBar = ( getElement('divStatusBar') != null ) ? getElement('divStatusBar') : null ; 96 var StatusBarIM = ( getElement('JabberMessenger') != null ) ? getElement('JabberMessenger') : null; 97 98 /************************************************************************** 2 { 3 var _autoStatus; 4 var _autoStatusTime = 60000; // 1 minuto 5 var addUser = null; 6 var conn = null; 7 var fullName = ""; 8 var path = ""; 9 var path_phpgwapi = ""; 10 var _preferencesIM = ""; 11 var selectEditable = null; 12 var showhidden = null; 13 var statusUserIM = ""; 14 var _statusMessage = ""; 15 var timeoutId = null; 16 var userCurrent = null; 17 var _timeOutNotification = ""; 18 var Xtools = null; 19 var zIndex = 9001; 20 var windowPopUp = []; 21 22 // Images 23 var add_user = new Image(); 24 add_user.src = path_jabberit + 'templates/default/images/adduser_azul.png'; 25 26 var arrow_down = new Image(); 27 arrow_down.src = path_jabberit + 'templates/default/images/arrow_down.gif'; 28 29 var arrow_right = new Image(); 30 arrow_right.src = path_jabberit + 'templates/default/images/arrow_right.gif'; 31 32 function actionButton() 33 { 34 if( arguments.length > 0 ) 35 { 36 var e = arguments[0]; 37 var _element = ( e.target ) ? e.target : e.srcElement; 38 var jid = arguments[1]; 39 var coord = null; 40 41 if ( !e ) 42 e = window.event; 43 44 var _X = e.clientX + document.body.scrollLeft - document.body.clientLeft; 45 var _Y = e.clientY + document.body.scrollTop - document.body.clientTop; 46 47 coord = { 48 X : _X, 49 Y : _Y 50 }; 51 52 53 var _onContextMenu = function() 54 { 55 return false; 56 }; 57 58 window.document.oncontextmenu = _onContextMenu; 59 60 if( e.button ) 61 { 62 if( e.button > 1 ) 63 optionsItensContact( jid, coord ); 64 else 65 TrophyIM.rosterClick(jid); 66 } 67 else if( e.which ) 68 { 69 if( e.which > 1 ) 70 optionsItensContact( jid, coord ); 71 else 72 if( e.target.id ) 73 TrophyIM.rosterClick(jid); 74 } 75 76 setTimeout(function() 77 { 78 window.document.oncontextmenu = function() 79 { 80 return true; 81 }; 82 83 },500); 84 } 85 } 86 87 function addContact() 88 { 89 if( arguments.length > 0 ) 90 addUser.add(); 91 else 92 addUser.show(); 93 } 94 95 function addIcon() 96 { 97 98 var div_write_msg = ( getElement('em_div_write_msg') != null ) ? getElement('em_div_write_msg') : null ; 99 var StatusBar = ( getElement('divStatusBar') != null ) ? getElement('divStatusBar') : null ; 100 var StatusBarIM = ( getElement('JabberMessenger') != null ) ? getElement('JabberMessenger') : null; 101 102 /************************************************************************** 99 103 * 100 104 * Quando estiver habilitada a opção fora de escritório nos filtros. … … 102 106 */ 103 107 104 if( ( div_write_msg && StatusBarIM ) != null ) 105 { 106 div_write_msg.parentNode.insertBefore(StatusBarIM, div_write_msg); 107 StatusBarIM.style.paddingLeft = '33px'; 108 return; 109 } 110 111 /**************************************************************************/ 112 113 if ( !StatusBarIM ) 114 { 115 StatusBarIM = document.createElement('div'); 116 StatusBarIM.setAttribute('id', 'JabberMessenger'); 117 } 118 119 if( StatusBar ) 120 { 121 StatusBar.style.paddingLeft = '33px'; 122 123 var _div = document.createElement('div'); 124 _div.appendChild(StatusBar.parentNode.removeChild(StatusBar.previousSibling)); 125 126 StatusBar.parentNode.insertBefore( _div, StatusBar); 127 128 var _fastMenu = top.document.createElement('div'); 129 _fastMenu.setAttribute('id', 'fast_menu_jabber_expresso'); 130 _fastMenu.style.background = 'no-repeat'; 131 _fastMenu.style.backgroundImage = 'url(' + arrow_down.src + ')'; 132 _fastMenu.style.float = 'left'; 133 _fastMenu.style.height = '15px'; 134 _fastMenu.style.left = '7px'; 135 _fastMenu.style.margin = '8 0 0 10px'; 136 _fastMenu.style.padding = '0px'; 137 _fastMenu.style.position = 'absolute'; 138 _fastMenu.style.width = '15px'; 139 _fastMenu.style.cursor = 'pointer'; 140 141 StatusBarIM.insertBefore( _fastMenu, StatusBarIM.firstChild ); 142 143 // Add event onclick element _fastMenu 144 configEvents( _fastMenu, 'onclick', function(){ fastMenu(_fastMenu); }); 145 146 var _statusJabber = top.document.createElement('div'); 147 _statusJabber.setAttribute('id','status_jabber_expresso'); 148 _statusJabber.style.background = 'no-repeat'; 149 _statusJabber.style.backgroundImage = 'url(' + add_user.src +')'; 150 _statusJabber.style.float = 'left'; 151 _statusJabber.style.height = '18px'; 152 _statusJabber.style.left = '19px'; 153 _statusJabber.style.margin = '0 0 0 10px'; 154 _statusJabber.style.padding = '0px'; 155 _statusJabber.style.position = 'absolute'; 156 _statusJabber.style.width = '18px'; 157 _statusJabber.style.cursor = 'pointer'; 158 _statusJabber.style.zindex = '999999'; 159 160 StatusBarIM.insertBefore( _statusJabber, StatusBarIM.firstChild ); 161 162 StatusBar.insertBefore( StatusBarIM, StatusBar.firstChild ); 163 164 // Add event onclick element _statusJabber 165 if( _preferencesIM[0] == "openWindowJabberit:true" ) 166 { 167 configEvents( _statusJabber, 'onclick', function(){ rosterDiv(); }); 168 } 169 else 170 { 171 configEvents( _statusJabber, 'onclick', function(){ TrophyIM.load(); }); 172 } 173 } 174 } 175 176 function addNewUser() 177 { 178 addUser.newUser(); 179 } 180 181 function autoStatus() 182 { 183 var _div_status = ( getElement('status_jabber_expresso') != null ) ? getElement('status_jabber_expresso') : null; 184 185 if ( _autoStatus ) 186 clearTimeout(_autoStatus); 187 188 if ( _div_status != null ) 189 { 190 var _status = _div_status.style.backgroundImage; 191 _status = _status.substr(_status.lastIndexOf('/') + 1); 192 _status = _status.substr(0, _status.indexOf('.')); 193 194 if( _status == "xa" && _div_status.getAttribute('autoStatus') ) 195 { 196 if( getStatusMessage() != "") 197 TrophyIM.setPresence("available", getStatusMessage()); 198 else 199 TrophyIM.setPresence("available"); 200 201 _div_status.removeAttribute('autoStatus'); 202 loadscript.setStatusJabber("Disponível","available"); 203 } 204 } 205 206 var TimeStatus = _preferencesIM[2].split(':'); 207 208 if( TimeStatus[1] ) 209 _autoStatus = setTimeout( function(){ autoStatusHandler();}, parseInt(TimeStatus[1]) * _autoStatusTime ); 210 else 211 _autoStatus = setTimeout( function(){ autoStatusHandler();}, parseInt(_autoStatusTime)); 212 } 213 214 function autoStatusHandler() 215 { 216 var _div_status = ( getElement('status_jabber_expresso') != null ) ? getElement('status_jabber_expresso') : null; 217 218 if ( _div_status != null ) 219 { 220 var _status = _div_status.style.backgroundImage; 221 _status = _status.substr(_status.lastIndexOf('/') + 1); 222 _status = _status.substr(0, _status.indexOf('.')); 223 224 if( _status == "available" ) 225 { 226 if(getStatusMessage() != "") 227 TrophyIM.setPresence("xa", getStatusMessage()); 228 else 229 TrophyIM.setPresence("xa"); 230 231 _div_status.setAttribute('autoStatus','true'); 232 233 loadscript.setStatusJabber("Não Disponível","xa"); 234 } 235 } 236 } 237 238 function clrAllContacts() 239 { 240 getElement("JabberIMRoster").innerHTML = ""; 241 } 242 243 function configEvents(pObj, pEvent, pHandler) 244 { 245 if ( typeof pObj == 'object' ) 246 { 247 if ( pEvent.substring(0, 2) == 'on' ) 248 pEvent = pEvent.substring(2, pEvent.length ); 249 250 if ( arguments.length == 3 ) 251 { 252 if ( pObj.addEventListener ) 253 pObj.addEventListener(pEvent, pHandler, false ); 254 else if ( pObj.attachEvent ) 255 pObj.attachEvent( 'on' + pEvent, pHandler ); 256 } 257 else if ( arguments.length == 4 ) 258 { 259 if ( pObj.removeEventListener ) 260 pObj.removeEventListener( pEvent, pHandler, false ); 261 else if ( pObj.detachEvent ) 262 pObj.detachEvent( 'on' + pEvent, pHandler ); 263 } 264 } 265 } 266 267 function disabledNotificationNewUsers() 268 { 269 var _notification = getElement('notification_new_users_jabber') ; 270 var _statusJabber = getElement('status_jabber_expresso'); 271 272 _notification.style.display = 'none'; 273 274 _statusJabber.style.background = "url('"+path_jabberit+"templates/default/images/" + statusUserIM + ".gif') no-repeat"; 275 276 if( _timeOutNotification ) 277 clearTimeout(_timeOutNotification ); 278 279 TrophyIM.controll.notificationNewUsers = 0; 280 } 281 282 function enabledNotificationNewUsers() 283 { 284 var _notification = getElement('notification_new_users_jabber') ; 285 var _statusJabber = getElement('status_jabber_expresso'); 286 287 if( _notification && _statusJabber ) 288 { 289 if ( _notification.style.display == 'none' ) 290 { 291 _notification.style.display = 'block'; 292 293 _statusJabber.style.background = "url('"+path_jabberit+"templates/default/images/alert_mini.png') no-repeat"; 294 295 if( _timeOutNotification ) 296 clearTimeout(_timeOutNotification ); 297 298 _timeOutNotification = setTimeout( function(){ enabledNotificationNewUsers(); }, 2000 ); 299 } 300 else 301 { 302 _notification.style.display = 'none'; 303 304 _statusJabber.style.background = "url('"+path_jabberit+"templates/default/images/" + statusUserIM + ".gif') no-repeat"; 305 306 if( _timeOutNotification ) 307 clearTimeout(_timeOutNotification ); 308 309 _timeOutNotification = setTimeout( function(){ enabledNotificationNewUsers(); }, 800 ); 310 } 311 } 312 } 313 314 function fastMenu() 315 { 316 if( arguments.length > 0 ) 317 { 318 var element = arguments[0]; 319 320 if( showhidden == null ) 321 showhidden = new ShowHidden(300); 322 323 var _options = [ 324 ['Adicionar Contato', 'loadscript.addContact();' ], 325 ['Preferências', 'loadscript.preferences();'] 326 ]; 327 328 if( im_chatroom == "false" ) 329 { 330 _options[2] = [ 'Sala(s) de Bate-Papo','loadscript.getListRooms();']; 331 } 332 333 var _itens = ""; 334 335 for( var i in _options ) 336 { 337 if( _options[i].constructor == Function ) 338 continue; 339 340 _itens += '<img src="'+arrow_right.src+'"/>'; 341 _itens += '<span style="cursor:pointer; margin:3px;" onclick='+_options[i][1]+'>'; 342 _itens += _options[i][0] + '</span><br/>'; 343 } 344 345 var _optionsItens = document.createElement("div"); 346 _optionsItens.id = "fastMenu_Jabber"; 347 _optionsItens.style.marginTop = "19px"; 348 _optionsItens.style.marginLeft = "-8px"; 349 _optionsItens.className = "x-menu"; 350 _optionsItens.style.zIndex = '999999'; 351 _optionsItens.innerHTML = _itens; 352 _optionsItens.onclick = function(){ showhidden.hiddenObject(false); }; 353 _optionsItens.onmouseout = function(){ showhidden.hiddenObject(false); }; 354 _optionsItens.onmouseover = function(){ showhidden.hiddenObject(true); }; 108 if( ( div_write_msg && StatusBarIM ) != null ) 109 { 110 div_write_msg.parentNode.insertBefore(StatusBarIM, div_write_msg); 111 StatusBarIM.style.paddingLeft = '33px'; 112 return; 113 } 114 115 /**************************************************************************/ 116 117 if ( !StatusBarIM ) 118 { 119 StatusBarIM = document.createElement('div'); 120 StatusBarIM.setAttribute('id', 'JabberMessenger'); 121 } 122 123 if( StatusBar ) 124 { 125 StatusBar.style.paddingLeft = '33px'; 126 127 var _div = document.createElement('div'); 128 _div.appendChild(StatusBar.parentNode.removeChild(StatusBar.previousSibling)); 129 130 StatusBar.parentNode.insertBefore( _div, StatusBar); 131 132 var _fastMenu = top.document.createElement('div'); 133 _fastMenu.setAttribute('id', 'fast_menu_jabber_expresso'); 134 _fastMenu.style.background = 'no-repeat'; 135 _fastMenu.style.backgroundImage = 'url(' + arrow_down.src + ')'; 136 _fastMenu.style.float = 'left'; 137 _fastMenu.style.height = '15px'; 138 _fastMenu.style.left = '7px'; 139 _fastMenu.style.margin = '8 0 0 10px'; 140 _fastMenu.style.padding = '0px'; 141 _fastMenu.style.position = 'absolute'; 142 _fastMenu.style.width = '15px'; 143 _fastMenu.style.cursor = 'pointer'; 144 145 StatusBarIM.insertBefore( _fastMenu, StatusBarIM.firstChild ); 146 147 // Add event onclick element _fastMenu 148 configEvents( _fastMenu, 'onclick', function(){ 149 fastMenu(_fastMenu); 150 }); 151 152 var _statusJabber = top.document.createElement('div'); 153 _statusJabber.setAttribute('id','status_jabber_expresso'); 154 _statusJabber.style.background = 'no-repeat'; 155 _statusJabber.style.backgroundImage = 'url(' + add_user.src +')'; 156 _statusJabber.style.float = 'left'; 157 _statusJabber.style.height = '18px'; 158 _statusJabber.style.left = '19px'; 159 _statusJabber.style.margin = '0 0 0 10px'; 160 _statusJabber.style.padding = '0px'; 161 _statusJabber.style.position = 'absolute'; 162 _statusJabber.style.width = '18px'; 163 _statusJabber.style.cursor = 'pointer'; 164 _statusJabber.style.zindex = '999999'; 165 166 StatusBarIM.insertBefore( _statusJabber, StatusBarIM.firstChild ); 167 168 StatusBar.insertBefore( StatusBarIM, StatusBar.firstChild ); 169 170 // Add event onclick element _statusJabber 171 if( _preferencesIM[0] == "openWindowJabberit:true" ) 172 { 173 configEvents( _statusJabber, 'onclick', function(){ 174 rosterDiv(); 175 }); 176 } 177 else 178 { 179 configEvents( _statusJabber, 'onclick', function(){ 180 TrophyIM.load(); 181 }); 182 } 183 } 184 } 185 186 function addNewUser() 187 { 188 addUser.newUser(); 189 } 190 191 function autoStatus() 192 { 193 var _div_status = ( getElement('status_jabber_expresso') != null ) ? getElement('status_jabber_expresso') : null; 194 195 if ( _autoStatus ) 196 clearTimeout(_autoStatus); 197 198 if ( _div_status != null ) 199 { 200 var _status = _div_status.style.backgroundImage; 201 _status = _status.substr(_status.lastIndexOf('/') + 1); 202 _status = _status.substr(0, _status.indexOf('.')); 203 204 if( _status == "xa" && _div_status.getAttribute('autoStatus') ) 205 { 206 if( getStatusMessage() != "") 207 TrophyIM.setPresence("available", getStatusMessage()); 208 else 209 TrophyIM.setPresence("available"); 210 211 _div_status.removeAttribute('autoStatus'); 212 loadscript.setStatusJabber("Disponível","available"); 213 } 214 } 215 216 var TimeStatus = _preferencesIM[2].split(':'); 217 218 if( TimeStatus[1] ) 219 _autoStatus = setTimeout( function(){ 220 autoStatusHandler(); 221 }, parseInt(TimeStatus[1]) * _autoStatusTime ); 222 else 223 _autoStatus = setTimeout( function(){ 224 autoStatusHandler(); 225 }, parseInt(_autoStatusTime)); 226 } 227 228 function autoStatusHandler() 229 { 230 var _div_status = ( getElement('status_jabber_expresso') != null ) ? getElement('status_jabber_expresso') : null; 231 232 if ( _div_status != null ) 233 { 234 var _status = _div_status.style.backgroundImage; 235 _status = _status.substr(_status.lastIndexOf('/') + 1); 236 _status = _status.substr(0, _status.indexOf('.')); 237 238 if( _status == "available" ) 239 { 240 if(getStatusMessage() != "") 241 TrophyIM.setPresence("xa", getStatusMessage()); 242 else 243 TrophyIM.setPresence("xa"); 244 245 _div_status.setAttribute('autoStatus','true'); 246 247 loadscript.setStatusJabber("Não Disponível","xa"); 248 } 249 } 250 } 251 252 function clrAllContacts() 253 { 254 getElement("JabberIMRoster").innerHTML = ""; 255 } 256 257 function configEvents(pObj, pEvent, pHandler) 258 { 259 if ( typeof pObj == 'object' ) 260 { 261 if ( pEvent.substring(0, 2) == 'on' ) 262 pEvent = pEvent.substring(2, pEvent.length ); 263 264 if ( arguments.length == 3 ) 265 { 266 if ( pObj.addEventListener ) 267 pObj.addEventListener(pEvent, pHandler, false ); 268 else if ( pObj.attachEvent ) 269 pObj.attachEvent( 'on' + pEvent, pHandler ); 270 } 271 else if ( arguments.length == 4 ) 272 { 273 if ( pObj.removeEventListener ) 274 pObj.removeEventListener( pEvent, pHandler, false ); 275 else if ( pObj.detachEvent ) 276 pObj.detachEvent( 'on' + pEvent, pHandler ); 277 } 278 } 279 } 280 281 function disabledNotificationNewUsers() 282 { 283 var _notification = getElement('notification_new_users_jabber') ; 284 var _statusJabber = getElement('status_jabber_expresso'); 285 286 _notification.style.display = 'none'; 287 288 _statusJabber.style.background = "url('"+path_jabberit+"templates/default/images/" + statusUserIM + ".gif') no-repeat"; 289 290 if( _timeOutNotification ) 291 clearTimeout(_timeOutNotification ); 292 293 TrophyIM.controll.notificationNewUsers = 0; 294 } 295 296 function enabledNotificationNewUsers() 297 { 298 var _notification = getElement('notification_new_users_jabber') ; 299 var _statusJabber = getElement('status_jabber_expresso'); 300 301 if( _notification && _statusJabber ) 302 { 303 if ( _notification.style.display == 'none' ) 304 { 305 _notification.style.display = 'block'; 306 307 _statusJabber.style.background = "url('"+path_jabberit+"templates/default/images/alert_mini.png') no-repeat"; 308 309 if( _timeOutNotification ) 310 clearTimeout(_timeOutNotification ); 311 312 _timeOutNotification = setTimeout( function(){ 313 enabledNotificationNewUsers(); 314 }, 2000 ); 315 } 316 else 317 { 318 _notification.style.display = 'none'; 319 320 _statusJabber.style.background = "url('"+path_jabberit+"templates/default/images/" + statusUserIM + ".gif') no-repeat"; 321 322 if( _timeOutNotification ) 323 clearTimeout(_timeOutNotification ); 324 325 _timeOutNotification = setTimeout( function(){ 326 enabledNotificationNewUsers(); 327 }, 800 ); 328 } 329 } 330 } 331 332 function fastMenu() 333 { 334 if( arguments.length > 0 ) 335 { 336 var element = arguments[0]; 337 338 if( showhidden == null ) 339 showhidden = new ShowHidden(300); 340 341 var _options = [ 342 ['Adicionar Contato', 'loadscript.addContact();' ], 343 ['Preferências', 'loadscript.preferences();'] 344 ]; 345 346 if( im_chatroom == "false" ) 347 { 348 _options[2] = [ 'Sala(s) de Bate-Papo','loadscript.getListRooms();']; 349 } 350 351 var _itens = ""; 352 353 for( var i in _options ) 354 { 355 if( _options[i].constructor == Function ) 356 continue; 357 358 _itens += '<img src="'+arrow_right.src+'"/>'; 359 _itens += '<span style="cursor:pointer; margin:3px;" onclick='+_options[i][1]+'>'; 360 _itens += _options[i][0] + '</span><br/>'; 361 } 362 363 var _optionsItens = document.createElement("div"); 364 _optionsItens.id = "fastMenu_Jabber"; 365 _optionsItens.style.marginTop = "19px"; 366 _optionsItens.style.marginLeft = "-8px"; 367 _optionsItens.className = "x-menu"; 368 _optionsItens.style.zIndex = '999999'; 369 _optionsItens.innerHTML = _itens; 370 _optionsItens.onclick = function(){ 371 showhidden.hiddenObject(false); 372 }; 373 _optionsItens.onmouseout = function(){ 374 showhidden.hiddenObject(false); 375 }; 376 _optionsItens.onmouseover = function(){ 377 showhidden.hiddenObject(true); 378 }; 355 379 356 357 358 359 360 361 362 363 364 365 366 367 function getIsIE()368 369 return SnifferBrowser.isCompatible('is_ie');370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 String = String.replace( /\(CzzzzI\)/g , " <img src='"+path_jabberit+"templates/default/images/smiles/18.gif'/> "); 380 showhidden.action('onmouseover', 'onmouseout', _optionsItens); 381 382 element.parentNode.appendChild( _optionsItens ); 383 } 384 } 385 386 function getElement( elementId ) 387 { 388 return document.getElementById( elementId ); 389 } 390 391 function getBrowserCompatible() 392 { 393 return SnifferBrowser.isLoadApp('firefox'); 394 } 395 396 function getPhotoUser( jid ) 397 { 398 try 399 { 400 var _divPhoto = getElement( jid + '__photo' ); 401 402 if( _divPhoto.style.backgroundImage.indexOf('photo.png') > 0 ) 403 { 404 var _imgUser = path_jabberit + 'inc/WebService.php?' + Date.parse( new Date ); 405 _imgUser += '&photo_ldap=' + jid; 406 407 _divPhoto.style.backgroundImage = 'url(' + _imgUser + ')'; 408 } 409 }catch(e){} 410 } 411 412 function getShowContactsOffline() 413 { 414 if( _preferencesIM[3] ) 415 { 416 var showOffline = _preferencesIM[3].split(":"); 417 418 if( showOffline[1] === "true") 419 return true; 420 else 421 return false; 422 } 423 424 return true; 425 } 426 427 function getSmiles( String ) 428 { 429 String = String.replace( /:\)|:-\)/g , " <img src='"+path_jabberit+"templates/default/images/smiles/1.gif'/> "); 430 String = String.replace( /:-D/g , " <img src='"+path_jabberit+"templates/default/images/smiles/2.gif'/> "); 431 String = String.replace( /;-\)/g , " <img src='"+path_jabberit+"templates/default/images/smiles/3.gif'/> "); 432 String = String.replace( /=-O/g , " <img src='"+path_jabberit+"templates/default/images/smiles/4.gif'/> "); 433 String = String.replace( /:P/g , " <img src='"+path_jabberit+"templates/default/images/smiles/5.gif'/> "); 434 String = String.replace( /8-\)/g , " <img src='"+path_jabberit+"templates/default/images/smiles/6.gif'/> "); 435 String = String.replace( /\>:o/g , " <img src='"+path_jabberit+"templates/default/images/smiles/7.gif'/> "); 436 String = String.replace( /:-\$/g , " <img src='"+path_jabberit+"templates/default/images/smiles/8.gif'/> "); 437 String = String.replace( /:s|:-X/g , " <img src='"+path_jabberit+"templates/default/images/smiles/9.gif'/> "); 438 String = String.replace( /:-\(/g , " <img src='"+path_jabberit+"templates/default/images/smiles/10.gif'/> "); 439 String = String.replace( /:\'\(/g , " <img src='"+path_jabberit+"templates/default/images/smiles/11.gif'/> "); 440 String = String.replace( /:\|/g , " <img src='"+path_jabberit+"templates/default/images/smiles/12.gif'/> "); 441 String = String.replace( /O:-\)/g , " <img src='"+path_jabberit+"templates/default/images/smiles/13.gif'/> "); 442 String = String.replace( /\*\*@#%/g , " <img src='"+path_jabberit+"templates/default/images/smiles/14.gif'/> "); 443 String = String.replace( /\(I\)/g , " <img src='"+path_jabberit+"templates/default/images/smiles/15.gif'/> "); 444 String = String.replace( /C28I/g , " <img src='"+path_jabberit+"templates/default/images/smiles/16.gif'/> "); 445 String = String.replace( /CS2A/g , " <img src='"+path_jabberit+"templates/default/images/smiles/17.gif' style='width:42px;height:36px;'/> "); 446 String = String.replace( /\(CzzzzI\)/g , " <img src='"+path_jabberit+"templates/default/images/smiles/18.gif'/> "); 423 447 424 return String; 425 } 426 427 function getStatusUserIM() 428 { 429 return statusUserIM; 430 } 431 432 function getStatusMessage() 433 { 434 return _statusMessage; 435 } 436 437 function getUserCurrent() 438 { 439 return userCurrent; 440 } 441 442 function getZindex() 443 { 444 return zIndex++; 445 } 446 447 function groupsHidden() 448 { 449 if( arguments.length > 0 ) 450 { 451 var _element = arguments[0]; 452 _element.style.background = "url('"+path_jabberit+"templates/default/images/arrow_right.gif') no-repeat center left"; 453 _element.onclick = function(){ groupsVisible(_element);}; 454 455 // Hidden all 456 var _elementNext = _element.nextSibling; 457 458 while( _elementNext ) 459 { 460 if( _elementNext.nodeType == 1 ) 461 _elementNext.style.display = "none"; 448 return String; 449 } 450 451 function getStatusUserIM() 452 { 453 return statusUserIM; 454 } 455 456 function getStatusMessage() 457 { 458 return _statusMessage; 459 } 460 461 function getUserCurrent() 462 { 463 return userCurrent; 464 } 465 466 function getZindex() 467 { 468 return zIndex++; 469 } 470 471 function groupsHidden() 472 { 473 if( arguments.length > 0 ) 474 { 475 var _element = arguments[0]; 476 _element.style.background = "url('"+path_jabberit+"templates/default/images/arrow_right.gif') no-repeat center left"; 477 _element.onclick = function(){ 478 groupsVisible(_element); 479 }; 480 481 // Hidden all 482 var _elementNext = _element.nextSibling; 483 484 while( _elementNext ) 485 { 486 if( _elementNext.nodeType == 1 ) 487 _elementNext.style.display = "none"; 462 488 463 _elementNext = _elementNext.nextSibling; 464 } 465 } 466 } 467 468 function groupsVisible() 469 { 470 if( arguments.length > 0 ) 471 { 472 var _element = arguments[0]; 473 _element.style.background = "url('"+path_jabberit+"templates/default/images/arrow_down.gif') no-repeat center left"; 474 _element.onclick = function(){ groupsHidden(_element);}; 475 476 // Display all 477 var _elementNext = _element.nextSibling; 478 479 while( _elementNext ) 480 { 481 if( _elementNext.nodeType == 1 && _elementNext.nodeName.toLowerCase() == "div" ) 482 { 483 var is_off = _elementNext.style.backgroundImage.indexOf("unavailable"); 484 485 if( is_off > 0 && !getShowContactsOffline()) 486 { 487 _elementNext.style.display = "none"; 488 getElement("span_show_" + _elementNext.id ).style.display = "none"; 489 _elementNext = _elementNext.nextSibling; 490 } 491 } 492 } 493 494 function groupsVisible() 495 { 496 if( arguments.length > 0 ) 497 { 498 var _element = arguments[0]; 499 _element.style.background = "url('"+path_jabberit+"templates/default/images/arrow_down.gif') no-repeat center left"; 500 _element.onclick = function(){ 501 groupsHidden(_element); 502 }; 503 504 // Display all 505 var _elementNext = _element.nextSibling; 506 507 while( _elementNext ) 508 { 509 if( _elementNext.nodeType == 1 && _elementNext.nodeName.toLowerCase() == "div" ) 510 { 511 var is_off = _elementNext.style.backgroundImage.indexOf("unavailable"); 512 513 if( is_off > 0 && !getShowContactsOffline()) 514 { 515 _elementNext.style.display = "none"; 516 getElement("span_show_" + _elementNext.id ).style.display = "none"; 489 517 490 } 491 else 492 { 493 _elementNext.style.display = "block"; 494 getElement("span_show_" + _elementNext.id ).style.display = "block"; 495 } 496 } 497 498 _elementNext = _elementNext.nextSibling; 499 } 500 } 501 } 502 503 function keyPressSearch() 504 { 505 if( arguments.length > 0 ) 506 { 507 var ev = arguments[0]; 508 var element = arguments[1]; 509 510 if ( ev.keyCode == 13 ) 511 if( element.value.length >= 3 ) 512 searchUser( element.value ); 513 else 514 alert( i18n.YOUR_SEARCH_ARGUMENT_MUST_BE_LONGER_THAN_3_CHARACTERS + '.' ); 515 } 516 } 517 518 519 function loginPage() 520 { 521 var paramsLoginPage = 522 { 523 'username' : ((( Base64.decode(getUserCurrent().jid) )) ? Base64.decode(getUserCurrent().jid) : ""), 524 'password' : ((( Base64.decode(getUserCurrent().password) )) ? Base64.decode(getUserCurrent().password) : "") 525 } 526 527 var winLoginPage = 528 { 529 id_window : "window_login_page", 530 width : 260, 531 height : 120, 532 top : 100, 533 left : 400, 534 draggable : true, 535 visible : "display", 536 resizable : true, 537 zindex : zIndex++, 538 title : "Expresso Messenger - Login", 539 closeAction : "remove", 540 content : Xtools.parse(Xtools.xml("login_page"), "loginPage.xsl", paramsLoginPage) 541 }; 542 543 _winBuild( winLoginPage ); 544 } 545 546 function loadScripts(pFiles) 547 { 548 // Load JavaScript 549 var loadJavaScript = function(pJs) 550 { 551 var newScript = document.createElement("script"); 552 newScript.setAttribute("type", "text/javascript"); 553 newScript.setAttribute("src", pJs ); 554 555 return newScript; 556 }; 557 558 // Load CSS 559 var loadStyleSheet = function(pCss) 560 { 561 var newStyle = document.createElement("link"); 562 newStyle.setAttribute("rel", "stylesheet"); 563 newStyle.setAttribute("type", "text/css"); 564 newStyle.setAttribute("href", pCss); 565 566 return newStyle; 567 }; 568 569 for(var i = 0; i < pFiles.length; i++) 570 { 571 if( pFiles[i].indexOf(".js") > -1 ) 572 document.getElementsByTagName("head")[0].appendChild(loadJavaScript(pFiles[i])); 573 574 if( pFiles[i].indexOf(".css") > -1 ) 575 document.getElementsByTagName("head")[0].appendChild(loadStyleSheet(pFiles[i])); 576 } 577 } 578 579 function notificationNewMessage() 580 { 581 var _doc = document; 582 var _id = arguments[0]; 583 var _win_name = _id.replace( /\W/g, '' ); 584 585 if ( windowPOPUP( _id ) ) 586 { 587 _doc = windowPopUp[_win_name].document; 588 } 589 590 var oldTitle = _doc.title; 591 var newTitle = "## NOVA MENSAGEM ##"; 592 593 if( timeoutId == null ) 594 { 595 timeoutId = setInterval(function() 596 { 597 _doc.title = ( _doc.title == newTitle ) ? oldTitle : newTitle; 598 }, 1000); 599 600 configEvents( _doc, 'onclick', function() 601 { 602 clearInterval(timeoutId); 603 _doc.title = oldTitle; 604 timeoutId = null; 605 }); 606 607 configEvents( _doc, 'onkeypress', function() 608 { 609 clearInterval(timeoutId); 610 _doc.title = oldTitle; 611 timeoutId = null; 612 }); 613 } 614 } 615 616 function optionsItensContact() 617 { 618 if( arguments.length > 0 ) 619 { 620 var jid = arguments[0]; 621 var coord = arguments[1]; 622 var element = getElement('itenContact_' + jid ); 623 var action = ( element.getAttribute("subscription") === "not-in-roster" ) ? "Adicionar" : "Autorizar"; 624 625 if( showhidden == null ) 626 showhidden = new ShowHidden(300); 627 628 var _options = [ 629 [ action , 'loadscript.setAutorization(\''+jid+'\')'], 630 ['Remover' , 'loadscript.removeContact(\''+jid+'\')'], 631 ['Renomear' , 'loadscript.renameContact(\''+jid+'\')'], 632 ['Trocar grupo' , 'loadscript.renameGroup(\''+jid+'\')'] 633 ]; 634 635 var _itens = ""; 636 637 for( var i in _options ) 638 { 639 if( typeof(_options[i]) == "object") 640 { 641 _itens += '<img src="'+arrow_right.src+'"/>'; 642 _itens += '<span style="cursor:pointer;margin:3px;font-weight:normal;" onclick='+_options[i][1]+'>'; 643 _itens += _options[i][0] + '</span><br/>'; 644 } 645 } 646 647 var _optionsItens = document.createElement("div"); 648 _optionsItens.className = "x-menu"; 649 _optionsItens.style.top = coord.Y; 650 _optionsItens.style.left = ( coord.X - element.offsetLeft ); 651 _optionsItens.style.zIndex = getZindex(); 652 _optionsItens.innerHTML = _itens; 653 _optionsItens.onclick = function(){ showhidden.hiddenObject(false); }; 654 _optionsItens.onmouseout = function(){ showhidden.hiddenObject(false); }; 655 _optionsItens.onmouseover = function(){ showhidden.hiddenObject(true); }; 656 657 showhidden.action('onmouseover', 'onmouseout', _optionsItens); 658 659 window.document.body.appendChild(_optionsItens); 660 } 661 } 662 663 function parse() 664 { 665 if( arguments.length == 2 ) 666 return Xtools.parse(Xtools.xml(arguments[0]), arguments[1] ); 667 668 if( arguments.length === 3 ) 669 return Xtools.parse(Xtools.xml(arguments[0]), arguments[1], arguments[2] ); 670 } 671 672 function preferences() 673 { 674 var paramPreferences = 675 { 676 'path' : path, 677 'lang1' : 'Suas Preferências', 678 'lang2' : 'Conexão', 679 'lang3' : 'Conectar Automaticamente o IM', 680 'lang4' : 'Usuários OffLine', 681 'lang5' : 'Exibir amigos Offline', 682 'lang6' : 'Salvar', 683 'lang7' : 'Cancelar', 684 'lang8' : 'Janela de Contatos', 685 'lang9' : 'Abrir janela como Pop-up', 686 'lang10' : 'Ausente', 687 'lang11' : 'Definir status de ausente depois de', 688 'lang12' : 'minutos', 689 'lang13' : 'Mostrar Contatos', 690 'lang14' : 'Mostrar contatos desconectados', 691 'langYes': 'Sim', 692 'langNo' : 'Não' 693 }; 694 695 696 var _win_preferences = 697 { 698 id_window : "jabberit_preferences", 699 width : 430, 700 height : 350, 701 top : 150, 702 left : 100, 703 draggable : true, 704 visible : "display", 705 resizable : true, 706 zindex : zIndex++, 707 title : 'Expresso Messenger - Preferências', 708 closeAction : "remove", 709 content : Xtools.parse(Xtools.xml('preferences'), 'preferences.xsl', paramPreferences) 710 }; 711 712 _winBuild(_win_preferences); 713 714 715 var _pButtons = { 716 'lang1' : 'Salvar', 717 'lang2' : 'Fechar', 718 'onclickClose' : '_winBuild("jabberit_preferences","remove");', 719 'onclickSubmit' : 'javascript:loadscript.setPreferences();' 720 }; 721 722 document.getElementById('buttons_preferences_jabberit').innerHTML = Xtools.parse(Xtools.xml('buttons_main'), 'buttons.xsl', _pButtons); 723 724 // Element openWindowJabberit 725 var value1 = _preferencesIM[0].split(':'); 726 var element1 = document.getElementById(value1[0]); 727 var valueSelect1 = value1[1]; 728 729 for(var i = 0; i < element1.options.length; i++) 730 if( element1.options[i].value == valueSelect1 ) 731 element1.options[i].selected = true; 732 733 // Element openWindowJabberitPopUp 734 var value2 = _preferencesIM[1].split(':'); 735 736 // Element flagAwayIM 737 var value3 = _preferencesIM[2].split(':'); 738 var element3 = document.getElementById(value3[0]); 739 element3.value = value3[1]; 740 741 // Element showContactsOfflineJabberit 742 var value4 = _preferencesIM[3].split(':'); 743 var element4 = document.getElementById(value4[0]); 744 var valueSelect4 = value4[1]; 745 for(var i = 0; i < element4.options.length; i++) 746 if( element4.options[i].value == valueSelect4 ) 747 element4.options[i].selected = true; 748 } 749 750 function removeContact( jid ) 751 { 752 TrophyIM.removeContact( jid ); 753 } 754 755 function removeElement( ) 756 { 757 if( arguments.length > 0 ) 758 { 759 var _element = arguments[0] 760 761 if( _element != null ) 762 { 763 _element.parentNode.removeChild( _element ); 764 } 765 } 766 } 767 768 function removeGroup() 769 { 770 var _parent = arguments[0]; 771 772 if( _parent.childNodes.length <= 2 ) 773 _parent.parentNode.removeChild(_parent); 774 } 775 776 function renameContact() 777 { 778 if( arguments.length > 0 ) 779 { 780 var _jid = arguments[0]; 781 782 TrophyIM.renameContact( _jid ); 783 } 784 } 785 786 function renameGroup() 787 { 788 if( arguments.length > 0 ) 789 { 790 var _jid = arguments[0]; 791 792 TrophyIM.renameGroup( _jid ); 793 } 794 } 795 796 function rosterDiv() 797 { 798 var _rosterDiv = function() 799 { 800 801 var winRosterDiv = 802 { 803 id_window : "window_Roster_im", 804 width : 250, 805 height : 410, 806 top : 50, 807 left : -1500, 808 leftOld : 50, 809 draggable : true, 810 visible : "display", 811 resizable : true, 812 zindex : zIndex++, 813 title : "Expresso Messenger - Contatos", 814 closeAction : "hidden", 815 content : "" 816 }; 817 818 if( _preferencesIM[0] == "openWindowJabberit:false" ) 819 { 820 winRosterDiv.left = 50; 821 winRosterDiv.leftOld = -1500; 822 } 823 824 if( SnifferBrowser.isCompatible('ie8','firefox3','firefox4','epiphany2','iceweasel3') ) 825 { 826 var _idUser = Base64.decode(getUserCurrent().jid); 827 828 var paramListContact = 829 { 830 'idUser' : _idUser, 831 'full_name' : (( fullName.length < 25 ) ? fullName : ( fullName.substring( 0, 25) + "...")), 832 'path_jabberit' : path_jabberit, 833 'help_expresso' : help_expresso, 834 'zIndex_' : zIndex++ 835 }; 836 837 winRosterDiv.content = Xtools.parse(Xtools.xml("contacts_list"),"contactsList.xsl", paramListContact) 838 839 } 840 else 841 { 842 var paramList = 843 { 844 'path_jabberit' : path_jabberit 845 }; 846 847 winRosterDiv.width = 280; 848 winRosterDiv.height = 430; 849 winRosterDiv.content = Xtools.parse(Xtools.xml("navigator"),"navigatorCompatible.xsl", paramList); 850 } 851 852 _winBuild( winRosterDiv ); 853 854 // Photo User 855 getPhotoUser(_idUser); 856 } 857 858 setTimeout( function(){ _rosterDiv(); }, 200 ); 859 } 860 861 function searchUser() 862 { 863 var _input = getElement('search_user_jabber'); 864 865 if( _input.value.length >= 3 ) 866 addUser.search(); 867 else 868 alert( i18n.YOUR_SEARCH_ARGUMENT_MUST_BE_LONGER_THAN_3_CHARACTERS + '.' ); 869 } 870 871 function setAutorization() 872 { 873 var divItenContact = null; 874 875 if( arguments.length > 0 ) 876 { 877 var jidTo = arguments[0]; 878 879 if( getElement('itenContact_' + jidTo) ) 880 divItenContact = getElement('itenContact_' + jidTo ); 881 } 882 883 if( divItenContact ) 884 { 885 var subscription = divItenContact.getAttribute('subscription'); 886 887 switch(subscription) 888 { 889 case 'from': 518 } 519 else 520 { 521 _elementNext.style.display = "block"; 522 getElement("span_show_" + _elementNext.id ).style.display = "block"; 523 } 524 } 525 526 _elementNext = _elementNext.nextSibling; 527 } 528 } 529 } 530 531 function keyPressSearch() 532 { 533 if( arguments.length > 0 ) 534 { 535 var ev = arguments[0]; 536 var element = arguments[1]; 537 538 if ( ev.keyCode == 13 ) 539 if( element.value.length >= 3 ) 540 searchUser( element.value ); 541 else 542 alert( i18n.YOUR_SEARCH_ARGUMENT_MUST_BE_LONGER_THAN_3_CHARACTERS + '.' ); 543 } 544 } 545 546 547 function loginPage() 548 { 549 var paramsLoginPage = 550 { 551 'username' : ((( Base64.decode(getUserCurrent().jid) )) ? Base64.decode(getUserCurrent().jid) : ""), 552 'password' : ((( Base64.decode(getUserCurrent().password) )) ? Base64.decode(getUserCurrent().password) : "") 553 } 554 555 var winLoginPage = 556 { 557 id_window : "window_login_page", 558 width : 260, 559 height : 120, 560 top : 100, 561 left : 400, 562 draggable : true, 563 visible : "display", 564 resizable : true, 565 zindex : zIndex++, 566 title : "Expresso Messenger - Login", 567 closeAction : "remove", 568 content : Xtools.parse(Xtools.xml("login_page"), "loginPage.xsl", paramsLoginPage) 569 }; 570 571 _winBuild( winLoginPage ); 572 } 573 574 function loadScripts(pFiles) 575 { 576 // Load JavaScript 577 var loadJavaScript = function(pJs) 578 { 579 var newScript = document.createElement("script"); 580 newScript.setAttribute("type", "text/javascript"); 581 newScript.setAttribute("src", pJs ); 582 583 return newScript; 584 }; 585 586 // Load CSS 587 var loadStyleSheet = function(pCss) 588 { 589 var newStyle = document.createElement("link"); 590 newStyle.setAttribute("rel", "stylesheet"); 591 newStyle.setAttribute("type", "text/css"); 592 newStyle.setAttribute("href", pCss); 593 594 return newStyle; 595 }; 596 597 for(var i = 0; i < pFiles.length; i++) 598 { 599 if( pFiles[i].indexOf(".js") > -1 ) 600 document.getElementsByTagName("head")[0].appendChild(loadJavaScript(pFiles[i])); 601 602 if( pFiles[i].indexOf(".css") > -1 ) 603 document.getElementsByTagName("head")[0].appendChild(loadStyleSheet(pFiles[i])); 604 } 605 } 606 607 function notificationNewMessage() 608 { 609 var _doc = document; 610 var _id = arguments[0]; 611 var _win_name = _id.replace( /\W/g, '' ); 612 613 if ( windowPOPUP( _id ) ) 614 { 615 _doc = windowPopUp[_win_name].document; 616 } 617 618 var oldTitle = _doc.title; 619 var newTitle = "## NOVA MENSAGEM ##"; 620 621 if( timeoutId == null ) 622 { 623 timeoutId = setInterval(function() 624 { 625 _doc.title = ( _doc.title == newTitle ) ? oldTitle : newTitle; 626 }, 1000); 627 628 configEvents( _doc, 'onclick', function() 629 { 630 clearInterval(timeoutId); 631 _doc.title = oldTitle; 632 timeoutId = null; 633 }); 634 635 configEvents( _doc, 'onkeypress', function() 636 { 637 clearInterval(timeoutId); 638 _doc.title = oldTitle; 639 timeoutId = null; 640 }); 641 } 642 } 643 644 function optionsItensContact() 645 { 646 if( arguments.length > 0 ) 647 { 648 var jid = arguments[0]; 649 var coord = arguments[1]; 650 var element = getElement('itenContact_' + jid ); 651 var action = ( element.getAttribute("subscription") === "not-in-roster" ) ? "Adicionar" : "Autorizar"; 652 653 if( showhidden == null ) 654 showhidden = new ShowHidden(300); 655 656 var _options = [ 657 [ action , 'loadscript.setAutorization(\''+jid+'\')'], 658 ['Remover' , 'loadscript.removeContact(\''+jid+'\')'], 659 ['Renomear' , 'loadscript.renameContact(\''+jid+'\')'], 660 ['Trocar grupo' , 'loadscript.renameGroup(\''+jid+'\')'] 661 ]; 662 663 var _itens = ""; 664 665 for( var i in _options ) 666 { 667 if( typeof(_options[i]) == "object") 668 { 669 _itens += '<img src="'+arrow_right.src+'"/>'; 670 _itens += '<span style="cursor:pointer;margin:3px;font-weight:normal;" onclick='+_options[i][1]+'>'; 671 _itens += _options[i][0] + '</span><br/>'; 672 } 673 } 674 675 var _optionsItens = document.createElement("div"); 676 _optionsItens.className = "x-menu"; 677 _optionsItens.style.top = coord.Y; 678 _optionsItens.style.left = ( coord.X - element.offsetLeft ); 679 _optionsItens.style.zIndex = getZindex(); 680 _optionsItens.innerHTML = _itens; 681 _optionsItens.onclick = function(){ 682 showhidden.hiddenObject(false); 683 }; 684 _optionsItens.onmouseout = function(){ 685 showhidden.hiddenObject(false); 686 }; 687 _optionsItens.onmouseover = function(){ 688 showhidden.hiddenObject(true); 689 }; 690 691 showhidden.action('onmouseover', 'onmouseout', _optionsItens); 692 693 window.document.body.appendChild(_optionsItens); 694 } 695 } 696 697 function parse() 698 { 699 if( arguments.length == 2 ) 700 return Xtools.parse(Xtools.xml(arguments[0]), arguments[1] ); 701 702 if( arguments.length === 3 ) 703 return Xtools.parse(Xtools.xml(arguments[0]), arguments[1], arguments[2] ); 704 } 705 706 function preferences() 707 { 708 var paramPreferences = 709 { 710 'path' : path, 711 'lang1' : 'Suas Preferências', 712 'lang2' : 'Conexão', 713 'lang3' : 'Conectar Automaticamente o IM', 714 'lang4' : 'Usuários OffLine', 715 'lang5' : 'Exibir amigos Offline', 716 'lang6' : 'Salvar', 717 'lang7' : 'Cancelar', 718 'lang8' : 'Janela de Contatos', 719 'lang9' : 'Abrir janela como Pop-up', 720 'lang10' : 'Ausente', 721 'lang11' : 'Definir status de ausente depois de', 722 'lang12' : 'minutos', 723 'lang13' : 'Mostrar Contatos', 724 'lang14' : 'Mostrar contatos desconectados', 725 'langYes': 'Sim', 726 'langNo' : 'Não' 727 }; 728 729 730 var _win_preferences = 731 { 732 id_window : "jabberit_preferences", 733 width : 430, 734 height : 350, 735 top : 150, 736 left : 100, 737 draggable : true, 738 visible : "display", 739 resizable : true, 740 zindex : zIndex++, 741 title : 'Expresso Messenger - Preferências', 742 closeAction : "remove", 743 content : Xtools.parse(Xtools.xml('preferences'), 'preferences.xsl', paramPreferences) 744 }; 745 746 _winBuild(_win_preferences); 747 748 749 var _pButtons = { 750 'lang1' : 'Salvar', 751 'lang2' : 'Fechar', 752 'onclickClose' : '_winBuild("jabberit_preferences","remove");', 753 'onclickSubmit' : 'javascript:loadscript.setPreferences();' 754 }; 755 756 document.getElementById('buttons_preferences_jabberit').innerHTML = Xtools.parse(Xtools.xml('buttons_main'), 'buttons.xsl', _pButtons); 757 758 // Element openWindowJabberit 759 var value1 = _preferencesIM[0].split(':'); 760 var element1 = document.getElementById(value1[0]); 761 var valueSelect1 = value1[1]; 762 763 for(var i = 0; i < element1.options.length; i++) 764 if( element1.options[i].value == valueSelect1 ) 765 element1.options[i].selected = true; 766 767 // Element openWindowJabberitPopUp 768 var value2 = _preferencesIM[1].split(':'); 769 770 // Element flagAwayIM 771 var value3 = _preferencesIM[2].split(':'); 772 var element3 = document.getElementById(value3[0]); 773 element3.value = value3[1]; 774 775 // Element showContactsOfflineJabberit 776 var value4 = _preferencesIM[3].split(':'); 777 var element4 = document.getElementById(value4[0]); 778 var valueSelect4 = value4[1]; 779 for(var i = 0; i < element4.options.length; i++) 780 if( element4.options[i].value == valueSelect4 ) 781 element4.options[i].selected = true; 782 } 783 784 function removeContact( jid ) 785 { 786 TrophyIM.removeContact( jid ); 787 } 788 789 function removeElement( ) 790 { 791 if( arguments.length > 0 ) 792 { 793 var _element = arguments[0] 794 795 if( _element != null ) 796 { 797 _element.parentNode.removeChild( _element ); 798 } 799 } 800 } 801 802 function removeGroup() 803 { 804 var _parent = arguments[0]; 805 806 if( _parent.childNodes.length <= 2 ) 807 _parent.parentNode.removeChild(_parent); 808 } 809 810 function renameContact() 811 { 812 if( arguments.length > 0 ) 813 { 814 var _jid = arguments[0]; 815 816 TrophyIM.renameContact( _jid ); 817 } 818 } 819 820 function renameGroup() 821 { 822 if( arguments.length > 0 ) 823 { 824 var _jid = arguments[0]; 825 826 TrophyIM.renameGroup( _jid ); 827 } 828 } 829 830 function rosterDiv() 831 { 832 var _rosterDiv = function() 833 { 834 835 var winRosterDiv = 836 { 837 id_window : "window_Roster_im", 838 width : 250, 839 height : 410, 840 top : 50, 841 left : -1500, 842 leftOld : 50, 843 draggable : true, 844 visible : "display", 845 resizable : true, 846 zindex : zIndex++, 847 title : "Expresso Messenger - Contatos", 848 closeAction : "hidden", 849 content : "" 850 }; 851 852 if( _preferencesIM[0] == "openWindowJabberit:false" ) 853 { 854 winRosterDiv.left = 50; 855 winRosterDiv.leftOld = -1500; 856 } 857 858 if( SnifferBrowser.isLoadApp() ) 859 { 860 var _idUser = Base64.decode(getUserCurrent().jid); 861 862 var paramListContact = 863 { 864 'idUser' : _idUser, 865 'full_name' : (( fullName.length < 25 ) ? fullName : ( fullName.substring( 0, 25) + "...")), 866 'path_jabberit' : path_jabberit, 867 'help_expresso' : help_expresso, 868 'zIndex_' : zIndex++ 869 }; 870 871 winRosterDiv.content = Xtools.parse(Xtools.xml("contacts_list"),"contactsList.xsl", paramListContact) 872 873 } 874 else 875 { 876 var paramList = 877 { 878 'path' : path_phpgwapi 879 }; 880 881 winRosterDiv.width = 280; 882 winRosterDiv.height = 430; 883 winRosterDiv.content = Xtools.parse( Xtools.xml("navigator"), path_phpgwapi + "templates/default/xsl/navigatorCompatible.xsl" , paramList); 884 } 885 886 _winBuild( winRosterDiv ); 887 888 // Photo User 889 getPhotoUser(_idUser); 890 } 891 892 setTimeout( function(){ 893 _rosterDiv(); 894 }, 200 ); 895 } 896 897 function searchUser() 898 { 899 var _input = getElement('search_user_jabber'); 900 901 if( _input.value.length >= 3 ) 902 addUser.search(); 903 else 904 alert( i18n.YOUR_SEARCH_ARGUMENT_MUST_BE_LONGER_THAN_3_CHARACTERS + '.' ); 905 } 906 907 function setAutorization() 908 { 909 var divItenContact = null; 910 911 if( arguments.length > 0 ) 912 { 913 var jidTo = arguments[0]; 914 915 if( getElement('itenContact_' + jidTo) ) 916 divItenContact = getElement('itenContact_' + jidTo ); 917 } 918 919 if( divItenContact ) 920 { 921 var subscription = divItenContact.getAttribute('subscription'); 922 923 switch(subscription) 924 { 925 case 'from': 890 926 891 892 893 894 927 TrophyIM.setAutorization( jidTo, Base64.decode(this.getUserCurrent().jid ), 'subscribe'); 928 break; 929 930 case 'subscribe' : 895 931 896 897 932 TrophyIM.setAutorization( jidTo, Base64.decode(this.getUserCurrent().jid ), 'subscribed'); 933 break; 898 934 899 935 case 'none' : 900 936 901 902 937 TrophyIM.setAutorization( jidTo, Base64.decode(this.getUserCurrent().jid ), 'subscribe'); 938 break; 903 939 904 case 'to' :940 case 'to' : 905 941 906 907 908 909 910 942 TrophyIM.setAutorization( jidTo, Base64.decode(this.getUserCurrent().jid ), 'subscribed'); 943 removeElement( getElement('itenContactNotification_' + jidTo ) ); 944 break; 945 946 case 'not-in-roster': 911 947 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 948 TrophyIM.setAutorization( jidTo, Base64.decode(this.getUserCurrent().jid), 'subscribed'); 949 addUser.add( jidTo ); 950 break; 951 } 952 } 953 } 954 955 function setMessageStatus() 956 { 957 if( arguments.length > 0 ) 958 { 959 var _element = arguments[0]; 960 var _parent = _element.parentNode; 961 962 if( _element.nodeName.toLowerCase() == "label") 963 { 964 var _input = document.createElement("input"); 965 _input.size = "35"; 966 _input.maxlength = "35"; 967 _input.style.border = "0"; 968 _input.value = _element.innerHTML; 933 969 934 // OnkeyUp 935 configEvents( _input, "onkeyup", function(e) 936 { 937 if( e.keyCode == 13 ) loadscript.setMessageStatus(_input, _element); 938 } 939 ); 940 941 // Onblur 942 configEvents(_input, "onblur", function(){ loadscript.setMessageStatus(_input, _element)}); 970 // OnkeyUp 971 configEvents( _input, "onkeyup", function(e) 972 { 973 if( e.keyCode == 13 ) loadscript.setMessageStatus(_input, _element); 974 } 975 ); 976 977 // Onblur 978 configEvents(_input, "onblur", function(){ 979 loadscript.setMessageStatus(_input, _element) 980 }); 943 981 944 982 945 946 947 948 949 983 if( _parent != null ) 984 { 985 // Remove label 986 if( _element != null ) 987 _parent.removeChild( _element ); 950 988 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 989 // Add Input 990 if( _input != null ) 991 _parent.appendChild( _input ); 992 } 993 994 _input.focus(); 995 _input.select(); 996 } 997 else 998 { 999 var _label = arguments[1]; 1000 _statusMessage = _element.value.replace(/^\(+|\)+$/g,""); 1001 1002 if( ( _statusMessage = _statusMessage.replace(/^\s+|\s+$|^\n|\n$/g,"") ) != "") 1003 _label.innerHTML = "( " + _statusMessage + " )"; 1004 else 1005 _label.innerHTML = "( " + i18n.TYPE_YOUR_MESSAGE_HERE_STATUS + " )"; 1006 1007 if( _parent != null ) 1008 { 1009 // Remove Input 1010 if( _element != null ) 1011 _parent.removeChild( _element ); 974 1012 975 // Add Label 976 if( _label != null ) 977 _parent.appendChild( _label ); 978 } 979 980 // Send Status Message 981 _statusMessage = ( ( _statusMessage != i18n.TYPE_YOUR_MESSAGE_HERE_STATUS ) ? _statusMessage : "" ); 982 983 TrophyIM.setPresence("status", _statusMessage ); 984 } 985 } 986 } 987 988 function setPreferences() 989 { 990 // Element openWindowJabberit 991 var elementOpenW = document.getElementById('openWindowJabberit'); 992 var value = ''; 993 994 for(var i = 0 ; i < elementOpenW.options.length; i++) 995 if( elementOpenW.options[i].selected == true) 996 { 997 value = 'preferences1=openWindowJabberit:' + elementOpenW.options[i].value; 998 _preferencesIM[0] = 'openWindowJabberit:' + elementOpenW.options[i].value; 999 } 1000 1001 // Element openWindowJabberitPopUp 1002 value += '&preferences2=openWindowJabberitPopUp:false'; 1003 _preferencesIM[1] = 'openWindowJabberitPopUp:false'; 1004 1005 // Element flagAwayIM 1006 var elementFlagIM = document.getElementById('flagAwayIM'); 1007 1008 if( elementFlagIM.value.length > 0 && parseInt(elementFlagIM.value) > 0 ) 1009 { 1010 _preferencesIM[2] = 'flagAwayIM:' + elementFlagIM.value; 1011 value += '&preferences3=flagAwayIM:' + elementFlagIM.value; 1012 } 1013 else 1014 { 1015 alert('Informe um valor igual ou maior que 1!'); 1016 return false; 1017 } 1018 1019 // Element showContactsOfflineJabberit 1020 var elementShowOffline = document.getElementById('showContactsOfflineJabberit'); 1021 1022 for(var i = 0 ; i < elementShowOffline.options.length; i++) 1023 if( elementShowOffline.options[i].selected == true) 1024 { 1025 _preferencesIM[3] = 'showContactsOfflineJabberit:' + elementShowOffline.options[i].value; 1026 value += '&preferences4=showContactsOfflineJabberit:' + elementShowOffline.options[i].value; 1027 } 1028 1029 // Save Preferences 1030 conn.go('p.pf.setPreferences', 1031 function(data) 1032 { 1033 if( data == 'false' ) 1034 { 1035 alert('Erro salvando suas preferências!'); 1036 } 1037 1038 _winBuild('jabberit_preferences', 'remove'); 1039 }, 1040 value); 1041 } 1042 1043 function setPresence() 1044 { 1045 if( arguments.length > 0 ) 1046 { 1047 var element = arguments[0]; 1048 1049 if( showhidden == null ) 1050 showhidden = new ShowHidden(300); 1051 1052 var _status = [ 1053 ['Afastado', 'away', '<img src="'+path_jabberit+'templates/default/images/away.gif" />'], 1054 ['Disponível', 'available', '<img src="'+path_jabberit+'templates/default/images/available.gif" />'], 1055 ['Livre p/ Conversa', 'chat', '<img src="'+path_jabberit+'templates/default/images/chat.gif" />'], 1056 ['Não Disponível', 'xa', '<img src="'+path_jabberit+'templates/default/images/xa.gif" />'], 1057 ['Ocupado', 'dnd', '<img src="'+path_jabberit+'templates/default/images/dnd.gif" />'], 1058 ['Desconectado', 'unavailable', '<img src="'+path_jabberit+'templates/default/images/unavailable.gif" />'], 1059 ['Mensagem de Status...', 'status', '<img src="'+path_jabberit+'templates/default/images/message_normal.gif" />'], 1060 ]; 1061 1062 var _itens = ""; 1063 1064 for( var i in _status ) 1065 { 1066 if( typeof( _status[i]) == "object" ) 1067 { 1068 _itens += '<span style="cursor:pointer;" onclick="TrophyIM.setPresence(\''+_status[i][1]+'\'); loadscript.setStatusJabber(\''+_status[i][0]+'\',\''+_status[i][1]+'\');">'; 1069 _itens += _status[i][2]+ "<span style='margin:3px;'>" + _status[i][0] + "</span></span><br/>"; 1070 } 1071 } 1072 1073 var _statusItens = document.createElement("div"); 1074 _statusItens.style.marginTop = "65px"; 1075 _statusItens.style.marginLeft = "67px"; 1076 _statusItens.className = "x-menu"; 1077 _statusItens.style.zIndex = '99999'; 1078 _statusItens.innerHTML = _itens; 1079 _statusItens.onclick = function(){ showhidden.hiddenObject(false); }; 1013 // Add Label 1014 if( _label != null ) 1015 _parent.appendChild( _label ); 1016 } 1017 1018 // Send Status Message 1019 _statusMessage = ( ( _statusMessage != i18n.TYPE_YOUR_MESSAGE_HERE_STATUS ) ? _statusMessage : "" ); 1020 1021 TrophyIM.setPresence("status", _statusMessage ); 1022 } 1023 } 1024 } 1025 1026 function setPreferences() 1027 { 1028 // Element openWindowJabberit 1029 var elementOpenW = document.getElementById('openWindowJabberit'); 1030 var value = ''; 1031 1032 for(var i = 0 ; i < elementOpenW.options.length; i++) 1033 if( elementOpenW.options[i].selected == true) 1034 { 1035 value = 'preferences1=openWindowJabberit:' + elementOpenW.options[i].value; 1036 _preferencesIM[0] = 'openWindowJabberit:' + elementOpenW.options[i].value; 1037 } 1038 1039 // Element openWindowJabberitPopUp 1040 value += '&preferences2=openWindowJabberitPopUp:false'; 1041 _preferencesIM[1] = 'openWindowJabberitPopUp:false'; 1042 1043 // Element flagAwayIM 1044 var elementFlagIM = document.getElementById('flagAwayIM'); 1045 1046 if( elementFlagIM.value.length > 0 && parseInt(elementFlagIM.value) > 0 ) 1047 { 1048 _preferencesIM[2] = 'flagAwayIM:' + elementFlagIM.value; 1049 value += '&preferences3=flagAwayIM:' + elementFlagIM.value; 1050 } 1051 else 1052 { 1053 alert('Informe um valor igual ou maior que 1!'); 1054 return false; 1055 } 1056 1057 // Element showContactsOfflineJabberit 1058 var elementShowOffline = document.getElementById('showContactsOfflineJabberit'); 1059 1060 for(var i = 0 ; i < elementShowOffline.options.length; i++) 1061 if( elementShowOffline.options[i].selected == true) 1062 { 1063 _preferencesIM[3] = 'showContactsOfflineJabberit:' + elementShowOffline.options[i].value; 1064 value += '&preferences4=showContactsOfflineJabberit:' + elementShowOffline.options[i].value; 1065 } 1066 1067 // Save Preferences 1068 conn.go('p.pf.setPreferences', 1069 function(data) 1070 { 1071 if( data == 'false' ) 1072 { 1073 alert('Erro salvando suas preferências!'); 1074 } 1075 1076 _winBuild('jabberit_preferences', 'remove'); 1077 }, 1078 value); 1079 } 1080 1081 function setPresence() 1082 { 1083 if( arguments.length > 0 ) 1084 { 1085 var element = arguments[0]; 1086 1087 if( showhidden == null ) 1088 showhidden = new ShowHidden(300); 1089 1090 var _status = [ 1091 ['Afastado', 'away', '<img src="'+path_jabberit+'templates/default/images/away.gif" />'], 1092 ['Disponível', 'available', '<img src="'+path_jabberit+'templates/default/images/available.gif" />'], 1093 ['Livre p/ Conversa', 'chat', '<img src="'+path_jabberit+'templates/default/images/chat.gif" />'], 1094 ['Não Disponível', 'xa', '<img src="'+path_jabberit+'templates/default/images/xa.gif" />'], 1095 ['Ocupado', 'dnd', '<img src="'+path_jabberit+'templates/default/images/dnd.gif" />'], 1096 ['Desconectado', 'unavailable', '<img src="'+path_jabberit+'templates/default/images/unavailable.gif" />'], 1097 ['Mensagem de Status...', 'status', '<img src="'+path_jabberit+'templates/default/images/message_normal.gif" />'], 1098 ]; 1099 1100 var _itens = ""; 1101 1102 for( var i in _status ) 1103 { 1104 if( typeof( _status[i]) == "object" ) 1105 { 1106 _itens += '<span style="cursor:pointer;" onclick="TrophyIM.setPresence(\''+_status[i][1]+'\'); loadscript.setStatusJabber(\''+_status[i][0]+'\',\''+_status[i][1]+'\');">'; 1107 _itens += _status[i][2]+ "<span style='margin:3px;'>" + _status[i][0] + "</span></span><br/>"; 1108 } 1109 } 1110 1111 var _statusItens = document.createElement("div"); 1112 _statusItens.style.marginTop = "65px"; 1113 _statusItens.style.marginLeft = "67px"; 1114 _statusItens.className = "x-menu"; 1115 _statusItens.style.zIndex = '99999'; 1116 _statusItens.innerHTML = _itens; 1117 _statusItens.onclick = function(){ 1118 showhidden.hiddenObject(false); 1119 }; 1080 1120 1081 showhidden.action('onmouseover', 'onmouseout', _statusItens); 1082 1083 element.parentNode.onmouseout = function(){ showhidden.hiddenObject(false); }; 1084 element.parentNode.onmouseover = function(){ showhidden.hiddenObject(true); }; 1085 element.parentNode.appendChild(_statusItens); 1086 } 1087 } 1088 1089 function setSelectEditable(element, top, left ) 1090 { 1091 if( getElement('selectBox0') == null ) 1092 selectEditable.create(element, top, left ); 1093 } 1094 1095 function setStatusJabber() 1096 { 1097 if( arguments.length > 0 ) 1098 { 1099 if( arguments[1] != 'status' ) 1100 { 1101 var _text = arguments[0]; 1102 var _img = statusUserIM = arguments[1]; 1103 1104 getElement('statusJabberText').innerHTML = _text; 1105 getElement('statusJabberImg').style.background = "url('"+path_jabberit+"templates/default/images/"+_img+".gif')"; 1106 getElement('status_jabber_expresso').style.background = "url('"+path_jabberit+"templates/default/images/"+_img+".gif') no-repeat"; 1107 } 1108 } 1109 } 1110 1111 function _setUserCurrent( _user ) 1112 { 1113 userCurrent = 1114 { 1115 'jid' : _user.jid.substring(11, _user.jid.length), 1116 'password' : _user.password.substring(11, _user.password.length) 1117 } 1118 } 1119 1120 function setUserCurrent() 1121 { 1122 if( getUserCurrent() == null ) 1123 { 1124 conn.go('p.ff.data_0', 1125 function(_User) 1126 { 1127 conn.go('p.ff.data_1', 1128 function(_pass) 1129 { 1130 _setUserCurrent( { jid : _User, password : _pass } ); 1131 }); 1132 }); 1133 } 1134 } 1135 1136 var _stylesheets = [ ]; 1137 var _links = document.getElementsByTagName( 'link' ); 1138 1139 for ( var i = 0; i < _links.length; i++ ) 1140 if ( _links.item( i ).type && _links.item( i ).type.toLowerCase( ) == 'text/css' ) 1141 _stylesheets[ _stylesheets.length ] = _links.item( i ); 1142 1143 function windowPOPUP() 1144 { 1145 var _id = arguments[0]; 1146 var _win_name = _id.replace( /\W/g, '' ); 1147 1148 if ( arguments.length == 1 ) 1149 { 1150 if ( windowPopUp[_win_name] ) 1151 return true; 1152 else 1153 return false; 1154 } 1155 1156 if( arguments.length == 2 ) 1157 { 1158 if( !windowPopUp[_win_name] ) 1159 { 1160 windowPopUp[_win_name] = window.open( '', _win_name + '__popup', 'height=355,width=380,top=50,left=50,toolbar=no,menubar=no,resizable=no,scrollbars=no,status=no,location=no,titlebar=no'); 1161 var tmp = windowPopUp[_win_name].document; 1162 1163 tmp.write('<html><head>'); 1164 tmp.write('</head><body>'); 1165 tmp.write('</body></html>'); 1166 tmp.close(); 1167 1168 for ( var i = 0; i < _stylesheets.length; i++ ) 1169 tmp.documentElement.getElementsByTagName( 'head' ).item(0).appendChild( _stylesheets[ i ].cloneNode( true ) ); 1170 1171 var divPOP = getElement( _id + "__popUp" ); 1172 divPOP.style.background = "url('"+path_jabberit+"templates/default/images/icon_down.png') no-repeat"; 1173 divPOP.innerHTML = "PopIn"; 1121 showhidden.action('onmouseover', 'onmouseout', _statusItens); 1122 1123 element.parentNode.onmouseout = function(){ 1124 showhidden.hiddenObject(false); 1125 }; 1126 element.parentNode.onmouseover = function(){ 1127 showhidden.hiddenObject(true); 1128 }; 1129 element.parentNode.appendChild(_statusItens); 1130 } 1131 } 1132 1133 function setSelectEditable(element, top, left ) 1134 { 1135 if( getElement('selectBox0') == null ) 1136 selectEditable.create(element, top, left ); 1137 } 1138 1139 function setStatusJabber() 1140 { 1141 if( arguments.length > 0 ) 1142 { 1143 if( arguments[1] != 'status' ) 1144 { 1145 var _text = arguments[0]; 1146 var _img = statusUserIM = arguments[1]; 1147 1148 getElement('statusJabberText').innerHTML = _text; 1149 getElement('statusJabberImg').style.background = "url('"+path_jabberit+"templates/default/images/"+_img+".gif')"; 1150 getElement('status_jabber_expresso').style.background = "url('"+path_jabberit+"templates/default/images/"+_img+".gif') no-repeat"; 1151 } 1152 } 1153 } 1154 1155 function _setUserCurrent( _user ) 1156 { 1157 userCurrent = 1158 { 1159 'jid' : _user.jid.substring(11, _user.jid.length), 1160 'password' : _user.password.substring(11, _user.password.length) 1161 } 1162 } 1163 1164 function setUserCurrent() 1165 { 1166 if( getUserCurrent() == null ) 1167 { 1168 conn.go('p.ff.data_0', 1169 function(_User) 1170 { 1171 conn.go('p.ff.data_1', 1172 function(_pass) 1173 { 1174 _setUserCurrent( { 1175 jid : _User, 1176 password : _pass 1177 } ); 1178 }); 1179 }); 1180 } 1181 } 1182 1183 var _stylesheets = [ ]; 1184 var _links = document.getElementsByTagName( 'link' ); 1185 1186 for ( var i = 0; i < _links.length; i++ ) 1187 if ( _links.item( i ).type && _links.item( i ).type.toLowerCase( ) == 'text/css' ) 1188 _stylesheets[ _stylesheets.length ] = _links.item( i ); 1189 1190 function windowPOPUP() 1191 { 1192 var _id = arguments[0]; 1193 var _win_name = _id.replace( /\W/g, '' ); 1194 1195 if ( arguments.length == 1 ) 1196 { 1197 if ( windowPopUp[_win_name] ) 1198 return true; 1199 else 1200 return false; 1201 } 1202 1203 if( arguments.length == 2 ) 1204 { 1205 if( !windowPopUp[_win_name] ) 1206 { 1207 windowPopUp[_win_name] = window.open( '', _win_name + '__popup', 'height=355,width=380,top=50,left=50,toolbar=no,menubar=no,resizable=no,scrollbars=no,status=no,location=no,titlebar=no'); 1208 var tmp = windowPopUp[_win_name].document; 1209 1210 tmp.write('<html><head>'); 1211 tmp.write('</head><body>'); 1212 tmp.write('</body></html>'); 1213 tmp.close(); 1214 1215 for ( var i = 0; i < _stylesheets.length; i++ ) 1216 tmp.documentElement.getElementsByTagName( 'head' ).item(0).appendChild( _stylesheets[ i ].cloneNode( true ) ); 1217 1218 var divPOP = getElement( _id + "__popUp" ); 1219 divPOP.style.background = "url('"+path_jabberit+"templates/default/images/icon_down.png') no-repeat"; 1220 divPOP.innerHTML = "PopIn"; 1174 1221 1175 1176 1177 1178 1179 1222 function _close( ) 1223 { 1224 windowPopUp[_win_name].close(); 1225 configEvents( divPOP ,'onclick', _close, true ); 1226 } 1180 1227 1181 configEvents( divPOP ,'onclick', _close ); 1182 1183 var _content = tmp.documentElement.getElementsByTagName( 'body' ).item(0).appendChild( getElement(_id + '__chatBox' ).parentNode ); 1184 1185 _content.firstChild.scrollTop = _content.firstChild.scrollHeight; 1186 1187 configEvents( windowPopUp[_win_name] ,'onbeforeunload', function() 1188 { 1189 delete windowPopUp[_win_name]; 1190 divPOP.style.background = "url('"+path_jabberit+"templates/default/images/icon_up.png') no-repeat"; 1191 divPOP.innerHTML = "PopUp"; 1192 divPOP.onclick = function(){ loadscript.windowPOPUP( _id , true ); }; 1193 _winBuild( 'window_chat_area_' + _id, "display" ).content( true ); 1194 }); 1195 1196 _winBuild( 'window_chat_area_' + _id, 'hidden' ); 1197 } 1198 } 1199 } 1200 1201 function windowNotificationNewUsers() 1202 { 1203 var _users = Xtools.xml('notification_new_users'); 1204 1205 for( var user in TrophyIM.rosterObj.roster ) 1206 { 1207 if ( TrophyIM.rosterObj.roster[ user ].constructor == Function ) 1208 continue; 1209 1210 if( TrophyIM.rosterObj.roster[ user ].contact.jid != Base64.decode( loadscript.getUserCurrent().jid) ) 1211 { 1212 var _subscription = TrophyIM.rosterObj.roster[user].contact.subscription; 1213 1214 if ( _subscription == 'to' || _subscription == 'not-in-roster' ) 1215 { 1216 var _user = _users.createElement('user'); 1217 var _jid = _users.createElement('jid'); 1218 var _status = _users.createElement('status'); 1219 _jid.appendChild( _users.createTextNode(TrophyIM.rosterObj.roster[user].contact.jid) ); 1220 _status.appendChild( _users.createTextNode( _subscription ) ); 1221 _user.appendChild( _jid ); 1222 _user.appendChild( _status ); 1223 _users.documentElement.appendChild( _user ); 1224 } 1225 } 1226 } 1227 1228 var paramsNotification = 1229 { 1230 'lang_1' : "Notificação", 1231 'lang_2' : "O(s) usuário(s) abaixo pedem sua autorização.", 1232 'lang_3' : "Autorizar", 1233 'lang_4' : "Remover" 1234 }; 1235 1236 var winNotification = 1237 { 1238 id_window : "window_notification_new_users", 1239 width : 400, 1240 height : 300, 1241 top : 100, 1242 left : 400, 1243 draggable : true, 1244 visible : "display", 1245 resizable : true, 1246 zindex : zIndex++, 1247 title : "Expresso Messenger - Notificação de Novos Usuários", 1248 closeAction : "remove", 1249 content : Xtools.parse( _users , "notificationNewUsers.xsl", paramsNotification ) 1250 }; 1251 1252 _winBuild( winNotification ); 1253 } 1254 1255 function createChatRooms() 1256 { 1257 _winBuild("window_List_Rooms_jabberit_messenger","remove"); 1258 1259 var paramCreateChatRoom = 1260 { 1261 'lang_nameChatRoom' : "Nome da Sala", 1262 'lang_nickName' : "Apelido" 1263 }; 1264 1265 var winCreateChatRooms = 1266 { 1267 id_window : "window_create_chat_rooms", 1268 width : 360, 1269 height : 160, 1270 top : 100, 1271 left : 410, 1272 draggable : true, 1273 visible : "display", 1274 resizable : true, 1275 zindex : loadscript.getZIndex(), 1276 title : "Expresso Messenger - Criar Sala de Bate Papo", 1277 closeAction : "remove", 1278 content : Xtools.parse( Xtools.xml("create_chat_room"), "createChatRoom.xsl", paramCreateChatRoom ) 1279 }; 1280 1281 _winBuild( winCreateChatRooms ); 1282 1283 var _pButtons = 1284 { 1285 'lang1' : 'Ingressar', 1286 'lang2' : 'Fechar', 1287 'onclickClose' : '_winBuild("window_create_chat_rooms","remove");', 1288 'onclickSubmit' : 'TrophyIM.createChatRooms(); _winBuild("window_create_chat_rooms","remove");' 1289 }; 1290 1291 // Add Buttons 1292 document.getElementById('buttons_createChatRoom').innerHTML = Xtools.parse(Xtools.xml('buttons_main'), 'buttons.xsl', _pButtons); 1293 1294 } 1295 1296 function listRooms( element ) 1297 { 1298 element = element.getElementsByTagName( 'item' ); 1299 1300 var _roomsCount = 0; 1301 var _xml = Xtools.xml('listRooms'); 1302 var _listRooms = _xml.documentElement; 1303 1304 var show = function( ) 1305 { 1306 if ( _roomsCount != element.length ) 1307 return false; 1308 1309 var paramsListRooms = 1310 { 1311 "path_jabberit" : path_jabberit 1312 }; 1313 1314 var winListRooms = 1315 { 1316 id_window : "window_List_Rooms_jabberit_messenger", 1317 width : 450, 1318 height : 300, 1319 top : 100, 1320 left : 400, 1321 draggable : true, 1322 visible : "display", 1323 resizable : true, 1324 zindex : loadscript.getZIndex(), 1325 title : "Expresso Messenger - Salas de Bate Papo", 1326 closeAction : "remove", 1327 content : Xtools.parse( _xml, "listRooms.xsl", paramsListRooms ) 1328 }; 1329 1330 _winBuild( winListRooms ); 1331 1332 var _pButtons = 1333 { 1334 'lang1' : 'Criar Nova Sala', 1335 'lang2' : 'Fechar', 1336 'onclickClose' : '_winBuild("window_List_Rooms_jabberit_messenger","remove");', 1337 'onclickSubmit' : 'loadscript.createChatRooms();' 1338 }; 1339 1340 // Add Buttons 1341 document.getElementById('buttons_addChatRoom').innerHTML = Xtools.parse(Xtools.xml('buttons_main'), 'buttons.xsl', _pButtons); 1342 }; 1343 1344 var _add_room = function( _room ) 1345 { 1346 _roomsCount++; 1347 1348 var _ROOM = _xml.createElement('room'); 1349 var _JIDROOM = _xml.createElement('jidRoom'); 1350 var nameRoom = _room.getAttribute( 'from' ); 1351 1352 _ROOM.setAttribute( 'nameRoom', unescape((nameRoom.substring(0, nameRoom.indexOf("@"))).toUpperCase()) ); 1353 _JIDROOM.appendChild( _xml.createTextNode(nameRoom) ); 1354 _ROOM.appendChild( _JIDROOM ); 1355 1356 // Get fields elements; 1357 var _fields = _room.getElementsByTagName( 'field' ); 1358 1359 for ( var f = 0; f < _fields.length; f++ ) 1360 { 1361 if ( _fields[ f ].getAttribute( 'var' ) ) 1362 { 1363 if ( _fields[ f ].firstChild.hasChildNodes( ) && _fields[ f ].getAttribute( 'var' ) == 'muc#roominfo_description' ) 1364 { 1365 var _description = _xml.createElement("description"); 1366 _description.appendChild( _xml.createTextNode( _fields[ f ].firstChild.firstChild.nodeValue ) ); 1367 _ROOM.appendChild( _description ); 1368 } 1369 1370 if ( _fields[ f ].firstChild.hasChildNodes( ) && _fields[ f ].getAttribute( 'var' ) == 'muc#roominfo_occupants' ) 1371 { 1372 var _occupants = _xml.createElement("occupants") 1373 _occupants.appendChild( _xml.createTextNode( _fields[ f ].firstChild.firstChild.nodeValue) ); 1374 _ROOM.appendChild( _occupants ); 1375 } 1376 } 1377 } 1378 1379 // Get feature elements; 1380 var _feature = _room.getElementsByTagName( 'feature' ); 1381 1382 for( var f = 0 ; f < _feature.length; f++ ) 1383 { 1384 if ( _feature[ f ].getAttribute( 'var' ) ) 1385 { 1386 if( _feature[ f ].getAttribute( 'var' ) == 'muc_unsecured' ) 1387 { 1388 var _password = _xml.createElement("password"); 1389 _password.appendChild( _xml.createTextNode("false") ); 1390 _ROOM.appendChild( _password ); 1391 } 1392 else if( _feature[ f ].getAttribute( 'var' ) == 'muc_passwordprotected' ) 1393 { 1394 var _password = _xml.createElement("password"); 1395 _password.appendChild( _xml.createTextNode("true") ); 1396 _ROOM.appendChild( _password ); 1397 } 1398 } 1399 } 1400 1401 _listRooms.appendChild( _ROOM ); 1402 1403 show( ); 1404 }; 1405 1406 var _get_room_info = function( _room ) 1407 { 1408 TrophyIM.connection.sendIQ( 1409 $iq( { "to" : _room, "type" : "get" } ).c( "query",{xmlns: Strophe.NS.DISCO_INFO } ), 1410 _add_room, 1411 function( a ) 1412 { 1413 _roomsCount++; 1228 configEvents( divPOP ,'onclick', _close ); 1229 1230 var _content = tmp.documentElement.getElementsByTagName( 'body' ).item(0).appendChild( getElement(_id + '__chatBox' ).parentNode ); 1231 1232 _content.firstChild.scrollTop = _content.firstChild.scrollHeight; 1233 1234 configEvents( windowPopUp[_win_name] ,'onbeforeunload', function() 1235 { 1236 delete windowPopUp[_win_name]; 1237 divPOP.style.background = "url('"+path_jabberit+"templates/default/images/icon_up.png') no-repeat"; 1238 divPOP.innerHTML = "PopUp"; 1239 divPOP.onclick = function(){ 1240 loadscript.windowPOPUP( _id , true ); 1241 }; 1242 _winBuild( 'window_chat_area_' + _id, "display" ).content( true ); 1243 }); 1244 1245 _winBuild( 'window_chat_area_' + _id, 'hidden' ); 1246 } 1247 } 1248 } 1249 1250 function windowNotificationNewUsers() 1251 { 1252 var _users = Xtools.xml('notification_new_users'); 1253 1254 for( var user in TrophyIM.rosterObj.roster ) 1255 { 1256 if ( TrophyIM.rosterObj.roster[ user ].constructor == Function ) 1257 continue; 1258 1259 if( TrophyIM.rosterObj.roster[ user ].contact.jid != Base64.decode( loadscript.getUserCurrent().jid) ) 1260 { 1261 var _subscription = TrophyIM.rosterObj.roster[user].contact.subscription; 1262 1263 if ( _subscription == 'to' || _subscription == 'not-in-roster' ) 1264 { 1265 var _user = _users.createElement('user'); 1266 var _jid = _users.createElement('jid'); 1267 var _status = _users.createElement('status'); 1268 _jid.appendChild( _users.createTextNode(TrophyIM.rosterObj.roster[user].contact.jid) ); 1269 _status.appendChild( _users.createTextNode( _subscription ) ); 1270 _user.appendChild( _jid ); 1271 _user.appendChild( _status ); 1272 _users.documentElement.appendChild( _user ); 1273 } 1274 } 1275 } 1276 1277 var paramsNotification = 1278 { 1279 'lang_1' : "Notificação", 1280 'lang_2' : "O(s) usuário(s) abaixo pedem sua autorização.", 1281 'lang_3' : "Autorizar", 1282 'lang_4' : "Remover" 1283 }; 1284 1285 var winNotification = 1286 { 1287 id_window : "window_notification_new_users", 1288 width : 400, 1289 height : 300, 1290 top : 100, 1291 left : 400, 1292 draggable : true, 1293 visible : "display", 1294 resizable : true, 1295 zindex : zIndex++, 1296 title : "Expresso Messenger - Notificação de Novos Usuários", 1297 closeAction : "remove", 1298 content : Xtools.parse( _users , "notificationNewUsers.xsl", paramsNotification ) 1299 }; 1300 1301 _winBuild( winNotification ); 1302 } 1303 1304 function createChatRooms() 1305 { 1306 _winBuild("window_List_Rooms_jabberit_messenger","remove"); 1307 1308 var paramCreateChatRoom = 1309 { 1310 'lang_nameChatRoom' : "Nome da Sala", 1311 'lang_nickName' : "Apelido" 1312 }; 1313 1314 var winCreateChatRooms = 1315 { 1316 id_window : "window_create_chat_rooms", 1317 width : 360, 1318 height : 160, 1319 top : 100, 1320 left : 410, 1321 draggable : true, 1322 visible : "display", 1323 resizable : true, 1324 zindex : loadscript.getZIndex(), 1325 title : "Expresso Messenger - Criar Sala de Bate Papo", 1326 closeAction : "remove", 1327 content : Xtools.parse( Xtools.xml("create_chat_room"), "createChatRoom.xsl", paramCreateChatRoom ) 1328 }; 1329 1330 _winBuild( winCreateChatRooms ); 1331 1332 var _pButtons = 1333 { 1334 'lang1' : 'Ingressar', 1335 'lang2' : 'Fechar', 1336 'onclickClose' : '_winBuild("window_create_chat_rooms","remove");', 1337 'onclickSubmit' : 'TrophyIM.createChatRooms(); _winBuild("window_create_chat_rooms","remove");' 1338 }; 1339 1340 // Add Buttons 1341 document.getElementById('buttons_createChatRoom').innerHTML = Xtools.parse(Xtools.xml('buttons_main'), 'buttons.xsl', _pButtons); 1342 1343 } 1344 1345 function listRooms( element ) 1346 { 1347 element = element.getElementsByTagName( 'item' ); 1348 1349 var _roomsCount = 0; 1350 var _xml = Xtools.xml('listRooms'); 1351 var _listRooms = _xml.documentElement; 1352 1353 var show = function( ) 1354 { 1355 if ( _roomsCount != element.length ) 1356 return false; 1357 1358 var paramsListRooms = 1359 { 1360 "path_jabberit" : path_jabberit 1361 }; 1362 1363 var winListRooms = 1364 { 1365 id_window : "window_List_Rooms_jabberit_messenger", 1366 width : 450, 1367 height : 300, 1368 top : 100, 1369 left : 400, 1370 draggable : true, 1371 visible : "display", 1372 resizable : true, 1373 zindex : loadscript.getZIndex(), 1374 title : "Expresso Messenger - Salas de Bate Papo", 1375 closeAction : "remove", 1376 content : Xtools.parse( _xml, "listRooms.xsl", paramsListRooms ) 1377 }; 1378 1379 _winBuild( winListRooms ); 1380 1381 var _pButtons = 1382 { 1383 'lang1' : 'Criar Nova Sala', 1384 'lang2' : 'Fechar', 1385 'onclickClose' : '_winBuild("window_List_Rooms_jabberit_messenger","remove");', 1386 'onclickSubmit' : 'loadscript.createChatRooms();' 1387 }; 1388 1389 // Add Buttons 1390 document.getElementById('buttons_addChatRoom').innerHTML = Xtools.parse(Xtools.xml('buttons_main'), 'buttons.xsl', _pButtons); 1391 }; 1392 1393 var _add_room = function( _room ) 1394 { 1395 _roomsCount++; 1396 1397 var _ROOM = _xml.createElement('room'); 1398 var _JIDROOM = _xml.createElement('jidRoom'); 1399 var nameRoom = _room.getAttribute( 'from' ); 1400 1401 _ROOM.setAttribute( 'nameRoom', unescape((nameRoom.substring(0, nameRoom.indexOf("@"))).toUpperCase()) ); 1402 _JIDROOM.appendChild( _xml.createTextNode(nameRoom) ); 1403 _ROOM.appendChild( _JIDROOM ); 1404 1405 // Get fields elements; 1406 var _fields = _room.getElementsByTagName( 'field' ); 1407 1408 for ( var f = 0; f < _fields.length; f++ ) 1409 { 1410 if ( _fields[ f ].getAttribute( 'var' ) ) 1411 { 1412 if ( _fields[ f ].firstChild.hasChildNodes( ) && _fields[ f ].getAttribute( 'var' ) == 'muc#roominfo_description' ) 1413 { 1414 var _description = _xml.createElement("description"); 1415 _description.appendChild( _xml.createTextNode( _fields[ f ].firstChild.firstChild.nodeValue ) ); 1416 _ROOM.appendChild( _description ); 1417 } 1418 1419 if ( _fields[ f ].firstChild.hasChildNodes( ) && _fields[ f ].getAttribute( 'var' ) == 'muc#roominfo_occupants' ) 1420 { 1421 var _occupants = _xml.createElement("occupants") 1422 _occupants.appendChild( _xml.createTextNode( _fields[ f ].firstChild.firstChild.nodeValue) ); 1423 _ROOM.appendChild( _occupants ); 1424 } 1425 } 1426 } 1427 1428 // Get feature elements; 1429 var _feature = _room.getElementsByTagName( 'feature' ); 1430 1431 for( var f = 0 ; f < _feature.length; f++ ) 1432 { 1433 if ( _feature[ f ].getAttribute( 'var' ) ) 1434 { 1435 if( _feature[ f ].getAttribute( 'var' ) == 'muc_unsecured' ) 1436 { 1437 var _password = _xml.createElement("password"); 1438 _password.appendChild( _xml.createTextNode("false") ); 1439 _ROOM.appendChild( _password ); 1440 } 1441 else if( _feature[ f ].getAttribute( 'var' ) == 'muc_passwordprotected' ) 1442 { 1443 var _password = _xml.createElement("password"); 1444 _password.appendChild( _xml.createTextNode("true") ); 1445 _ROOM.appendChild( _password ); 1446 } 1447 } 1448 } 1449 1450 _listRooms.appendChild( _ROOM ); 1451 1452 show( ); 1453 }; 1454 1455 var _get_room_info = function( _room ) 1456 { 1457 TrophyIM.connection.sendIQ( 1458 $iq( { 1459 "to" : _room, 1460 "type" : "get" 1461 } ).c( "query",{ 1462 xmlns: Strophe.NS.DISCO_INFO 1463 } ), 1464 _add_room, 1465 function( a ) 1466 { 1467 _roomsCount++; 1414 1468 1415 1469 show( ); 1416 1470 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1471 }, 500 ); 1472 }; 1473 1474 if( element.length > 0 ) 1475 { 1476 for ( var i = 0; i < element.length; i++ ) 1477 { 1478 _get_room_info( element[ i ].getAttribute( 'jid' ) ); 1479 } 1480 } 1481 else 1482 { 1483 show(); 1484 } 1485 } 1486 1487 function getListRooms() 1488 { 1489 TrophyIM.getListRooms(); 1490 } 1491 1492 function joinRoom( jidRoom, nameRoom ) 1493 { 1494 var append_nick = function( room, nick ) 1495 { 1496 var room_nick = room; 1443 1497 1444 1445 1446 1447 1498 if ( nick ) 1499 { 1500 room_nick += "/" + nick; 1501 } 1448 1502 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1503 return room_nick; 1504 } 1505 1506 if( document.getElementById( 'window_chat_room_' + jidRoom + '__main' ) != null ) 1507 { 1508 _winBuild('window_chat_room_' + jidRoom, 'display'); 1509 } 1510 else 1511 { 1512 var nickName = Base64.decode( loadscript.getUserCurrent().jid ); 1513 nickName = nickName.substring(0, nickName.indexOf('@')); 1460 1514 1461 1515 var _prompt = prompt("Deseja informar um Apelido ?", nickName ); 1462 1516 1463 1464 1465 1517 if( _prompt ) 1518 { 1519 _prompt = _prompt.replace(/^\s+|\s+$|^\n|\n$/g,""); 1466 1520 1467 1521 var room_nick = append_nick( jidRoom, nickName ); 1468 1522 1469 1523 var nickChat = nickName.toString(); 1470 1524 1471 1472 1473 1474 1475 1525 if( _prompt && _prompt != "" ) 1526 { 1527 nickChat = _prompt.toString(); 1528 var room_nick = append_nick( jidRoom, _prompt ); 1529 } 1476 1530 1477 1478 1479 1531 TrophyIM.makeChatRoom( jidRoom , nameRoom ); 1532 1533 TrophyIM.activeChatRoom.name[ TrophyIM.activeChatRoom.name.length ] = room_nick; 1480 1534 1481 1535 TrophyIM.joinChatRoom( room_nick); 1482 1536 1483 1484 1485 1537 setTimeout(function() 1538 { 1539 var _message = nickName.toUpperCase() + " entrou como : " + nickChat; 1486 1540 1487 1541 TrophyIM.sendMessageChatRoom( jidRoom , _message ); 1488 1542 1489 1543 }, 500); 1490 1544 1491 1492 1545 } 1546 } 1493 1547 1494 _winBuild("window_List_Rooms_jabberit_messenger","remove"); 1495 } 1496 1497 function loadIM() 1498 { 1499 if( arguments.length > 0 ) 1500 { 1501 var files = [ 1502 path_jabberit + 'templates/default/css/button.css', 1503 path_jabberit + 'templates/default/css/common.css', 1504 path_jabberit + 'templates/default/css/selectEditableStyle.css', 1505 path_jabberit + 'templates/default/css/' + theme_jabberit 1506 ]; 1507 // FullName 1508 fullName = arguments[0]; 1509 1510 // Preferences 1511 _preferencesIM = arguments[1].split(";"); 1512 1513 if( !_preferencesIM[3] ) _preferencesIM[3] = "showContactsOfflineJabberit:true"; 1514 1515 loadScripts(files); 1516 1517 setTimeout(function() 1518 { 1519 // Object Xtools 1520 if( Xtools == null ) 1521 Xtools = new xtools(path_jabberit); 1522 1523 // Object Conector 1524 if( conn == null ) 1525 conn = new AjaxConnector(path_jabberit); 1526 1527 // Object Add User 1528 if( addUser == null ) 1529 addUser = new addUserIM(Xtools, conn); 1530 1531 1532 // Object SelectEditable 1533 if( selectEditable == null ) 1534 selectEditable = new SelectEditable(); 1548 _winBuild("window_List_Rooms_jabberit_messenger","remove"); 1549 } 1550 1551 function loadIM() 1552 { 1553 if( arguments.length > 0 ) 1554 { 1555 var files = [ 1556 path_jabberit + 'templates/default/css/button.css', 1557 path_jabberit + 'templates/default/css/common.css', 1558 path_jabberit + 'templates/default/css/selectEditableStyle.css', 1559 path_jabberit + 'templates/default/css/' + theme_jabberit 1560 ]; 1561 // FullName 1562 fullName = arguments[0]; 1563 1564 // Preferences 1565 _preferencesIM = arguments[1].split(";"); 1566 1567 //Path Phpgwapi 1568 path_phpgwapi = arguments[2]; 1569 1570 if( !_preferencesIM[3] ) _preferencesIM[3] = "showContactsOfflineJabberit:true"; 1571 1572 loadScripts(files); 1573 1574 setTimeout(function() 1575 { 1576 // Object Xtools 1577 if( Xtools == null ) 1578 Xtools = new xtools(path_jabberit); 1579 1580 // Object Conector 1581 if( conn == null ) 1582 conn = new AjaxConnector(path_jabberit); 1583 1584 // Object Add User 1585 if( addUser == null ) 1586 addUser = new addUserIM(Xtools, conn); 1587 1588 1589 // Object SelectEditable 1590 if( selectEditable == null ) 1591 selectEditable = new SelectEditable(); 1535 1592 1536 // Add Jabber in StatusBar; 1537 addIcon(); 1538 1539 // Auto Connect 1540 setTimeout(function() 1541 { 1542 if( _preferencesIM[0] === 'openWindowJabberit:true' ) 1543 { 1544 if( SnifferBrowser.isCompatible('ie8','firefox3','firefox4','epiphany2','iceweasel3') ) 1545 TrophyIM.load(); 1546 } 1593 // Add Jabber in StatusBar; 1594 addIcon(); 1595 1596 // Auto Connect 1597 setTimeout(function() 1598 { 1599 if( _preferencesIM[0] === 'openWindowJabberit:true' ) 1600 { 1601 if( SnifferBrowser.isLoadApp() ) 1602 { 1603 TrophyIM.load(); 1604 } 1605 } 1547 1606 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 loadIM.prototype.getIsIE = getIsIE;1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 })();1607 },1500); 1608 1609 // Auto Status 1610 autoStatus(); 1611 configEvents( document, 'onmousemove', autoStatus ); 1612 configEvents( document, 'onkeypress', autoStatus ); 1613 1614 }, 2000); 1615 } 1616 } 1617 1618 loadIM.prototype.adIcon = addIcon; 1619 loadIM.prototype.actionButton = actionButton; 1620 loadIM.prototype.addContact = addContact; 1621 loadIM.prototype.addNewUser = addNewUser; 1622 loadIM.prototype.clrAllContacts = clrAllContacts; 1623 loadIM.prototype.configEvents = configEvents; 1624 loadIM.prototype.createChatRooms = createChatRooms; 1625 loadIM.prototype.disabledNotificationNewUsers = disabledNotificationNewUsers; 1626 loadIM.prototype.enabledNotificationNewUsers = enabledNotificationNewUsers; 1627 loadIM.prototype.getListRooms = getListRooms; 1628 loadIM.prototype.getBrowserCompatible = getBrowserCompatible; 1629 loadIM.prototype.getPhotoUser = getPhotoUser; 1630 loadIM.prototype.getSmiles = getSmiles; 1631 loadIM.prototype.getStatusUserIM = getStatusUserIM; 1632 loadIM.prototype.getStatusMessage = getStatusMessage; 1633 loadIM.prototype.getShowContactsOffline = getShowContactsOffline; 1634 loadIM.prototype.getUserCurrent = getUserCurrent; 1635 loadIM.prototype.getZIndex = getZindex; 1636 loadIM.prototype.groupsHidden = groupsHidden; 1637 loadIM.prototype.groupsVisible = groupsVisible; 1638 loadIM.prototype.joinRoom = joinRoom; 1639 loadIM.prototype.keyPressSearch = keyPressSearch; 1640 loadIM.prototype.listRooms = listRooms; 1641 loadIM.prototype.loginPage = loginPage; 1642 loadIM.prototype.notification = notificationNewMessage; 1643 loadIM.prototype.parse = parse; 1644 loadIM.prototype.preferences = preferences; 1645 loadIM.prototype.searchUser = searchUser 1646 loadIM.prototype.setAutorization = setAutorization; 1647 loadIM.prototype.setMessageStatus = setMessageStatus; 1648 loadIM.prototype.setPreferences = setPreferences; 1649 loadIM.prototype.setPresence = setPresence; 1650 loadIM.prototype.setStatusJabber = setStatusJabber; 1651 loadIM.prototype.setSelectEditable = setSelectEditable; 1652 loadIM.prototype.setUserCurrent = setUserCurrent; 1653 loadIM.prototype.removeContact = removeContact; 1654 loadIM.prototype.removeElement = removeElement; 1655 loadIM.prototype.removeGroup = removeGroup; 1656 loadIM.prototype.renameContact = renameContact; 1657 loadIM.prototype.renameGroup = renameGroup; 1658 loadIM.prototype.rosterDiv = rosterDiv; 1659 loadIM.prototype.windowNotificationNewUsers = windowNotificationNewUsers; 1660 loadIM.prototype.windowPOPUP = windowPOPUP; 1661 1662 window.LoadIM = loadIM; 1663 1664 // Necessário para não ocasionar problema no ExpressoMail 1665 // quando os itens abaixo não são criados pelo próprio ExpressoMail 1666 if( SnifferBrowser.isCompatible('is_ie') ) 1667 { 1668 configEvents( window, 'onload', function( ) 1669 { 1670 if ( ! document.getElementById( 'cc_msg_err_serialize_data_unknown' ) ) 1671 { 1672 var fix = document.createElement('input'); 1673 fix.type = 'hidden'; 1674 fix.id = 'cc_msg_err_serialize_data_unknown'; 1675 1676 document.appendChild( fix ); 1677 } 1678 if ( ! window.showMessage ) 1679 window.showMessage = function(){}; 1680 }); 1681 } 1682 1683 })(); -
trunk/jabberit_messenger/jmessenger/js/jscode/loadIM.mini.js
r4360 r5041 1 1 (function() 2 {var _autoStatus;var _autoStatusTime=60000;var addUser=null;var conn=null;var fullName="";var path="";var _preferencesIM="";var selectEditable=null;var showhidden=null;var statusUserIM="";var _statusMessage="";var timeoutId=null;var userCurrent=null;var _timeOutNotification="";var Xtools=null;var zIndex=9001;var windowPopUp=[];var add_user=new Image();add_user.src=path_jabberit+'templates/default/images/adduser_azul.png';var arrow_down=new Image();arrow_down.src=path_jabberit+'templates/default/images/arrow_down.gif';var arrow_right=new Image();arrow_right.src=path_jabberit+'templates/default/images/arrow_right.gif';function actionButton()2 {var _autoStatus;var _autoStatusTime=60000;var addUser=null;var conn=null;var fullName="";var path="";var path_phpgwapi="";var _preferencesIM="";var selectEditable=null;var showhidden=null;var statusUserIM="";var _statusMessage="";var timeoutId=null;var userCurrent=null;var _timeOutNotification="";var Xtools=null;var zIndex=9001;var windowPopUp=[];var add_user=new Image();add_user.src=path_jabberit+'templates/default/images/adduser_azul.png';var arrow_down=new Image();arrow_down.src=path_jabberit+'templates/default/images/arrow_down.gif';var arrow_right=new Image();arrow_right.src=path_jabberit+'templates/default/images/arrow_right.gif';function actionButton() 3 3 {if(arguments.length>0) 4 4 {var e=arguments[0];var _element=(e.target)?e.target:e.srcElement;var jid=arguments[1];var coord=null;if(!e) … … 83 83 function getElement(elementId) 84 84 {return document.getElementById(elementId);} 85 function get IsIE()86 {return SnifferBrowser.is Compatible('is_ie');}85 function getBrowserCompatible() 86 {return SnifferBrowser.isLoadApp('firefox');} 87 87 function getPhotoUser(jid) 88 88 {try … … 180 180 {var winRosterDiv={id_window:"window_Roster_im",width:250,height:410,top:50,left:-1500,leftOld:50,draggable:true,visible:"display",resizable:true,zindex:zIndex++,title:"Expresso Messenger - Contatos",closeAction:"hidden",content:""};if(_preferencesIM[0]=="openWindowJabberit:false") 181 181 {winRosterDiv.left=50;winRosterDiv.leftOld=-1500;} 182 if(SnifferBrowser.is Compatible('ie8','firefox3','firefox4','epiphany2','iceweasel3'))182 if(SnifferBrowser.isLoadApp()) 183 183 {var _idUser=Base64.decode(getUserCurrent().jid);var paramListContact={'idUser':_idUser,'full_name':((fullName.length<25)?fullName:(fullName.substring(0,25)+"...")),'path_jabberit':path_jabberit,'help_expresso':help_expresso,'zIndex_':zIndex++};winRosterDiv.content=Xtools.parse(Xtools.xml("contacts_list"),"contactsList.xsl",paramListContact)} 184 184 else 185 {var paramList={'path _jabberit':path_jabberit};winRosterDiv.width=280;winRosterDiv.height=430;winRosterDiv.content=Xtools.parse(Xtools.xml("navigator"),"navigatorCompatible.xsl",paramList);}185 {var paramList={'path':path_phpgwapi};winRosterDiv.width=280;winRosterDiv.height=430;winRosterDiv.content=Xtools.parse(Xtools.xml("navigator"),path_phpgwapi+"templates/default/xsl/navigatorCompatible.xsl",paramList);} 186 186 _winBuild(winRosterDiv);getPhotoUser(_idUser);} 187 187 setTimeout(function(){_rosterDiv();},200);} … … 315 315 function loadIM() 316 316 {if(arguments.length>0) 317 {var files=[path_jabberit+'templates/default/css/button.css',path_jabberit+'templates/default/css/common.css',path_jabberit+'templates/default/css/selectEditableStyle.css',path_jabberit+'templates/default/css/'+theme_jabberit];fullName=arguments[0];_preferencesIM=arguments[1].split(";"); if(!_preferencesIM[3])_preferencesIM[3]="showContactsOfflineJabberit:true";loadScripts(files);setTimeout(function()317 {var files=[path_jabberit+'templates/default/css/button.css',path_jabberit+'templates/default/css/common.css',path_jabberit+'templates/default/css/selectEditableStyle.css',path_jabberit+'templates/default/css/'+theme_jabberit];fullName=arguments[0];_preferencesIM=arguments[1].split(";");path_phpgwapi=arguments[2];if(!_preferencesIM[3])_preferencesIM[3]="showContactsOfflineJabberit:true";loadScripts(files);setTimeout(function() 318 318 {if(Xtools==null) 319 319 Xtools=new xtools(path_jabberit);if(conn==null) … … 322 322 selectEditable=new SelectEditable();addIcon();setTimeout(function() 323 323 {if(_preferencesIM[0]==='openWindowJabberit:true') 324 {if(SnifferBrowser.is Compatible('ie8','firefox3','firefox4','epiphany2','iceweasel3'))325 TrophyIM.load();}},1500);autoStatus();configEvents(document,'onmousemove',autoStatus);configEvents(document,'onkeypress',autoStatus);},2000);}}326 loadIM.prototype.adIcon=addIcon;loadIM.prototype.actionButton=actionButton;loadIM.prototype.addContact=addContact;loadIM.prototype.addNewUser=addNewUser;loadIM.prototype.clrAllContacts=clrAllContacts;loadIM.prototype.configEvents=configEvents;loadIM.prototype.createChatRooms=createChatRooms;loadIM.prototype.disabledNotificationNewUsers=disabledNotificationNewUsers;loadIM.prototype.enabledNotificationNewUsers=enabledNotificationNewUsers;loadIM.prototype.getListRooms=getListRooms;loadIM.prototype.get IsIE=getIsIE;loadIM.prototype.getPhotoUser=getPhotoUser;loadIM.prototype.getSmiles=getSmiles;loadIM.prototype.getStatusUserIM=getStatusUserIM;loadIM.prototype.getStatusMessage=getStatusMessage;loadIM.prototype.getShowContactsOffline=getShowContactsOffline;loadIM.prototype.getUserCurrent=getUserCurrent;loadIM.prototype.getZIndex=getZindex;loadIM.prototype.groupsHidden=groupsHidden;loadIM.prototype.groupsVisible=groupsVisible;loadIM.prototype.joinRoom=joinRoom;loadIM.prototype.keyPressSearch=keyPressSearch;loadIM.prototype.listRooms=listRooms;loadIM.prototype.loginPage=loginPage;loadIM.prototype.notification=notificationNewMessage;loadIM.prototype.parse=parse;loadIM.prototype.preferences=preferences;loadIM.prototype.searchUser=searchUser324 {if(SnifferBrowser.isLoadApp()) 325 {TrophyIM.load();}}},1500);autoStatus();configEvents(document,'onmousemove',autoStatus);configEvents(document,'onkeypress',autoStatus);},2000);}} 326 loadIM.prototype.adIcon=addIcon;loadIM.prototype.actionButton=actionButton;loadIM.prototype.addContact=addContact;loadIM.prototype.addNewUser=addNewUser;loadIM.prototype.clrAllContacts=clrAllContacts;loadIM.prototype.configEvents=configEvents;loadIM.prototype.createChatRooms=createChatRooms;loadIM.prototype.disabledNotificationNewUsers=disabledNotificationNewUsers;loadIM.prototype.enabledNotificationNewUsers=enabledNotificationNewUsers;loadIM.prototype.getListRooms=getListRooms;loadIM.prototype.getBrowserCompatible=getBrowserCompatible;loadIM.prototype.getPhotoUser=getPhotoUser;loadIM.prototype.getSmiles=getSmiles;loadIM.prototype.getStatusUserIM=getStatusUserIM;loadIM.prototype.getStatusMessage=getStatusMessage;loadIM.prototype.getShowContactsOffline=getShowContactsOffline;loadIM.prototype.getUserCurrent=getUserCurrent;loadIM.prototype.getZIndex=getZindex;loadIM.prototype.groupsHidden=groupsHidden;loadIM.prototype.groupsVisible=groupsVisible;loadIM.prototype.joinRoom=joinRoom;loadIM.prototype.keyPressSearch=keyPressSearch;loadIM.prototype.listRooms=listRooms;loadIM.prototype.loginPage=loginPage;loadIM.prototype.notification=notificationNewMessage;loadIM.prototype.parse=parse;loadIM.prototype.preferences=preferences;loadIM.prototype.searchUser=searchUser 327 327 loadIM.prototype.setAutorization=setAutorization;loadIM.prototype.setMessageStatus=setMessageStatus;loadIM.prototype.setPreferences=setPreferences;loadIM.prototype.setPresence=setPresence;loadIM.prototype.setStatusJabber=setStatusJabber;loadIM.prototype.setSelectEditable=setSelectEditable;loadIM.prototype.setUserCurrent=setUserCurrent;loadIM.prototype.removeContact=removeContact;loadIM.prototype.removeElement=removeElement;loadIM.prototype.removeGroup=removeGroup;loadIM.prototype.renameContact=renameContact;loadIM.prototype.renameGroup=renameGroup;loadIM.prototype.rosterDiv=rosterDiv;loadIM.prototype.windowNotificationNewUsers=windowNotificationNewUsers;loadIM.prototype.windowPOPUP=windowPOPUP;window.LoadIM=loadIM;if(SnifferBrowser.isCompatible('is_ie')) 328 328 {configEvents(window,'onload',function() -
trunk/jabberit_messenger/jmessenger/js/lang/i18n_pt_Br.js
r3260 r5041 31 31 NONE_RESULT_WAS_FOUND : 'Nenhum resultado encontrado !', 32 32 PAUSED : ' está parado.', 33 ROOM_CREATION_IS_DENIED_BY_SERVICE_POLICY : 'Não é permitido a criação de salas', 33 34 SEND : 'Enviar', 34 35 SEARCH_RESULT : 'Resulta da busca', -
trunk/jabberit_messenger/jmessenger/js/lang/i18n_pt_Br.mini.js
r3260 r5041 1 2 i18n={ADD:'Adicionar',ADD_CONTACT:'Adicionar Contatos',ADD_CONTACTS:'Adicionar Contatos',ASK_NEW_NAME_QUESTION:'Informe um novo nome para ',ASK_NEW_GROUP_QUESTION:'Informe um novo grupo ou deixe em branco',ASK_FOR_AUTH:'PEDIR AUTORIZAÇÃO !',AUTHORIZED:'AUTORIZADO !',AUTH_SENT:'AUTORIZAÇÃO ENVIADA !',ASK_FOR_AUTH_QUESTION:'QUERO ADICIONÁ-LO(A) ! POSSO ?',CLOSE:'Fechar',COMPOSING:' está digitando...',CONTACT_ASK_FOR_AUTH:'CONTATO PEDE AUTORIZAÇÃO !',GONE:' saiu da conversa.',GROUP:'Grupo',INACTIVE:' está inativo.',LEAVE_CHATROOM:'Sair da Sala',LOAD:'Carregando',MANY_RESULTS_PLEASE_TRY_TO_REFINE_YOUR_SEARCH:'Muitos Resultados ! Por favor tente refinar sua busca !',ME:'Eu',NAME_CONTACT:'Nome do Contato',NEW_USER:'Novo Usuário',NONE_RESULT_WAS_FOUND:'Nenhum resultado encontrado !',PAUSED:' está parado.',SEND:'Enviar',SEARCH_RESULT:'Resulta da busca',SEARCH_USERS:'Procurar contatos',STATUS_ANAVAILABLE:'Desconectado',STATUS_AVAILABLE:'Disponível',STATUS_ANAVAILABLE:'Desconectado',TRY_AGAIN:'Tente Novamente!',TYPE_YOUR_MESSAGE_HERE_STATUS:'Digite aqui sua mensagem de Status',TYPE_YOUR_MSG:'Digite sua mensagem !!!',YOUR_SEARCH_ARGUMENT_MUST_BE_LONGER_THAN_3_CHARACTERS:'Sua busca precisa ter mais que 3 dígitos'}; 1 i18n={ADD:'Adicionar',ADD_CONTACT:'Adicionar Contatos',ADD_CONTACTS:'Adicionar Contatos',ASK_NEW_NAME_QUESTION:'Informe um novo nome para ',ASK_NEW_GROUP_QUESTION:'Informe um novo grupo ou deixe em branco',ASK_FOR_AUTH:'PEDIR AUTORIZAÇÃO !',AUTHORIZED:'AUTORIZADO !',AUTH_SENT:'AUTORIZAÇÃO ENVIADA !',ASK_FOR_AUTH_QUESTION:'QUERO ADICIONÁ-LO(A) ! POSSO ?',CLOSE:'Fechar',COMPOSING:' está digitando...',CONTACT_ASK_FOR_AUTH:'CONTATO PEDE AUTORIZAÇÃO !',GONE:' saiu da conversa.',GROUP:'Grupo',INACTIVE:' está inativo.',LEAVE_CHATROOM:'Sair da Sala',LOAD:'Carregando',MANY_RESULTS_PLEASE_TRY_TO_REFINE_YOUR_SEARCH:'Muitos Resultados ! Por favor tente refinar sua busca !',ME:'Eu',NAME_CONTACT:'Nome do Contato',NEW_USER:'Novo Usuário',NONE_RESULT_WAS_FOUND:'Nenhum resultado encontrado !',PAUSED:' está parado.',ROOM_CREATION_IS_DENIED_BY_SERVICE_POLICY:'Não é permitido a criação de salas',SEND:'Enviar',SEARCH_RESULT:'Resulta da busca',SEARCH_USERS:'Procurar contatos',STATUS_ANAVAILABLE:'Desconectado',STATUS_AVAILABLE:'Disponível',STATUS_ANAVAILABLE:'Desconectado',TRY_AGAIN:'Tente Novamente!',TYPE_YOUR_MESSAGE_HERE_STATUS:'Digite aqui sua mensagem de Status',TYPE_YOUR_MSG:'Digite sua mensagem !!!',YOUR_SEARCH_ARGUMENT_MUST_BE_LONGER_THAN_3_CHARACTERS:'Sua busca precisa ter mais que 3 dígitos'}; -
trunk/jabberit_messenger/jmessenger/js/strophe.mini.js
r3317 r5041 109 109 {var xhr=null;if(window.XMLHttpRequest){xhr=new XMLHttpRequest();if(xhr.overrideMimeType){xhr.overrideMimeType("text/xml");}}else if(window.ActiveXObject){xhr=new ActiveXObject("Microsoft.XMLHTTP");} 110 110 xhr.onreadystatechange=this.func.prependArg(this);return xhr;}};Strophe.Connection=function(service) 111 {this.service=service;this.jid="";this.rid=Math.floor(Math.random()*4294967295);this.sid=null;this.streamId=null;this.do_session=false;this.do_bind=false;this.timedHandlers=[];this.handlers=[];this.removeTimeds=[];this.removeHandlers=[];this.addTimeds=[];this.addHandlers=[];this._idleTimeout=null;this._disconnectTimeout=null;this.authenticated=false;this.disconnecting=false;this.connected=false;this.errors=0;this.paused=false;this.hold= 1;this.wait=60;this.window=5;this._data=[];this._requests=[];this._uniqueId=Math.round(Math.random()*10000);this._sasl_success_handler=null;this._sasl_failure_handler=null;this._sasl_challenge_handler=null;this._idleTimeout=setTimeout(this._onIdle.bind(this),100);for(var k in Strophe._connectionPlugins){if(Strophe._connectionPlugins.hasOwnProperty(k)){var ptype=Strophe._connectionPlugins[k];var F=function(){};F.prototype=ptype;this[k]=new F();this[k].init(this);}}};Strophe.Connection.prototype={reset:function()111 {this.service=service;this.jid="";this.rid=Math.floor(Math.random()*4294967295);this.sid=null;this.streamId=null;this.do_session=false;this.do_bind=false;this.timedHandlers=[];this.handlers=[];this.removeTimeds=[];this.removeHandlers=[];this.addTimeds=[];this.addHandlers=[];this._idleTimeout=null;this._disconnectTimeout=null;this.authenticated=false;this.disconnecting=false;this.connected=false;this.errors=0;this.paused=false;this.hold=2;this.wait=20;this.window=5;this._data=[];this._requests=[];this._uniqueId=Math.round(Math.random()*10000);this._sasl_success_handler=null;this._sasl_failure_handler=null;this._sasl_challenge_handler=null;this._idleTimeout=setTimeout(this._onIdle.bind(this),100);for(var k in Strophe._connectionPlugins){if(Strophe._connectionPlugins.hasOwnProperty(k)){var ptype=Strophe._connectionPlugins[k];var F=function(){};F.prototype=ptype;this[k]=new F();this[k].init(this);}}};Strophe.Connection.prototype={reset:function() 112 112 {this.rid=Math.floor(Math.random()*4294967295);this.sid=null;this.streamId=null;this.do_session=false;this.do_bind=false;this.timedHandlers=[];this.handlers=[];this.removeTimeds=[];this.removeHandlers=[];this.addTimeds=[];this.addHandlers=[];this.authenticated=false;this.disconnecting=false;this.connected=false;this.errors=0;this._requests=[];this._uniqueId=Math.round(Math.random()*10000);},pause:function() 113 113 {this.paused=true;},resume:function() -
trunk/jabberit_messenger/jmessenger/js/trophyim.js
r3332 r5041 17 17 this.processor = new XSLTProcessor(); 18 18 this.processor.importStylesheet(this.xmlRender( 19 '<xsl:stylesheet version="1.0"\19 '<xsl:stylesheet version="1.0"\ 20 20 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">\ 21 21 <xsl:output method="html" indent="yes"/><xsl:template\ … … 68 68 } 69 69 var renderObj = this.parser.parseFromString(xmlString, 70 "application/xml");70 "application/xml"); 71 71 } catch(e) { 72 72 alert("TrophyIM Error: Cannot create new html for page"); … … 84 84 */ 85 85 getHTML : function(page) 86 86 { 87 87 return this.xmlParse(HTMLSnippets[page]); 88 88 }, … … 96 96 */ 97 97 getScript : function(script) 98 98 { 99 99 var newscript = document.createElement('script'); 100 100 newscript.setAttribute('src', script); … … 112 112 113 113 114 controll : { notificationNewUsers : 0 }, 115 116 /** AutoConnection 114 controll : { 115 notificationNewUsers : 0 116 }, 117 118 /** AutoConnection 117 119 * 118 120 */ 119 121 120 autoConnection : { connect : true }, 121 122 /** Active Chat Room 122 autoConnection : { 123 connect : true 124 }, 125 126 /** Active Chat Room 123 127 * 124 128 */ 125 129 126 activeChatRoom : { name : [] }, 127 128 /** Object: chatHistory 130 activeChatRoom : { 131 name : [] 132 }, 133 134 /** Object: chatHistory 129 135 * 130 136 * Stores chat history (last 10 message) and current presence of active … … 132 138 */ 133 139 134 135 136 140 chatHistory : {}, 141 142 /** Constants: 137 143 * 138 144 * (Boolean) stale_roster - roster is stale and needs to be rewritten. 139 145 */ 140 146 141 constants : {stale_roster: false}, 142 143 /** PosWindow 147 constants : { 148 stale_roster: false 149 }, 150 151 /** PosWindow 144 152 * 145 153 */ 146 posWindow : { left : 400, top : 100 }, 147 148 /** StatusConnection 154 posWindow : { 155 left : 400, 156 top : 100 157 }, 158 159 /** StatusConnection 149 160 * 150 161 */ 151 162 152 statusConn : { connected : false }, 153 154 /** TimeOut Render Roster 163 statusConn : { 164 connected : false 165 }, 166 167 /** TimeOut Render Roster 155 168 * 156 169 * 157 170 */ 158 171 159 _timeOut : { renderRoster : null }, 160 161 162 /** Remove Contact ( type = set ) 172 _timeOut : { 173 renderRoster : null 174 }, 175 176 177 /** Remove Contact ( type = set ) 163 178 * 164 179 * 165 180 */ 166 181 167 removeResult : { idResult : [] }, 168 169 /** Function: setCookie 182 removeResult : { 183 idResult : [] 184 }, 185 186 /** Function: setCookie 170 187 * 171 188 * Sets cookie name/value pair. Date and path are auto-selected. … … 176 193 */ 177 194 178 179 195 setCookie : function(name, value) 196 { 180 197 var expire = new Date(); 181 198 expire.setDate(expire.getDate() + 365); … … 183 200 }, 184 201 185 202 /** Function: delCookie 186 203 * 187 204 * Deletes cookie … … 191 208 */ 192 209 193 194 210 delCookie : function(name) 211 { 195 212 var expire = new Date(); 196 213 expire.setDate(expire.getDate() - 365); … … 199 216 }, 200 217 201 218 /** Function: getCookies 202 219 * 203 220 * Retrieves all trophyim cookies into an indexed object. Inteneded to be … … 208 225 */ 209 226 210 211 227 getCookies : function() 228 { 212 229 var cObj = {}; 213 230 var cookies = document.cookie.split(';'); … … 215 232 for(var i = 0 ; i < cookies.length; i++ ) 216 233 { 217 234 while ( cookies[i].charAt(0) == ' ') 218 235 { 219 236 cookies[i] = cookies[i].substring(1,cookies[i].length); … … 237 254 */ 238 255 239 240 241 242 { 243 256 load : function() 257 { 258 if( loadscript.getUserCurrent() == null ) 259 { 260 loadscript.setUserCurrent(); 244 261 } 245 262 246 247 248 249 250 251 252 253 254 255 256 257 },258 259 /** Function: storeData263 if ( !TrophyIM.statusConn.connected ) 264 { 265 TrophyIM.cookies = TrophyIM.getCookies(); 266 267 //Wait a second to give scripts time to load 268 setTimeout( "TrophyIM.showLogin()", 550 ); 269 } 270 else 271 { 272 loadscript.rosterDiv(); 273 } 274 }, 275 276 /** Function: storeData 260 277 * 261 278 * Store all our data in the JSONStore, if it is active 262 279 */ 263 280 264 storeData : function()265 {281 storeData : function() 282 { 266 283 if ( TrophyIM.connection && TrophyIM.connection.connected ) 267 284 { 268 285 TrophyIM.setCookie('trophyim_bosh_xid', TrophyIM.connection.jid + "|" + 269 TrophyIM.connection.sid + "|" + TrophyIM.connection.rid);286 TrophyIM.connection.sid + "|" + TrophyIM.connection.rid); 270 287 TrophyIM.rosterObj.save(); 271 288 } … … 280 297 281 298 showLogin : function() 282 299 { 283 300 /** 284 301 * … … 288 305 */ 289 306 290 291 { 292 307 if ( typeof(JSON) != undefined && typeof(Strophe) != undefined ) 308 { 309 TrophyIM.JSONStore = new TrophyIMJSONStore(); 293 310 294 295 { 296 311 if ( TrophyIM.JSONStore.store_working && TrophyIM.cookies['trophyim_bosh_xid'] ) 312 { 313 var xids = TrophyIM.cookies['trophyim_bosh_xid'].split("|"); 297 314 TrophyIM.delCookie('trophyim_bosh_xid'); 298 315 TrophyIM.constants.stale_roster = true; 299 316 300 317 TrophyIM.connection = new Strophe.Connection(TROPHYIM_BOSH_SERVICE); 301 318 TrophyIM.connection.rawInput = TrophyIM.rawInput; 302 319 TrophyIM.connection.rawOutput = TrophyIM.rawOutput; … … 308 325 else 309 326 { 310 311 312 313 314 315 327 // List Contact 328 loadscript.rosterDiv(); 329 330 // Get User Current; 331 var _getUserCurrent = null; 332 _getUserCurrent = loadscript.getUserCurrent(); 316 333 317 318 319 320 321 322 323 324 334 if( _getUserCurrent == null ) 335 { 336 setTimeout( "TrophyIM.showLogin()", 500 ); 337 } 338 else 339 { 340 TrophyIM.login( Base64.decode( _getUserCurrent.jid ), Base64.decode( _getUserCurrent.password )); 341 } 325 342 } 326 343 } 327 344 else 328 345 { 329 330 } 331 }, 332 333 346 setTimeout("TrophyIM.showLogin()", 500); 347 } 348 }, 349 350 /** Function: log 334 351 * 335 352 * This function logs the given message in the trophyimlog div … … 361 378 */ 362 379 rawInput : function (data) 363 380 { 364 381 Strophe.debug("RECV: " + data); 365 382 }, … … 370 387 */ 371 388 rawOutput : function (data) 372 389 { 373 390 Strophe.debug("SEND: " + data); 374 391 }, … … 382 399 */ 383 400 login : function() 384 385 386 387 401 { 402 if ( TrophyIM.JSONStore.store_working ) 403 { 404 //In case they never logged out 388 405 TrophyIM.JSONStore.delData(['groups','roster', 'active_chat', 'chat_history']); 389 406 } 390 407 391 408 TrophyIM.connection = new Strophe.Connection(TROPHYIM_BOSH_SERVICE); 392 409 TrophyIM.connection.rawInput = TrophyIM.rawInput; 393 410 TrophyIM.connection.rawOutput = TrophyIM.rawOutput; 394 411 //Strophe.log = TrophyIM.log; 395 412 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 413 if ( arguments.length > 0 ) 414 { 415 var barejid = arguments[0]; 416 var password = arguments[1]; 417 418 TrophyIM.connection.connect( barejid + TROPHYIM_RESOURCE, password, TrophyIM.onConnect ); 419 } 420 else 421 { 422 423 var barejid = document.getElementById('trophyimjid').value 424 var fulljid = barejid + TROPHYIM_RESOURCE; 425 var password = document.getElementById('trophyimpass').value; 426 var button = document.getElementById('trophyimconnect'); 427 428 loadscript.setUserCurrent( barejid, password); 429 430 if ( button.value == 'connect' ) 431 { 432 button.value = 'disconnect'; 433 //TrophyIM.connection.connect( fulljid , password, TrophyIM.onConnect ); 417 434 418 419 420 421 422 423 435 TrophyIM.login( barejid, password ); 436 _winBuild('window_login_page', 'remove'); 437 } 438 } 439 440 TrophyIM.setCookie('trophyimjid', barejid); 424 441 }, 425 442 … … 429 446 */ 430 447 logout : function() 431 432 448 { 449 TrophyIM.autoConnection.connect = false; 433 450 434 451 TrophyIM.delCookie('trophyim_bosh_xid'); 435 452 436 453 delete TrophyIM['cookies']['trophyim_bosh_xid']; … … 444 461 */ 445 462 onConnect : function(status) 446 447 448 449 450 451 452 453 } 454 455 456 457 463 { 464 var loading_gif = document.getElementById("JabberIMRosterLoadingGif"); 465 466 if( status == Strophe.Status.CONNECTING ) 467 { 468 loading_gif.style.display = "block"; 469 Strophe.info('Strophe is connecting.'); 470 } 471 472 if( status == Strophe.Status.CONNFAIL ) 473 { 474 TrophyIM.delCookie('trophyim_bosh_xid'); 458 475 TrophyIM.statusConn.connected = false; 459 476 loading_gif.style.display = "block"; 460 477 } 461 478 462 463 464 465 } 466 467 468 469 470 471 479 if( status == Strophe.Status.DISCONNECTING ) 480 { 481 TrophyIM.statusConn.connected = false; 482 } 483 484 if( status == Strophe.Status.DISCONNECTED ) 485 { 486 if( TrophyIM.autoConnection.connect ) 487 { 488 loading_gif.style.display = "block"; 472 489 473 490 TrophyIM.delCookie('trophyim_bosh_xid'); 474 491 475 492 TrophyIM.statusConn.connected = false; 476 493 477 478 479 494 setTimeout(function() 495 { 496 TrophyIM.showLogin(); 480 497 481 498 },10000); 482 499 483 500 loadscript.clrAllContacts(); 484 501 485 502 loadscript.setStatusJabber(i18n.STATUS_ANAVAILABLE,"unavailable"); 486 503 487 488 489 490 } 491 492 493 494 495 504 delete TrophyIM.rosterObj.roster; 505 delete TrophyIM.rosterObj.groups; 506 } 507 } 508 509 if( status == Strophe.Status.CONNECTED ) 510 { 511 loadscript.setStatusJabber(i18n.STATUS_AVAILABLE,'available'); 512 TrophyIM.statusConn.connected = true; 496 513 TrophyIM.showClient(); 497 514 } … … 504 521 */ 505 522 showClient : function() 506 523 { 507 524 TrophyIM.setCookie('trophyim_bosh_xid', TrophyIM.connection.jid + "|" + 508 TrophyIM.connection.sid + "|" + TrophyIM.connection.rid);525 TrophyIM.connection.sid + "|" + TrophyIM.connection.rid); 509 526 510 527 TrophyIM.rosterObj = new TrophyIMRoster(); … … 514 531 TrophyIM.connection.addHandler(TrophyIM.onMessage, null, 'message', null, null, null); 515 532 516 //Get roster then announce presence. 517 TrophyIM.connection.send($iq({type: 'get', xmlns: Strophe.NS.CLIENT}).c('query', {xmlns: Strophe.NS.ROSTER}).tree()); 533 //Get roster then announce presence. 534 TrophyIM.connection.send($iq({ 535 type: 'get', 536 xmlns: Strophe.NS.CLIENT 537 }).c('query', { 538 xmlns: Strophe.NS.ROSTER 539 }).tree()); 518 540 TrophyIM.connection.send($pres().tree()); 519 541 setTimeout( TrophyIM.renderRoster, 1000); 520 542 }, 521 543 … … 558 580 var to = msg.getAttribute('to'); 559 581 var id = msg.getAttribute('id'); 560 var reply = $iq({type: 'result', to: from, from: to, id: id}).c('query', 561 {name: "TrophyIM", version: TROPHYIM_VERSION, os: 562 "Javascript-capable browser"}); 582 var reply = $iq({ 583 type: 'result', 584 to: from, 585 from: to, 586 id: id 587 }).c('query', 588 589 { 590 name: "TrophyIM", 591 version: TROPHYIM_VERSION, 592 os: 593 "Javascript-capable browser" 594 }); 563 595 TrophyIM.connection.send(reply.tree()); 564 596 } … … 572 604 573 605 onRoster : function(msg) 574 575 576 577 578 579 580 581 582 606 { 607 var roster_items = msg.firstChild.getElementsByTagName('item'); 608 609 for (var i = 0; i < roster_items.length; i++) 610 { 611 with(roster_items[i]) 612 { 613 var groups = getElementsByTagName('group'); 614 var group_array = []; 583 615 584 585 586 587 588 589 590 591 592 593 594 595 616 for( var g = 0 ; g < groups.length; g++ ) 617 { 618 if( groups[g].hasChildNodes() ) 619 group_array[group_array.length] = groups[g].firstChild.nodeValue; 620 } 621 622 if( getAttribute('ask') && getAttribute('ask').toString() === "subscribe" ) 623 { 624 if( getAttribute('subscription').toString() === "none" ) 625 { 626 TrophyIM.rosterObj.addContact( getAttribute('jid'), getAttribute('ask'), getAttribute('name'), group_array ); 627 } 596 628 597 if( getAttribute('subscription').toString() === "remove" ) 598 { 599 TrophyIM.rosterObj.removeContact( getAttribute('jid').toString() ); 600 } 601 } 602 else 603 { 604 if( ( getAttribute('ask') == null && getAttribute('subscription').toString() === "remove" ) || getAttribute('subscription').toString() === "remove" ) 605 { 606 TrophyIM.rosterObj.removeContact( getAttribute('jid').toString() ); 607 } 608 else 609 { 610 TrophyIM.rosterObj.addContact( getAttribute('jid'), getAttribute('subscription'), getAttribute('name'), group_array ); 611 } 612 } 613 } 614 } 615 616 if ( msg.getAttribute('type') == 'set' ) 617 { 618 var _iq = $iq({type: 'reply', id: msg.getAttribute('id'), to: msg.getAttribute('from')}); 619 TrophyIM.connection.send( _iq.tree()); 620 } 621 622 return true; 629 if( getAttribute('subscription').toString() === "remove" ) 630 { 631 TrophyIM.rosterObj.removeContact( getAttribute('jid').toString() ); 632 } 633 } 634 else 635 { 636 if( ( getAttribute('ask') == null && getAttribute('subscription').toString() === "remove" ) || getAttribute('subscription').toString() === "remove" ) 637 { 638 TrophyIM.rosterObj.removeContact( getAttribute('jid').toString() ); 639 } 640 else 641 { 642 TrophyIM.rosterObj.addContact( getAttribute('jid'), getAttribute('subscription'), getAttribute('name'), group_array ); 643 } 644 } 645 } 646 } 647 648 if ( msg.getAttribute('type') == 'set' ) 649 { 650 var _iq = $iq({ 651 type: 'reply', 652 id: msg.getAttribute('id'), 653 to: msg.getAttribute('from') 654 }); 655 TrophyIM.connection.send( _iq.tree()); 656 } 657 658 return true; 623 659 }, 624 660 … … 629 665 630 666 onPresence : function(msg) 631 632 633 634 635 667 { 668 // Get Presences ChatRoom 669 TrophyIM.onPresenceChatRoom( msg ); 670 671 var type = msg.getAttribute('type') ? msg.getAttribute('type') : 'available'; 636 672 var show = msg.getElementsByTagName('show').length ? Strophe.getText(msg.getElementsByTagName('show')[0]) : type; 637 673 var status = msg.getElementsByTagName('status').length ? Strophe.getText(msg.getElementsByTagName('status')[0]) : ''; 638 674 var priority = msg.getElementsByTagName('priority').length ? parseInt(Strophe.getText(msg.getElementsByTagName('priority')[0])) : 0; 639 675 640 641 642 643 644 645 646 647 648 649 650 651 676 if( msg.getAttribute('from').toString().indexOf( TROPHYIM_CHATROOM ) < 0 ) 677 { 678 var _from = Strophe.getBareJidFromJid( msg.getAttribute('from') ); 679 var _flag = true; 680 681 if( TrophyIM.removeResult.idResult.length > 0 ) 682 { 683 for( var i = 0 ; i < TrophyIM.removeResult.idResult.length; i++ ) 684 { 685 if( TrophyIM.removeResult.idResult[i] == _from ) 686 { 687 _flag = false; 652 688 653 689 TrophyIM.removeResult.idResult.splice(i,1); 654 690 655 691 i--; 656 692 657 658 659 660 661 693 if( show.toLowerCase() === 'subscribe' ) 694 _flag = true; 695 } 696 } 697 } 662 698 663 664 665 } 666 667 699 if( _flag ) 700 TrophyIM.rosterObj.setPresence( msg.getAttribute('from'), priority, show, status ); 701 } 702 703 return true; 668 704 }, 669 705 … … 675 711 onPresenceChatRoom : function(msg) 676 712 { 677 var xquery = msg.getElementsByTagName("x"); 678 679 if ( xquery.length > 0 ) 680 { 681 for ( var i = 0; i < xquery.length; i++ ) 682 { 683 var xmlns = xquery[i].getAttribute("xmlns"); 684 685 if( xmlns.indexOf("http://jabber.org/protocol/muc#user") == 0 ) 686 { 687 var _from = xquery[i].parentNode.getAttribute('from'); 688 var _to = xquery[i].parentNode.getAttribute('to'); 689 690 // Get NameChatRoom 691 var nameChatRoom = Strophe.getBareJidFromJid( _from ); 692 693 // Get nickName 694 var nickName = Strophe.getResourceFromJid( _from ); 695 696 // Get Type/Show 697 var type = ( xquery[i].parentNode.getAttribute('type') != null ) ? xquery[i].parentNode.getAttribute('type') : 'available' ; 698 var show = ( xquery[i].parentNode.firstChild.nodeName == "show" ) ? xquery[i].parentNode.firstChild.firstChild.nodeValue : type; 699 700 var _idElement = nameChatRoom + "_UserChatRoom__" + nickName; 701 702 var _UserChatRoom = document.createElement("div"); 703 _UserChatRoom.id = _idElement; 704 _UserChatRoom.style.paddingLeft = '18px'; 705 _UserChatRoom.style.margin = '3px 0px 0px 2px'; 706 _UserChatRoom.style.background = 'url("'+path_jabberit+'templates/default/images/' + show + '.gif") no-repeat center left'; 707 _UserChatRoom.appendChild( document.createTextNode( nickName ) ); 708 709 var nodeUser = document.getElementById( _idElement ); 710 711 if( nodeUser == null ) 712 { 713 if( document.getElementById( nameChatRoom + '__roomChat__participants' ) != null ) 714 { 715 nameChatRoom = document.getElementById( nameChatRoom + '__roomChat__participants' ); 716 nameChatRoom.appendChild( _UserChatRoom ); 717 } 718 else 719 { 720 if( type != 'unavailable' ) 721 { 722 TrophyIM.makeChatRoom( nameChatRoom, nameChatRoom.substring(0, nameChatRoom.indexOf('@'))); 723 nameChatRoom = document.getElementById( nameChatRoom + '__roomChat__participants' ); 724 nameChatRoom.appendChild( _UserChatRoom ); 725 } 726 } 727 } 728 else 729 { 730 if( type == 'unavailable' ) 731 { 732 nodeUser.parentNode.removeChild( nodeUser ); 733 } 734 else if( show ) 735 { 736 nodeUser.style.backgroundImage = 'url("'+path_jabberit+'templates/default/images/' + show + '.gif")'; 737 } 738 } 713 var xquery = msg.getElementsByTagName("x"); 714 var _error = msg.getElementsByTagName("error"); 715 716 717 if( _error.length > 0 ) 718 { 719 /* Room creation is denied by service policy; 720 * 721 * <error code='403' type='auth'> 722 * <forbidden xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/> 723 * <text xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'>Room creation is denied by service policy</text> 724 * </error> 725 */ 726 727 for ( var i = 0; i < _error.length; i++ ) 728 { 729 if ( _error[i].getElementsByTagName("text") ) 730 { 731 var _errorMsg = Strophe.getText( _error[i].getElementsByTagName("text")[0] ); 732 733 if( _errorMsg == "Room creation is denied by service policy" ) 734 { 735 alert( i18n.ROOM_CREATION_IS_DENIED_BY_SERVICE_POLICY ); 736 } 737 else 738 { 739 alert( " Informe ao seu Administrador ERRO : \n" + _errorMsg ); 740 } 741 742 } 743 } 744 } 745 else 746 { 747 if ( xquery.length > 0 ) 748 { 749 for ( var i = 0; i < xquery.length; i++ ) 750 { 751 var xmlns = xquery[i].getAttribute("xmlns"); 752 753 if( xmlns.indexOf("http://jabber.org/protocol/muc#user") == 0 ) 754 { 755 var _from = xquery[i].parentNode.getAttribute('from'); 756 var _to = xquery[i].parentNode.getAttribute('to'); 757 758 // Get NameChatRoom 759 var nameChatRoom = Strophe.getBareJidFromJid( _from ); 760 761 // Get nickName 762 var nickName = Strophe.getResourceFromJid( _from ); 763 764 // Get Type/Show 765 var type = ( xquery[i].parentNode.getAttribute('type') != null ) ? xquery[i].parentNode.getAttribute('type') : 'available' ; 766 var show = ( xquery[i].parentNode.firstChild.nodeName == "show" ) ? xquery[i].parentNode.firstChild.firstChild.nodeValue : type; 767 768 var _idElement = nameChatRoom + "_UserChatRoom__" + nickName; 769 770 var _UserChatRoom = document.createElement("div"); 771 _UserChatRoom.id = _idElement; 772 _UserChatRoom.style.paddingLeft = '18px'; 773 _UserChatRoom.style.margin = '3px 0px 0px 2px'; 774 _UserChatRoom.style.background = 'url("'+path_jabberit+'templates/default/images/' + show + '.gif") no-repeat center left'; 775 _UserChatRoom.appendChild( document.createTextNode( nickName ) ); 776 777 var nodeUser = document.getElementById( _idElement ); 778 779 if( nodeUser == null ) 780 { 781 if( document.getElementById( nameChatRoom + '__roomChat__participants' ) != null ) 782 { 783 nameChatRoom = document.getElementById( nameChatRoom + '__roomChat__participants' ); 784 nameChatRoom.appendChild( _UserChatRoom ); 785 } 786 else 787 { 788 if( type != 'unavailable' ) 789 { 790 TrophyIM.makeChatRoom( nameChatRoom, nameChatRoom.substring(0, nameChatRoom.indexOf('@'))); 791 nameChatRoom = document.getElementById( nameChatRoom + '__roomChat__participants' ); 792 nameChatRoom.appendChild( _UserChatRoom ); 793 } 794 } 795 } 796 else 797 { 798 if( type == 'unavailable' ) 799 { 800 nodeUser.parentNode.removeChild( nodeUser ); 801 } 802 else if( show ) 803 { 804 nodeUser.style.backgroundImage = 'url("'+path_jabberit+'templates/default/images/' + show + '.gif")'; 805 } 806 } 807 } 739 808 } 740 809 } … … 749 818 onMessage : function(msg) 750 819 { 751 752 753 820 var checkTime = function(i) 821 { 822 if ( i < 10 ) i= "0" + i; 754 823 755 756 824 return i; 825 }; 757 826 758 759 760 761 762 763 764 765 766 767 768 769 827 var messageDate = function( _date ) 828 { 829 var _dt = _date.substr( 0, _date.indexOf( 'T' ) ).split( '-' ); 830 var _hr = _date.substr( _date.indexOf( 'T' ) + 1, _date.length - _date.indexOf( 'T' ) - 2 ).split( ':' ); 831 832 ( _date = new Date ).setTime( Date.UTC( _dt[0], _dt[1] - 1, _dt[2], _hr[0], _hr[1], _hr[2] ) ); 833 834 return ( _date.toLocaleDateString( ).replace( /-/g, '/' ) + ' ' + _date.toLocaleTimeString( ) ); 835 }; 836 837 var data = new Date(); 838 var dtNow = checkTime(data.getHours()) + ":" + checkTime(data.getMinutes()) + ":" + checkTime(data.getSeconds()); 770 839 771 840 var from = msg.getAttribute('from'); … … 775 844 var stamp = ( delay[0] != null ) ? "<font style='color:red;'>" + messageDate(delay[0].getAttribute('stamp')) + "</font>" : dtNow; 776 845 777 778 779 780 781 782 783 784 785 786 787 788 846 var barejid = Strophe.getBareJidFromJid(from); 847 var jidChatRoom = Strophe.getResourceFromJid(from); 848 var jid_lower = barejid.toLowerCase(); 849 var contact = ""; 850 var state = ""; 851 852 var chatBox = document.getElementById(jid_lower + "__chatState"); 853 var chatStateOnOff = null; 854 var active = msg.getElementsByTagName('active'); 855 856 contact = barejid.toLowerCase(); 857 contact = contact.substring(0, contact.indexOf('@')); 789 858 790 if( TrophyIM.rosterObj.roster[barejid] ) 791 { 792 if( TrophyIM.rosterObj.roster[barejid.toLowerCase()]['contact']['name'] ) 793 { 794 contact = TrophyIM.rosterObj.roster[barejid.toLowerCase()]['contact']['name']; 795 } 796 } 797 798 // Message with body are "content message", this means state active 799 if ( elems.length > 0 ) 800 { 801 state = ""; 802 803 // Set notify chat state capability on when sender notify it themself 804 chatStateOnOff = document.getElementById(jid_lower + "__chatStateOnOff"); 805 806 if (active.length > 0 & chatStateOnOff != null ) 807 { 808 chatStateOnOff.value = 'on'; 809 } 810 811 // Get Message 812 var _message = document.createElement("div"); 813 var _text = Strophe.getText( elems[0] ); 814 815 // Events Javascript 816 _text = _text.replace(/onblur/gi,"EVENT_DENY"); 817 818 _text = _text.replace(/onchange/gi,"EVENT_DENY"); 819 820 _text = _text.replace(/onclick/gi,"EVENT_DENY"); 821 822 _text = _text.replace(/ondblclick/gi,"EVENT_DENY"); 823 824 _text = _text.replace(/onerror/gi,"EVENT_DENY"); 825 826 _text = _text.replace(/onfocus/gi,"EVENT_DENY"); 827 828 _text = _text.replace(/onkeydown/gi,"EVENT_DENY"); 829 830 _text = _text.replace(/onkeypress/gi,"EVENT_DENY"); 831 832 _text = _text.replace(/onkeyup/gi,"EVENT_DENY"); 833 834 _text = _text.replace(/onmousedown/gi,"EVENT_DENY"); 835 836 _text = _text.replace(/onmousemove/gi,"EVENT_DENY"); 837 838 _text = _text.replace(/onmouseout/gi,"EVENT_DENY"); 839 840 _text = _text.replace(/onmouseover/gi,"EVENT_DENY"); 841 842 _text = _text.replace(/onmouseup/gi,"EVENT_DENY"); 843 844 _text = _text.replace(/onresize/gi,"EVENT_DENY"); 845 846 _text = _text.replace(/onselect/gi,"EVENT_DENY"); 847 848 _text = _text.replace(/onunload/gi,"EVENT_DENY"); 849 850 // Events CSS 851 _text = _text.replace(/style/gi,"EVENT_DENY"); 852 853 // Tags HTML 854 _text = _text.replace(/img /gi,"IMG_DENY "); 855 856 _text = _text.replace(/script /gi,"SCRIPT_DENY "); 857 858 _text = _text.replace(/div /gi,"DIV_DENY "); 859 860 _text = _text.replace(/span /gi,"SPAN_DENY "); 861 862 _text = _text.replace(/iframe /gi,"IFRAME_DENY "); 863 864 _message.innerHTML = _text; 865 866 ////////// BEGIN XSS ////////////////////////////////////////////////// 867 // Delete Tags <SCRIPT> 868 var scripts = _message.getElementsByTagName('script_deny'); 869 for (var i = 0; i < scripts.length; i++){ _message.removeChild(scripts[i--]); } 870 //////////////////////////////////////////////////// 871 872 // Delete Tags <IMG> 873 var _imgSrc = _message.getElementsByTagName('img_deny'); 874 for (var i = 0; i < _imgSrc.length; i++){ _imgSrc[i].parentNode.removeChild( _imgSrc[i--] ); } 875 //////////////////////////////////////////////////// 876 877 // Delete Tags <DIV> 878 var _Div = _message.getElementsByTagName('div_deny'); 879 for (var i = 0; i < _Div.length; i++){ _Div[i].parentNode.removeChild( _Div[i--] ); } 880 //////////////////////////////////////////////////// 881 882 // Delete Tags <SPAN> 883 var _Span = _message.getElementsByTagName('span_deny'); 884 for (var i = 0; i < _Span.length; i++){ _Span[i].parentNode.removeChild( _Span[i--] ); } 885 //////////////////////////////////////////////////// 886 887 // Delete Tags <IFRAME> 888 var _Iframe = _message.getElementsByTagName('iframe_deny'); 889 for (var i = 0; i < _Iframe.length; i++){ _Iframe[i].parentNode.removeChild( _Iframe[i--] ); } 890 891 // Delete Tags <A HREF> 892 var _aHref = _message.getElementsByTagName('a'); 893 for (var i = 0; i < _aHref.length; i++){ _aHref[i].parentNode.removeChild( _aHref[i--] ); } 894 895 _message.innerHTML = _message.innerHTML.replace(/^\s+|\s+$|^\n|\n$/g, ""); 896 ////////// END XSS ////////////////////////////////////////////////// 897 898 // Get Smiles 899 _message.innerHTML = loadscript.getSmiles( _message.innerHTML ); 900 901 if (type == 'chat' || type == 'normal') 902 { 903 if ( _message.hasChildNodes() ) 904 { 905 var message = 906 { 907 contact : "[" + stamp + "] <font style='font-weight:bold; color:black;'>" + contact + "</font>", 908 msg : "</br>" + _message.innerHTML 909 }; 859 if( TrophyIM.rosterObj.roster[barejid] ) 860 { 861 if( TrophyIM.rosterObj.roster[barejid.toLowerCase()]['contact']['name'] ) 862 { 863 contact = TrophyIM.rosterObj.roster[barejid.toLowerCase()]['contact']['name']; 864 } 865 } 866 867 // Message with body are "content message", this means state active 868 if ( elems.length > 0 ) 869 { 870 state = ""; 871 872 // Set notify chat state capability on when sender notify it themself 873 chatStateOnOff = document.getElementById(jid_lower + "__chatStateOnOff"); 874 875 if (active.length > 0 & chatStateOnOff != null ) 876 { 877 chatStateOnOff.value = 'on'; 878 } 879 880 // Get Message 881 var _message = document.createElement("div"); 882 var _text = Strophe.getText( elems[0] ); 883 884 // Events Javascript 885 _text = _text.replace(/onblur/gi,"EVENT_DENY"); 886 887 _text = _text.replace(/onchange/gi,"EVENT_DENY"); 888 889 _text = _text.replace(/onclick/gi,"EVENT_DENY"); 890 891 _text = _text.replace(/ondblclick/gi,"EVENT_DENY"); 892 893 _text = _text.replace(/onerror/gi,"EVENT_DENY"); 894 895 _text = _text.replace(/onfocus/gi,"EVENT_DENY"); 896 897 _text = _text.replace(/onkeydown/gi,"EVENT_DENY"); 898 899 _text = _text.replace(/onkeypress/gi,"EVENT_DENY"); 900 901 _text = _text.replace(/onkeyup/gi,"EVENT_DENY"); 902 903 _text = _text.replace(/onmousedown/gi,"EVENT_DENY"); 904 905 _text = _text.replace(/onmousemove/gi,"EVENT_DENY"); 906 907 _text = _text.replace(/onmouseout/gi,"EVENT_DENY"); 908 909 _text = _text.replace(/onmouseover/gi,"EVENT_DENY"); 910 911 _text = _text.replace(/onmouseup/gi,"EVENT_DENY"); 912 913 _text = _text.replace(/onresize/gi,"EVENT_DENY"); 914 915 _text = _text.replace(/onselect/gi,"EVENT_DENY"); 916 917 _text = _text.replace(/onunload/gi,"EVENT_DENY"); 918 919 // Events CSS 920 _text = _text.replace(/style/gi,"EVENT_DENY"); 921 922 // Tags HTML 923 _text = _text.replace(/img /gi,"IMG_DENY "); 924 925 _text = _text.replace(/script /gi,"SCRIPT_DENY "); 926 927 _text = _text.replace(/div /gi,"DIV_DENY "); 928 929 _text = _text.replace(/span /gi,"SPAN_DENY "); 930 931 _text = _text.replace(/iframe /gi,"IFRAME_DENY "); 932 933 _message.innerHTML = _text; 934 935 ////////// BEGIN XSS ////////////////////////////////////////////////// 936 // Delete Tags <SCRIPT> 937 var scripts = _message.getElementsByTagName('script_deny'); 938 for (var i = 0; i < scripts.length; i++){ 939 _message.removeChild(scripts[i--]); 940 } 941 //////////////////////////////////////////////////// 942 943 // Delete Tags <IMG> 944 var _imgSrc = _message.getElementsByTagName('img_deny'); 945 for (var i = 0; i < _imgSrc.length; i++){ 946 _imgSrc[i].parentNode.removeChild( _imgSrc[i--] ); 947 } 948 //////////////////////////////////////////////////// 949 950 // Delete Tags <DIV> 951 var _Div = _message.getElementsByTagName('div_deny'); 952 for (var i = 0; i < _Div.length; i++){ 953 _Div[i].parentNode.removeChild( _Div[i--] ); 954 } 955 //////////////////////////////////////////////////// 956 957 // Delete Tags <SPAN> 958 var _Span = _message.getElementsByTagName('span_deny'); 959 for (var i = 0; i < _Span.length; i++){ 960 _Span[i].parentNode.removeChild( _Span[i--] ); 961 } 962 //////////////////////////////////////////////////// 963 964 // Delete Tags <IFRAME> 965 var _Iframe = _message.getElementsByTagName('iframe_deny'); 966 for (var i = 0; i < _Iframe.length; i++){ 967 _Iframe[i].parentNode.removeChild( _Iframe[i--] ); 968 } 969 970 // Delete Tags <A HREF> 971 var _aHref = _message.getElementsByTagName('a'); 972 for (var i = 0; i < _aHref.length; i++){ 973 _aHref[i].parentNode.removeChild( _aHref[i--] ); 974 } 975 976 _message.innerHTML = _message.innerHTML.replace(/^\s+|\s+$|^\n|\n$/g, ""); 977 ////////// END XSS ////////////////////////////////////////////////// 978 979 // Get Smiles 980 _message.innerHTML = loadscript.getSmiles( _message.innerHTML ); 981 982 if (type == 'chat' || type == 'normal') 983 { 984 if ( _message.hasChildNodes() ) 985 { 986 var message = 987 { 988 contact : "[" + stamp + "] <font style='font-weight:bold; color:black;'>" + contact + "</font>", 989 msg : "</br>" + _message.innerHTML 990 }; 910 991 911 912 913 914 915 916 917 918 919 920 921 msg: "</br>" + _message.innerHTML922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 992 TrophyIM.addMessage( TrophyIM.makeChat( from ), jid_lower, message ); 993 } 994 } 995 else if( type == 'groupchat') 996 { 997 if ( _message.hasChildNodes() ) 998 { 999 var message = 1000 { 1001 contact : "[" + stamp + "] <font style='font-weight:bold; color:black;'>" + jidChatRoom + "</font>", 1002 msg : "</br>" + _message.innerHTML 1003 }; 1004 1005 TrophyIM.addMessage( TrophyIM.makeChatRoom( barejid ), jid_lower, message ); 1006 } 1007 } 1008 } 1009 // Message without body are "content message", this mean state is not active 1010 else 1011 { 1012 if( chatBox != null ) 1013 state = TrophyIM.getChatState(msg); 1014 } 1015 1016 // Clean chat status message some time later 1017 var clearChatState = function() 1018 { 1019 chatBox.innerHTML=''; 1020 } 1021 1022 if (chatBox != null) 1023 { 1024 var clearChatStateTimer; 1025 1026 chatBox.innerHTML = "<font style='font-weight:bold; color:grey; float:right;'>" + state + "</font>"; 1027 1028 var _composing = msg.getElementsByTagName('composing'); 1029 1030 if ( _composing.length == 0 ) 950 1031 951 952 953 954 955 956 957 958 959 1032 clearChatStateTimer = setTimeout(clearChatState, 2000); 1033 else 1034 clearTimeout(clearChatStateTimer); 1035 } 1036 1037 return true; 1038 }, 1039 1040 /** Function: getChatState 960 1041 * 961 1042 * Parameters: … … 963 1044 * (string) jid - the jid of chat box to update the chat state to. 964 1045 */ 965 966 967 1046 getChatState : function(msg) 1047 { 1048 var state = msg.getElementsByTagName('inactive'); 968 1049 969 970 971 972 973 974 975 1050 if ( state.length > 0 ) 1051 { 1052 return i18n.INACTIVE; 1053 } 1054 else 1055 { 1056 state = msg.getElementsByTagName('gone'); 976 1057 if ( state.length > 0 ) 977 1058 { 978 979 1059 return i18n.GONE; 1060 } 980 1061 else 981 1062 { 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1063 state = msg.getElementsByTagName('composing'); 1064 if ( state.length > 0 ) 1065 { 1066 return i18n.COMPOSING; 1067 } 1068 else 1069 { 1070 state = msg.getElementsByTagName('paused'); 1071 if ( state.length > 0 ) 1072 { 1073 return i18n.PAUSED; 1074 } 1075 } 1076 } 1077 } 1078 1079 return ''; 1080 }, 1081 1082 /** Function: makeChat 1002 1083 * 1003 1084 * Make sure chat window to given fulljid exists, switching chat context to … … 1007 1088 makeChat : function(fulljid) 1008 1089 { 1009 1010 1011 1012 1013 1014 'enabledPopUp' : ( ( loadscript.getIsIE() ) ? "none" : "block" ),1015 1016 1017 1018 1019 1020 1021 1090 var barejid = Strophe.getBareJidFromJid(fulljid); 1091 var titleWindow = ""; 1092 1093 var paramsChatBox = 1094 { 1095 'enabledPopUp' : ( ( loadscript.getBrowserCompatible() ) ? "block" : "none" ), 1096 'idChatBox' : barejid + "__chatBox", 1097 'jidTo' : barejid, 1098 'path_jabberit' : path_jabberit 1099 }; 1100 1101 titleWindow = barejid.toLowerCase(); 1102 titleWindow = titleWindow.substring(0, titleWindow.indexOf('@')); 1022 1103 1023 1104 if( TrophyIM.rosterObj.roster[barejid] ) … … 1025 1106 if( TrophyIM.rosterObj.roster[barejid.toLowerCase()]['contact']['name'] ) 1026 1107 { 1027 1108 titleWindow = TrophyIM.rosterObj.roster[barejid.toLowerCase()]['contact']['name']; 1028 1109 } 1029 1110 } … … 1032 1113 TrophyIM.posWindow.top = TrophyIM.posWindow.top + 10; 1033 1114 if( TrophyIM.posWindow.top > 200 ) 1034 1115 TrophyIM.posWindow.top = 100; 1035 1116 1036 1117 // Position Left 1037 1118 TrophyIM.posWindow.left = TrophyIM.posWindow.left + 5; 1038 1119 if( TrophyIM.posWindow.left > 455 ) 1039 1120 TrophyIM.posWindow.left = 400; 1040 1121 1041 1122 var _content = document.createElement( 'div' ); … … 1046 1127 var _textarea = _content.getElementsByTagName( 'textarea' ).item( 0 ); 1047 1128 var _send = _content.getElementsByTagName( 'input' ).item( 0 ); 1048 1129 var _chatStateOnOff = _content.getElementsByTagName( 'input' ).item( 1 ); 1049 1130 1050 1131 var _send_message = function( ) 1051 1132 { 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1133 if ( ! TrophyIM.sendMessage( barejid, _textarea.value ) ) 1134 return false; 1135 1136 // Add Message in chatBox; 1137 TrophyIM.addMessage( _messages, barejid, { 1138 contact : "<font style='font-weight:bold; color:red;'>" + i18n.ME + "</font>", 1139 msg : "<br/>" + _textarea.value 1140 } ); 1141 1142 _textarea.value = ''; 1143 _textarea.focus( ); 1063 1144 }; 1064 1145 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1146 var composingTimer_ = 0; 1147 var isComposing_ = 0; 1148 var timeCounter; 1149 1150 var setComposing = function( ) 1151 { 1152 var checkComposing = function() 1153 { 1154 if (!isComposing_) { 1155 // User stopped composing 1156 composingTimer_ = 0; 1157 clearInterval(timeCounter); 1158 TrophyIM.sendContentMessage(barejid, 'paused'); 1159 } else { 1160 TrophyIM.sendContentMessage(barejid, 'composing'); 1161 } 1162 isComposing_ = 0; // Reset composing 1163 } 1164 1165 if (!composingTimer_) { 1166 /* User (re)starts composing */ 1167 composingTimer_ = 1; 1168 timeCounter = setInterval(checkComposing,4000); 1169 } 1170 isComposing_ = 1; 1171 }; 1091 1172 1092 1173 loadscript.configEvents( _send, 'onclick', _send_message ); 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 width: 387,1111 height: 375,1112 1113 left: TrophyIM.posWindow.left,1114 1115 1116 1117 zindex: loadscript.getZIndex(),1118 title: titleWindow,1119 closeAction: "hidden",1120 1121 1174 loadscript.configEvents( _textarea, 'onkeyup', function( e ) 1175 { 1176 if ( e.keyCode == 13 ){ 1177 _send_message( ); 1178 // User stopped composing 1179 composingTimer_ = 0; 1180 clearInterval(timeCounter); 1181 }else{ 1182 if (_chatStateOnOff.value == 'on') 1183 setComposing(); 1184 } 1185 } ); 1186 1187 var winChatBox = 1188 { 1189 id_window : "window_chat_area_" + barejid, 1190 barejid : barejid, 1191 width : 387, 1192 height : 375, 1193 top : TrophyIM.posWindow.top, 1194 left : TrophyIM.posWindow.left, 1195 draggable : true, 1196 visible : "display", 1197 resizable : true, 1198 zindex : loadscript.getZIndex(), 1199 title : titleWindow, 1200 closeAction : "hidden", 1201 content : _content 1202 } 1122 1203 1123 1124 1125 1126 1204 _win = _winBuild(winChatBox); 1205 1206 // Notification New Message 1207 loadscript.notification(barejid); 1127 1208 1128 1129 1209 // Photo User; 1210 loadscript.getPhotoUser(barejid); 1130 1211 1131 _textarea.focus( ); 1132 1133 return ( _messages = _win.content( ).firstChild ); 1134 }, 1135 1136 /** Function: makeChatRoom 1212 _textarea.focus( ); 1213 1214 _messages = _win.content( ).firstChild; 1215 1216 while ( _messages && _messages.nodeType !== 1 ) 1217 { 1218 _messages = _messages.nextSibling; 1219 } 1220 1221 return ( _messages ); 1222 }, 1223 1224 /** Function: makeChatRoom 1137 1225 * 1138 1226 * … … 1142 1230 makeChatRoom : function() 1143 1231 { 1144 1145 1232 var jidChatRoom = arguments[0]; 1233 var titleWindow = "ChatRoom - " + unescape(arguments[1]); 1146 1234 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1235 var paramsChatRoom = 1236 { 1237 'idChatRoom' : jidChatRoom + "__roomChat", 1238 'jidTo' : jidChatRoom, 1239 'lang_Send' : i18n.SEND, 1240 'lang_Leave_ChatRoom' : i18n.LEAVE_CHATROOM, 1241 'path_jabberit' : path_jabberit 1242 }; 1243 1244 // Position Top 1157 1245 TrophyIM.posWindow.top = TrophyIM.posWindow.top + 10; 1158 1246 if( TrophyIM.posWindow.top > 200 ) 1159 1247 TrophyIM.posWindow.top = 100; 1160 1248 1161 1249 // Position Left 1162 1250 TrophyIM.posWindow.left = TrophyIM.posWindow.left + 5; 1163 1251 if( TrophyIM.posWindow.left > 455 ) 1164 1252 TrophyIM.posWindow.left = 400; 1165 1253 1166 1254 var _content = document.createElement( 'div' ); … … 1175 1263 var _send_message = function( ) 1176 1264 { 1177 1178 1265 if ( ! TrophyIM.sendMessageChatRoom( jidChatRoom, _textarea.value ) ) 1266 return false; 1179 1267 1180 1268 _textarea.value = ''; 1181 1269 1182 1270 _textarea.focus( ); 1183 1271 }; 1184 1272 … … 1186 1274 loadscript.configEvents( _leaveChatRoom, 'onclick', function( ) 1187 1275 { 1188 1276 TrophyIM.leaveChatRoom( jidChatRoom ); 1189 1277 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1278 if( TrophyIM.activeChatRoom.name.length > 0 ) 1279 { 1280 for( var i = 0; i < TrophyIM.activeChatRoom.name.length ; i++ ) 1281 { 1282 if( TrophyIM.activeChatRoom.name[i].indexOf( jidChatRoom ) >= 0 ) 1283 { 1284 TrophyIM.activeChatRoom.name[i] = ""; 1285 } 1286 } 1287 } 1200 1288 1201 1202 1203 1289 setTimeout( function() 1290 { 1291 _winBuild("window_chat_room_" + jidChatRoom, "remove"); 1204 1292 1205 1293 }, 650 ); 1206 1294 1207 1295 }); 1208 1296 1209 1210 1211 1212 1213 1214 1215 1297 loadscript.configEvents( _textarea, 'onkeyup', function( e ) 1298 { 1299 if ( e.keyCode == 13 ) 1300 { 1301 _send_message( ); 1302 } 1303 }); 1216 1304 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1305 var winChatRoom = 1306 { 1307 id_window : "window_chat_room_" + arguments[0], 1308 barejid : jidChatRoom, 1309 width : 500, 1310 height : 450, 1311 top : TrophyIM.posWindow.top, 1312 left : TrophyIM.posWindow.left, 1313 draggable : true, 1314 visible : "display", 1315 resizable : true, 1316 zindex : loadscript.getZIndex(), 1317 title : titleWindow, 1318 closeAction : "hidden", 1319 content : _content 1320 } 1233 1321 1234 1322 _win = _winBuild(winChatRoom); 1235 1323 1236 return ( _messages = _win.content( ).firstChild ); 1324 _messages = _win.content( ).firstChild; 1325 1326 while ( _messages && _messages.nodeType !== 1 ) 1327 { 1328 _messages = _messages.nextSibling; 1329 } 1330 1331 return ( _messages ); 1332 1237 1333 1238 1334 }, 1239 1335 1240 1336 /** Function addContacts 1241 1337 * 1242 1338 * Parameters: … … 1247 1343 */ 1248 1344 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1345 addContact : function( jidTo, name, group ) 1346 { 1347 var _flag = true; 1348 1349 if( TrophyIM.removeResult.idResult.length > 0 ) 1350 { 1351 for( var i = 0 ; i < TrophyIM.removeResult.idResult.length; i++ ) 1352 { 1353 if( TrophyIM.removeResult.idResult[i] == jidTo ) 1354 { 1355 _flag = false; 1260 1356 1261 1357 TrophyIM.removeResult.idResult.splice(i,1); 1262 1358 1263 i--; 1264 } 1265 } 1266 } 1267 1268 if( _flag ) 1269 { 1270 // Add Contact 1271 var _id = TrophyIM.connection.getUniqueId('add'); 1272 var newContact = $iq({type: 'set', id: _id }); 1273 newContact = newContact.c('query').attrs({xmlns : 'jabber:iq:roster'}); 1274 newContact = newContact.c('item').attrs({jid: jidTo, name:name }); 1275 newContact = newContact.c('group').t(group).tree(); 1276 1277 TrophyIM.connection.send(newContact); 1278 } 1279 }, 1359 i--; 1360 } 1361 } 1362 } 1363 1364 if( _flag ) 1365 { 1366 // Add Contact 1367 var _id = TrophyIM.connection.getUniqueId('add'); 1368 var newContact = $iq({ 1369 type: 'set', 1370 id: _id 1371 }); 1372 newContact = newContact.c('query').attrs({ 1373 xmlns : 'jabber:iq:roster' 1374 }); 1375 newContact = newContact.c('item').attrs({ 1376 jid: jidTo, 1377 name:name 1378 }); 1379 newContact = newContact.c('group').t(group).tree(); 1380 1381 TrophyIM.connection.send(newContact); 1382 } 1383 }, 1280 1384 1281 1385 /** Function: add … … 1288 1392 addMessage : function( chatBox, jid, msg ) 1289 1393 { 1290 1291 1394 // Get Smiles 1395 msg.msg = loadscript.getSmiles( msg.msg ); 1292 1396 1293 1294 1295 1397 var messageDiv = document.createElement("div"); 1398 messageDiv.style.margin = "3px 0px 1em 3px"; 1399 messageDiv.innerHTML = msg.contact + " : " + msg.msg ; 1296 1400 1297 1298 1401 chatBox.appendChild(messageDiv); 1402 chatBox.scrollTop = chatBox.scrollHeight; 1299 1403 }, 1300 1404 … … 1306 1410 renameContact : function( jid ) 1307 1411 { 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1412 // Name 1413 var name = TrophyIM.rosterObj.roster[jid].contact.name; 1414 1415 if(( name = prompt(i18n.ASK_NEW_NAME_QUESTION + name + "!", name ))) 1416 if(( name = name.replace(/^\s+|\s+$|^\n|\n$/g,"")) == "" ) 1417 name = ""; 1418 1419 if( name == null || name == "") 1420 name = ""; 1421 1422 var jidTo = jid 1423 var name = ( name ) ? name : TrophyIM.rosterObj.roster[jid].contact.name; 1424 var group = TrophyIM.rosterObj.roster[jid].contact.groups[0]; 1321 1425 1322 1426 TrophyIM.addContact( jidTo, name, group ); 1323 1427 1324 1428 document.getElementById('itenContact_' + jid ).innerHTML = name; 1325 1429 }, 1326 1430 … … 1332 1436 renameGroup : function( jid ) 1333 1437 { 1334 1335 1438 var group = TrophyIM.rosterObj.roster[jid].contact.groups[0]; 1439 var presence = TrophyIM.rosterObj.roster[jid].presence; 1336 1440 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1441 // Group 1442 if(( group = prompt( i18n.ASK_NEW_GROUP_QUESTION, group ))) 1443 if(( group = group.replace(/^\s+|\s+$|^\n|\n$/g,"")) == "" ) 1444 group = ""; 1445 1446 if( group == null || group == "") 1447 group = ""; 1448 1449 var jidTo = TrophyIM.rosterObj.roster[jid].contact.jid; 1450 var name = TrophyIM.rosterObj.roster[jid].contact.name; 1451 var group = ( group ) ? group : TrophyIM.rosterObj.roster[jid].contact.groups[0]; 1452 1453 TrophyIM.rosterObj.removeContact( jid ); 1454 1455 TrophyIM.addContact( jidTo, name, group ); 1352 1456 1353 1354 1355 1457 document.getElementById("JabberIMRoster").innerHTML = ""; 1458 1459 TrophyIM.renderRoster(); 1356 1460 1357 1358 1359 1360 1361 1362 1461 setTimeout(function() 1462 { 1463 for( var i in presence ) 1464 { 1465 if ( presence[ i ].constructor == Function ) 1466 continue; 1363 1467 1364 1365 1366 1468 TrophyIM.rosterObj.setPresence( jid, presence[i].priority, presence[i].show, presence[i].status); 1469 } 1470 },500); 1367 1471 }, 1368 1472 … … 1374 1478 createChatRooms : function() 1375 1479 { 1376 1377 1480 var nickName = document.getElementById('nickName_chatRoom_jabberit').value; 1481 var nameChatRoom = document.getElementById('name_ChatRoom_jabberit').value; 1378 1482 1379 var _from = Base64.decode( loadscript.getUserCurrent().jid ) + TROPHYIM_RESOURCE; 1380 var _to = escape( nameChatRoom ) + "@" + TROPHYIM_CHATROOM + "/" + nickName ; 1381 var new_room = $pres( {from: _from, to: _to } ).c( "x", { xmlns: Strophe.NS.MUC } ); 1382 1383 TrophyIM.activeChatRoom.name[ TrophyIM.activeChatRoom.name.length ] = _to; 1384 1385 TrophyIM.connection.send( new_room.tree() ); 1483 var _from = Base64.decode( loadscript.getUserCurrent().jid ) + TROPHYIM_RESOURCE; 1484 var _to = escape( nameChatRoom ) + "@" + TROPHYIM_CHATROOM + "/" + nickName ; 1485 var new_room = $pres( { 1486 from: _from, 1487 to: _to 1488 } ).c( "x", { 1489 xmlns: Strophe.NS.MUC 1490 } ); 1491 1492 TrophyIM.activeChatRoom.name[ TrophyIM.activeChatRoom.name.length ] = _to; 1493 1494 TrophyIM.connection.send( new_room.tree() ); 1386 1495 }, 1387 1496 … … 1393 1502 joinChatRoom : function( roomName ) 1394 1503 { 1395 var presence = $pres( {from: TrophyIM.connection.jid, to: roomName} ).c("x",{xmlns: Strophe.NS.MUC}); 1504 var presence = $pres( { 1505 from: TrophyIM.connection.jid, 1506 to: roomName 1507 } ).c("x",{ 1508 xmlns: Strophe.NS.MUC 1509 }); 1396 1510 1397 1511 TrophyIM.connection.send( presence ); 1398 1512 }, 1399 1513 … … 1405 1519 leaveChatRoom : function( roomName ) 1406 1520 { 1407 1521 var room_nick = roomName; 1408 1522 1409 1523 var presenceid = TrophyIM.connection.getUniqueId(); 1410 1524 1411 var presence = $pres( {type: "unavailable", id: presenceid, from: TrophyIM.connection.jid, to: room_nick} ).c("x",{xmlns: Strophe.NS.MUC}); 1525 var presence = $pres( { 1526 type: "unavailable", 1527 id: presenceid, 1528 from: TrophyIM.connection.jid, 1529 to: room_nick 1530 } ).c("x",{ 1531 xmlns: Strophe.NS.MUC 1532 }); 1412 1533 1413 1534 TrophyIM.connection.send( presence ); … … 1421 1542 getListRooms : function() 1422 1543 { 1423 1424 1425 1426 1427 1428 1544 if( TrophyIM.statusConn.connected ) 1545 { 1546 var _error_return = function(element) 1547 { 1548 alert("ERRO : Tente novamente !"); 1549 }; 1429 1550 1430 var iq = $iq({ to: TROPHYIM_CHATROOM, type: "get" }).c("query",{xmlns: Strophe.NS.DISCO_ITEMS }); 1551 var iq = $iq({ 1552 to: TROPHYIM_CHATROOM, 1553 type: "get" 1554 }).c("query",{ 1555 xmlns: Strophe.NS.DISCO_ITEMS 1556 }); 1431 1557 1432 1433 1434 1435 1436 1437 1558 TrophyIM.connection.sendIQ( iq, loadscript.listRooms, _error_return, 500 ); 1559 } 1560 else 1561 { 1562 alert( "ERRO : Sem conexão com o servidor " + TROPHYIM_CHATROOM ); 1563 } 1438 1564 }, 1439 1565 … … 1446 1572 removeContact : function( jidTo ) 1447 1573 { 1448 1449 1450 1451 1452 1453 1574 var divItenContact = null; 1575 1576 if( ( divItenContact = document.getElementById('itenContact_' + jidTo ))) 1577 { 1578 // Remove Contact 1579 var _id = TrophyIM.connection.getUniqueId(); 1454 1580 1455 // Controller Result 1456 TrophyIM.removeResult.idResult[ TrophyIM.removeResult.idResult.length ] = jidTo; 1457 1458 var delContact = $iq({type: 'set', id: _id}) 1459 delContact = delContact.c('query').attrs({xmlns : 'jabber:iq:roster'}); 1460 delContact = delContact.c('item').attrs({jid: jidTo, subscription:'remove'}).tree(); 1461 1462 TrophyIM.connection.send( delContact ); 1581 // Controller Result 1582 TrophyIM.removeResult.idResult[ TrophyIM.removeResult.idResult.length ] = jidTo; 1583 1584 var delContact = $iq({ 1585 type: 'set', 1586 id: _id 1587 }) 1588 delContact = delContact.c('query').attrs({ 1589 xmlns : 'jabber:iq:roster' 1590 }); 1591 delContact = delContact.c('item').attrs({ 1592 jid: jidTo, 1593 subscription:'remove' 1594 }).tree(); 1595 1596 TrophyIM.connection.send( delContact ); 1463 1597 1464 1598 loadscript.removeElement( document.getElementById('itenContactNotification_' + jidTo ) ); 1465 1599 1466 1467 1600 var spanShow = document.getElementById('span_show_itenContact_' + jidTo ) 1601 spanShow.parentNode.removeChild(spanShow); 1468 1602 1469 1603 loadscript.removeGroup( divItenContact.parentNode ); 1470 1604 1471 1472 1605 divItenContact.parentNode.removeChild(divItenContact); 1606 } 1473 1607 }, 1474 1608 … … 1479 1613 */ 1480 1614 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1615 renderRoster : function() 1616 { 1617 var roster_div = document.getElementById('JabberIMRoster'); 1618 1619 if( roster_div ) 1620 { 1621 var users = new Array(); 1622 1623 var loading_gif = document.getElementById("JabberIMRosterLoadingGif"); 1624 1625 if( loading_gif.style.display == "block" ) 1626 loading_gif.style.display = "none"; 1493 1627 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1628 for( var user in TrophyIM.rosterObj.roster ) 1629 { 1630 if ( TrophyIM.rosterObj.roster[ user ].constructor == Function ) 1631 continue; 1632 1633 users[users.length] = TrophyIM.rosterObj.roster[user].contact.jid; 1634 } 1635 1636 users.sort(); 1637 1638 var groups = new Array(); 1639 var flagGeral = false; 1640 1641 for (var group in TrophyIM.rosterObj.groups) 1642 { 1643 if ( TrophyIM.rosterObj.groups[ group ].constructor == Function ) 1644 continue; 1511 1645 1512 1513 1646 if( group ) 1647 groups[groups.length] = group; 1514 1648 1515 1516 1649 if( group == "Geral" ) 1650 flagGeral = true; 1517 1651 } 1518 1652 1519 1520 1653 if( !flagGeral && users.length > 0 ) 1654 groups[groups.length] = "Geral"; 1521 1655 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1656 groups.sort(); 1657 1658 for ( var i = 0; i < groups.length; i++ ) 1659 { 1660 TrophyIM.renderGroups( groups[i] , roster_div ); 1661 } 1662 1663 TrophyIM.renderItensGroup( users, roster_div ); 1664 } 1665 1666 TrophyIM._timeOut.renderRoster = setTimeout("TrophyIM.renderRoster()", 1000 ); 1667 }, 1534 1668 1535 1669 /** Function: renderGroups … … 1538 1672 */ 1539 1673 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1674 renderGroups: function( nameGroup, element ) 1675 { 1676 var _addGroup = function() 1677 { 1678 var _nameGroup = nameGroup; 1679 var _element = element; 1680 1681 var paramsGroup = 1682 { 1683 'nameGroup' : _nameGroup, 1684 'path_jabberit' : path_jabberit 1685 } 1686 1687 _element.innerHTML += loadscript.parse("group","groups.xsl", paramsGroup); 1688 } 1689 1690 if( !element.hasChildNodes() ) 1691 { 1692 _addGroup(); 1693 } 1694 else 1695 { 1696 var _NodeChild = element.firstChild; 1697 var flagAdd = false; 1698 1699 while( _NodeChild ) 1700 { 1701 if( _NodeChild.childNodes[0].nodeName.toLowerCase() === "span" ) 1702 { 1703 if( _NodeChild.childNodes[0].childNodes[0].nodeValue === nameGroup ) 1704 { 1705 flagAdd = true; 1706 } 1707 } 1574 1708 1575 1576 1577 1578 1579 1580 1581 1582 1583 1709 _NodeChild = _NodeChild.nextSibling; 1710 } 1711 1712 if( !flagAdd ) 1713 { 1714 _addGroup(); 1715 } 1716 } 1717 }, 1584 1718 1585 1719 /** Function: renderItensGroup … … 1588 1722 */ 1589 1723 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1724 renderItensGroup : function( users, element ) 1725 { 1726 var addItem = function() 1727 { 1728 if( arguments.length > 0 ) 1729 { 1730 // Get Arguments 1731 var objContact = arguments[0]; 1732 var group = arguments[1]; 1733 var element = arguments[2]; 1734 var showOffline = loadscript.getShowContactsOffline(); 1601 1735 1602 1603 1604 1605 1606 1736 // Presence e Status 1737 var presence = "unavailable"; 1738 var status = ""; 1739 var statusColor = "black"; 1740 var statusDisplay = "none"; 1607 1741 1608 1742 var _resource = ""; 1609 1743 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1744 // Set Presence 1745 var _presence = function(objContact) 1746 { 1747 if (objContact.presence) 1748 { 1749 for (var resource in objContact.presence) 1750 { 1751 if ( objContact.presence[resource].constructor == Function ) 1752 continue; 1753 1754 if( objContact.presence[resource].show != 'invisible' ) 1755 presence = objContact.presence[resource].show; 1756 1757 if( objContact.contact.subscription != "both") 1758 presence = 'subscription'; 1625 1759 1626 1627 1628 1629 1630 1631 1632 1633 1760 if( objContact.presence[resource].status ) 1761 { 1762 status = " ( " + objContact.presence[resource].status + " ) "; 1763 statusDisplay = "block"; 1764 } 1765 } 1766 } 1767 }; 1634 1768 1635 1636 1637 1638 1639 1640 1641 1642 1769 // Set Subscription 1770 var _subscription = function( objContact ) 1771 { 1772 if( objContact.contact.subscription != "both" ) 1773 { 1774 switch( objContact.contact.subscription ) 1775 { 1776 case "none" : 1643 1777 1644 1645 1646 1647 1648 1778 status = " (( " + i18n.ASK_FOR_AUTH + " )) "; 1779 statusColor = "red"; 1780 break; 1781 1782 case "to" : 1649 1783 1650 1651 1652 1653 1654 1784 status = " (( " + i18n.CONTACT_ASK_FOR_AUTH + " )) "; 1785 statusColor = "orange"; 1786 break; 1787 1788 case "from" : 1655 1789 1656 1657 1658 1790 status = " (( " + i18n.AUTHORIZED + " )) "; 1791 statusColor = "green"; 1792 break; 1659 1793 1660 case "subscribe" : 1794 case "subscribe" : 1661 1795 1662 1663 1664 1665 1666 1796 status = " (( " + i18n.AUTH_SENT + " )) "; 1797 statusColor = "red"; 1798 break; 1799 1800 case "not-in-roster" : 1667 1801 1668 1669 1670 1802 status = " (( " + i18n.ASK_FOR_AUTH_QUESTION + " )) "; 1803 statusColor = "orange"; 1804 break; 1671 1805 1672 1806 default : 1673 1807 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1808 break; 1809 } 1810 1811 statusDisplay = "block"; 1812 } 1813 }; 1814 1815 if( objContact.contact.subscription != "remove") 1816 { 1817 var itensJid = document.getElementById( "itenContact_" + objContact.contact.jid ); 1684 1818 1685 1686 1687 1688 1819 if( itensJid == null ) 1820 { 1821 // Name 1822 var nameContact = ""; 1689 1823 1690 1691 1692 1693 1694 1695 1696 1824 if ( objContact.contact.name ) 1825 nameContact = objContact.contact.name; 1826 else 1827 { 1828 nameContact = objContact.contact.jid; 1829 nameContact = nameContact.substring(0, nameContact.indexOf('@')); 1830 } 1697 1831 1698 1699 1832 // Get Presence 1833 _presence(objContact); 1700 1834 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1835 var paramsContact = 1836 { 1837 divDisplay : "block", 1838 id : 'itenContact_' + objContact.contact.jid , 1839 jid : objContact.contact.jid, 1840 nameContact : nameContact, 1841 path_jabberit : path_jabberit, 1842 presence : presence, 1843 spanDisplay : statusDisplay, 1844 status : status, 1845 statusColor : "black", 1846 subscription : objContact.contact.subscription, 1847 resource : _resource 1848 } 1715 1849 1716 1717 1850 // Get Authorization 1851 _subscription( objContact ); 1718 1852 1719 1720 1721 1853 if( group != "") 1854 { 1855 var _NodeChild = element.firstChild; 1722 1856 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1857 while( _NodeChild ) 1858 { 1859 if( _NodeChild.childNodes[0].nodeName.toLowerCase() === "span" ) 1860 { 1861 if( _NodeChild.childNodes[0].childNodes[0].nodeValue === group ) 1862 { 1863 _NodeChild.innerHTML += loadscript.parse("itens_group", "itensGroup.xsl", paramsContact); 1864 } 1865 } 1866 1867 _NodeChild = _NodeChild.nextSibling; 1868 } 1869 } 1870 } 1871 else 1872 { 1873 // Get Presence 1874 _presence(objContact); 1875 1876 var is_open = itensJid.parentNode.childNodes[0].style.backgroundImage; 1877 is_open = is_open.indexOf("arrow_down.gif"); 1878 1879 // Get Authorization 1880 _subscription( objContact ); 1747 1881 1748 1749 1882 // Set subscription 1883 itensJid.setAttribute('subscription', objContact.contact.subscription ); 1750 1884 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1885 with ( document.getElementById('span_show_' + 'itenContact_' + objContact.contact.jid ) ) 1886 { 1887 if( presence == "unavailable" && !showOffline ) 1888 { 1889 style.display = "none"; 1890 } 1891 else 1892 { 1893 if( is_open > 0 ) 1894 { 1895 style.display = statusDisplay; 1896 style.color = statusColor; 1897 innerHTML = status; 1898 } 1899 } 1900 } 1767 1901 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1902 if( presence == "unavailable" && !showOffline ) 1903 { 1904 itensJid.style.display = "none"; 1905 } 1906 else 1907 { 1908 if( is_open > 0 ) 1909 { 1910 itensJid.style.display = "block"; 1911 } 1912 } 1779 1913 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1914 itensJid.style.background = "url('"+path_jabberit+"templates/default/images/" + presence + ".gif') no-repeat center left"; 1915 } 1916 1917 // Contact OffLine 1918 if( !objContact.presence && !showOffline ) 1919 { 1920 if( objContact.contact.subscription != "remove" ) 1921 { 1922 with ( document.getElementById('span_show_' + 'itenContact_' + objContact.contact.jid )) 1923 { 1924 style.display = "none"; 1925 } 1926 1927 with ( document.getElementById('itenContact_' + objContact.contact.jid ) ) 1928 { 1929 style.display = "none"; 1930 } 1931 } 1932 } 1933 } 1934 } 1935 }; 1936 1937 var flag = false; 1938 1939 for( var i = 0 ; i < users.length; i++ ) 1940 { 1941 if( TrophyIM.rosterObj.roster[users[i]].contact.jid != Base64.decode( loadscript.getUserCurrent().jid) ) 1942 { 1943 var _subscription = TrophyIM.rosterObj.roster[users[i]].contact.subscription; 1810 1944 1811 1812 1813 1814 1945 if( _subscription === "to" ) 1946 { 1947 flag = true; 1948 } 1815 1949 1816 1817 1818 1819 1950 if( _subscription === "not-in-roster") 1951 { 1952 flag = true; 1953 } 1820 1954 1821 1822 1823 1955 if( TrophyIM.rosterObj.roster[users[i]].contact.groups ) 1956 { 1957 var groups = TrophyIM.rosterObj.roster[users[i]].contact.groups; 1824 1958 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1959 if( groups.length > 0 ) 1960 { 1961 for( var j = 0; j < groups.length; j++ ) 1962 { 1963 addItem( TrophyIM.rosterObj.roster[users[i]], groups[j], element ); 1964 } 1965 } 1966 else 1967 { 1968 addItem( TrophyIM.rosterObj.roster[users[i]], "Geral", element ); 1969 } 1970 } 1971 else 1972 { 1973 addItem( TrophyIM.rosterObj.roster[users[i]], "Geral", element ); 1974 } 1975 } 1976 } 1977 1978 if( flag ) 1979 { 1980 if ( TrophyIM.controll.notificationNewUsers == 0 ) 1981 { 1982 loadscript.enabledNotificationNewUsers(); 1983 TrophyIM.controll.notificationNewUsers++; 1984 } 1985 } 1986 else 1987 { 1988 loadscript.disabledNotificationNewUsers(); 1989 TrophyIM.controll.notificationNewUsers = 0; 1990 } 1991 }, 1858 1992 1859 1993 /** Function: rosterClick … … 1862 1996 */ 1863 1997 1864 1865 1998 rosterClick : function(fulljid) 1999 { 1866 2000 TrophyIM.makeChat(fulljid); 1867 2001 }, 1868 2002 1869 2003 /** Function SetAutorization 1870 2004 * 1871 2005 */ 1872 2006 1873 1874 1875 2007 setAutorization : function( jidTo, jidFrom, _typeSubscription ) 2008 { 2009 var _id = TrophyIM.connection.getUniqueId(); 1876 2010 1877 TrophyIM.connection.send($pres( ).attrs({ from: jidFrom, to: jidTo, type: _typeSubscription, id: _id }).tree()); 1878 }, 1879 1880 /** Function: setPresence 1881 * 1882 */ 1883 1884 setPresence : function( _type ) 1885 { 1886 var presence_chatRoom = ""; 1887 1888 if( _type != 'status') 1889 { 1890 if( _type == "unavailable" && TrophyIM.statusConn.connected ) 1891 { 1892 var loading_gif = document.getElementById("JabberIMRosterLoadingGif"); 2011 TrophyIM.connection.send($pres( ).attrs({ 2012 from: jidFrom, 2013 to: jidTo, 2014 type: _typeSubscription, 2015 id: _id 2016 }).tree()); 2017 }, 2018 2019 /** Function: setPresence 2020 * 2021 */ 2022 2023 setPresence : function( _type ) 2024 { 2025 var presence_chatRoom = ""; 2026 2027 if( _type != 'status') 2028 { 2029 if( _type == "unavailable" && TrophyIM.statusConn.connected ) 2030 { 2031 var loading_gif = document.getElementById("JabberIMRosterLoadingGif"); 1893 2032 1894 1895 2033 if( TrophyIM._timeOut.renderRoster != null ) 2034 clearTimeout(TrophyIM._timeOut.renderRoster); 1896 2035 1897 if( TrophyIM.statusConn.connected ) 1898 TrophyIM.connection.send($pres({type : _type}).tree()); 2036 if( TrophyIM.statusConn.connected ) 2037 TrophyIM.connection.send($pres({ 2038 type : _type 2039 }).tree()); 1899 2040 1900 1901 1902 1903 1904 2041 for( var i = 0; i < TrophyIM.connection._requests.length; i++ ) 2042 { 2043 if( TrophyIM.connection._requests[i] ) 2044 TrophyIM.connection._removeRequest(TrophyIM.connection._requests[i]); 2045 } 1905 2046 1906 2047 TrophyIM.logout(); 1907 2048 1908 2049 loadscript.clrAllContacts(); 1909 2050 1910 1911 2051 delete TrophyIM.rosterObj.roster; 2052 delete TrophyIM.rosterObj.groups; 1912 2053 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 2054 setTimeout(function() 2055 { 2056 if( loading_gif.style.display == "block" ) 2057 loading_gif.style.display = "none"; 2058 }, 1000); 2059 } 2060 else 2061 { 2062 if( !TrophyIM.autoConnection.connect ) 2063 { 2064 TrophyIM.autoConnection.connect = true; 2065 TrophyIM.load(); 2066 } 2067 else 2068 { 2069 if( TrophyIM.statusConn.connected ) 2070 { 2071 if( loadscript.getStatusMessage() != "" ) 2072 { 2073 var _presence = $pres( ); 2074 _presence.node.appendChild( Strophe.xmlElement( 'show' ) ).appendChild( Strophe.xmlTextNode( _type ) ); 2075 _presence.node.appendChild( Strophe.xmlElement( 'status' ) ).appendChild( Strophe.xmlTextNode( loadscript.getStatusMessage() )); 1935 2076 1936 2077 TrophyIM.connection.send( _presence.tree() ); 1937 2078 1938 1939 1940 1941 1942 2079 presence_chatRoom = _type; 2080 } 2081 else 2082 { 2083 TrophyIM.connection.send($pres( ).c('show').t(_type).tree()); 1943 2084 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 2085 presence_chatRoom = _type; 2086 } 2087 } 2088 } 2089 } 2090 } 2091 else 2092 { 2093 var _show = "available"; 2094 var _status = ""; 2095 2096 if( arguments.length < 2 ) 2097 { 2098 if( loadscript.getStatusMessage() != "" ) 2099 _status = prompt(i18n.TYPE_YOUR_MSG, loadscript.getStatusMessage()); 2100 else 2101 _status = prompt(i18n.TYPE_YOUR_MSG); 1961 2102 1962 2103 var _divStatus = document.getElementById("JabberIMStatusMessage"); 1963 2104 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 2105 if( ( _status = _status.replace(/^\s+|\s+$|^\n|\n$/g,"") ) != "") 2106 _divStatus.firstChild.innerHTML = "( " + _status + " )"; 2107 } 2108 else 2109 { 2110 _status = arguments[1]; 2111 } 2112 2113 for( var resource in TrophyIM.rosterObj.roster[Base64.decode(loadscript.getUserCurrent().jid)].presence ) 2114 { 2115 if ( TrophyIM.rosterObj.roster[Base64.decode(loadscript.getUserCurrent().jid)].presence[ resource ].constructor == Function ) 2116 continue; 1976 2117 1977 1978 1979 1980 1981 1982 1983 1984 1985 2118 if ( TROPHYIM_RESOURCE === ("/" + resource) ) 2119 _show = TrophyIM.rosterObj.roster[Base64.decode(loadscript.getUserCurrent().jid)].presence[resource].show; 2120 } 2121 2122 if ( TrophyIM.statusConn.connected ) 2123 { 2124 var _presence = $pres( ); 2125 _presence.node.appendChild( Strophe.xmlElement( 'show' ) ).appendChild( Strophe.xmlTextNode( _show ) ); 2126 _presence.node.appendChild( Strophe.xmlElement( 'status' ) ).appendChild( Strophe.xmlTextNode( _status ) ); 1986 2127 1987 2128 TrophyIM.connection.send( _presence.tree() ); 1988 2129 1989 presence_chatRoom = _show; 1990 } 1991 } 1992 1993 // Send Presence Chat Room 1994 if( TrophyIM.activeChatRoom.name.length > 0 ) 1995 { 1996 for( i = 0; i < TrophyIM.activeChatRoom.name.length; i++ ) 1997 { 1998 if( TrophyIM.activeChatRoom.name[i] != "" ) 1999 TrophyIM.connection.send($pres( { to : TrophyIM.activeChatRoom.name[i] } ).c('show').t( presence_chatRoom ) ); 2000 } 2001 } 2002 2003 }, 2004 2005 /** Function: sendMessage 2130 presence_chatRoom = _show; 2131 } 2132 } 2133 2134 // Send Presence Chat Room 2135 if( TrophyIM.activeChatRoom.name.length > 0 ) 2136 { 2137 for( i = 0; i < TrophyIM.activeChatRoom.name.length; i++ ) 2138 { 2139 if( TrophyIM.activeChatRoom.name[i] != "" ) 2140 TrophyIM.connection.send($pres( { 2141 to : TrophyIM.activeChatRoom.name[i] 2142 } ).c('show').t( presence_chatRoom ) ); 2143 } 2144 } 2145 2146 }, 2147 2148 /** Function: sendMessage 2006 2149 * 2007 2150 * Send message from chat input to user … … 2010 2153 sendMessage : function() 2011 2154 { 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2155 if (arguments.length > 0) 2156 { 2157 var jidTo = arguments[0]; 2158 var message_input = arguments[1]; 2159 2160 2161 message_input = message_input.replace(/^\s+|\s+$|^\n|\n$/g, ""); 2162 2163 if (message_input != "") { 2164 2165 // Send Message 2166 var newMessage = $msg({ 2167 to: jidTo, 2168 from: TrophyIM.connection.jid, 2169 type: 'chat' 2170 }); 2171 newMessage = newMessage.c('body').t(message_input); 2172 newMessage.up(); 2173 newMessage = newMessage.c('active').attrs({ 2174 xmlns: 'http://jabber.org/protocol/chatstates' 2175 }); 2176 // Send Message 2177 TrophyIM.connection.send(newMessage.tree()); 2035 2178 2036 2037 2038 2039 2040 2041 }, 2042 2043 2179 return true; 2180 } 2181 } 2182 2183 return false; 2184 }, 2185 2186 /** Function: sendMessage 2044 2187 * 2045 2188 * Send message to ChatRoom … … 2048 2191 sendMessageChatRoom : function( ) 2049 2192 { 2050 if( arguments.length > 0 ) 2051 { 2052 var room_nick = arguments[0]; 2053 var message = arguments[1]; 2054 var msgid = TrophyIM.connection.getUniqueId(); 2055 var msg = $msg({to: room_nick, type: "groupchat", id: msgid}).c("body",{xmlns: Strophe.NS.CLIENT}).t(message); 2193 if( arguments.length > 0 ) 2194 { 2195 var room_nick = arguments[0]; 2196 var message = arguments[1]; 2197 var msgid = TrophyIM.connection.getUniqueId(); 2198 var msg = $msg({ 2199 to: room_nick, 2200 type: "groupchat", 2201 id: msgid 2202 }).c("body",{ 2203 xmlns: Strophe.NS.CLIENT 2204 }).t(message); 2056 2205 2057 2206 msg.up();//.c("x", {xmlns: "jabber:x:event"}).c("composing"); 2058 2207 2059 2208 TrophyIM.connection.send(msg); 2060 2209 2061 2062 2063 }, 2064 2065 2210 return true; 2211 } 2212 }, 2213 2214 /** Function: sendContentMessage 2066 2215 * 2067 2216 * Send a content message from chat input to user 2068 2217 */ 2069 sendContentMessage : function() 2070 { 2071 if( arguments.length > 0 ) 2072 { 2073 var jidTo = arguments[0]; 2074 var state = arguments[1]; 2075 2076 var newMessage = $msg({to: jidTo, from: TrophyIM.connection.jid, type: 'chat'}); 2077 newMessage = newMessage.c(state).attrs({xmlns : 'http://jabber.org/protocol/chatstates'}); 2078 // Send content message 2079 TrophyIM.connection.send(newMessage.tree()); 2080 } 2218 sendContentMessage : function() 2219 { 2220 if( arguments.length > 0 ) 2221 { 2222 var jidTo = arguments[0]; 2223 var state = arguments[1]; 2224 2225 var newMessage = $msg({ 2226 to: jidTo, 2227 from: TrophyIM.connection.jid, 2228 type: 'chat' 2229 }); 2230 newMessage = newMessage.c(state).attrs({ 2231 xmlns : 'http://jabber.org/protocol/chatstates' 2232 }); 2233 // Send content message 2234 TrophyIM.connection.send(newMessage.tree()); 2235 } 2081 2236 } 2082 2237 }; … … 2098 2253 */ 2099 2254 if (TrophyIM.JSONStore.store_working) 2100 2255 { 2101 2256 var data = TrophyIM.JSONStore.getData(['roster', 'groups']); 2102 2257 this.roster = (data['roster'] != null) ? data['roster'] : {}; 2103 2258 this.groups = (data['groups'] != null) ? data['groups'] : {}; 2104 2259 } 2105 2106 2260 else 2261 { 2107 2262 this.roster = {}; 2108 2263 this.groups = {}; … … 2110 2265 this.changes = new Array(); 2111 2266 2112 2113 2267 if (TrophyIM.constants.stale_roster) 2268 { 2114 2269 for (var jid in this.roster) 2115 2116 2270 { 2271 this.changes[this.changes.length] = jid; 2117 2272 } 2118 2273 } 2119 2274 2120 2275 /** Function: addChange 2121 2276 * 2122 2277 * Adds given jid to this.changes, keeping this.changes sorted and … … 2127 2282 */ 2128 2283 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2284 this.addChange = function(jid) 2285 { 2286 for (var c = 0; c < this.changes.length; c++) 2287 { 2288 if (this.changes[c] == jid) 2289 { 2290 return; 2291 } 2292 } 2293 2294 this.changes[this.changes.length] = jid; 2295 2296 this.changes.sort(); 2297 } 2143 2298 2144 2299 /** Function: addContact … … 2153 2308 */ 2154 2309 2155 this.addContact = function(jid, subscription, name, groups ) 2156 { 2157 if( subscription === "remove" ) 2158 { 2159 this.removeContact(jid); 2160 } 2161 else 2162 { 2163 var contact = { jid:jid, subscription:subscription, name:name, groups:groups } 2164 var jid_lower = jid.toLowerCase(); 2165 2166 if ( this.roster[jid_lower] ) 2167 { 2168 this.roster[jid_lower]['contact'] = contact; 2169 } 2170 else 2171 { 2172 this.roster[jid_lower] = {contact:contact}; 2173 } 2174 2175 groups = groups ? groups : ['']; 2310 this.addContact = function(jid, subscription, name, groups ) 2311 { 2312 if( subscription === "remove" ) 2313 { 2314 this.removeContact(jid); 2315 } 2316 else 2317 { 2318 var contact = { 2319 jid:jid, 2320 subscription:subscription, 2321 name:name, 2322 groups:groups 2323 } 2324 var jid_lower = jid.toLowerCase(); 2325 2326 if ( this.roster[jid_lower] ) 2327 { 2328 this.roster[jid_lower]['contact'] = contact; 2329 } 2330 else 2331 { 2332 this.roster[jid_lower] = { 2333 contact:contact 2334 }; 2335 } 2336 2337 groups = groups ? groups : ['']; 2176 2338 2177 2178 2179 2180 2181 2182 2339 for ( var g = 0; g < groups.length; g++ ) 2340 { 2341 if ( !this.groups[groups[g]] ) 2342 { 2343 this.groups[groups[g]] = {}; 2344 } 2183 2345 2184 2185 2186 2346 this.groups[groups[g]][jid_lower] = jid_lower; 2347 } 2348 } 2187 2349 } 2188 2350 … … 2195 2357 2196 2358 this.getContact = function(jid) 2197 2359 { 2198 2360 if (this.roster[jid.toLowerCase()]) 2199 2361 { 2200 2362 return this.roster[jid.toLowerCase()]['contact']; 2201 2363 } 2202 2364 } 2203 2365 2204 /** Function: getPresence2366 /** Function: getPresence 2205 2367 * 2206 2368 * Returns best presence for given jid as Array(resource, priority, show, … … 2210 2372 */ 2211 2373 2212 2213 2214 2215 2374 this.getPresence = function(fulljid) 2375 { 2376 var jid = Strophe.getBareJidFromJid(fulljid); 2377 var current = null; 2216 2378 2217 2218 2219 2220 2221 2222 2379 if (this.roster[jid.toLowerCase()] && this.roster[jid.toLowerCase()]['presence']) 2380 { 2381 for (var resource in this.roster[jid.toLowerCase()]['presence']) 2382 { 2383 if ( this.roster[jid.toLowerCase()]['presence'][ resource ].constructor == Function ) 2384 continue; 2223 2385 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2386 var presence = this.roster[jid.toLowerCase()]['presence'][resource]; 2387 if (current == null) 2388 { 2389 current = presence 2390 } 2391 else 2392 { 2393 if(presence['priority'] > current['priority'] && ((presence['show'] == "chat" 2394 || presence['show'] == "available") || (current['show'] != "chat" || 2395 current['show'] != "available"))) 2396 { 2397 current = presence 2398 } 2399 } 2400 } 2401 } 2402 return current; 2403 } 2404 2405 /** Function: groupHasChanges 2244 2406 * 2245 2407 * Returns true if current group has members in this.changes … … 2249 2411 */ 2250 2412 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2413 this.groupHasChanges = function(group) 2414 { 2415 for (var c = 0; c < this.changes.length; c++) 2416 { 2417 if (this.groups[group][this.changes[c]]) 2418 { 2419 return true; 2420 } 2421 } 2422 return false; 2423 } 2424 2425 /** Function removeContact 2264 2426 * 2265 2427 * Parameters … … 2267 2429 */ 2268 2430 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2431 this.removeContact = function(jid) 2432 { 2433 if( this.roster[ jid ] ) 2434 { 2435 var groups = this.roster[ jid ].contact.groups; 2436 2437 if( groups ) 2438 { 2439 for ( var i = 0; i < groups.length; i++ ) 2440 { 2441 delete this.groups[ groups[ i ] ][ jid ]; 2442 } 2443 2444 for ( var i = 0; i < groups.length; i++ ) 2445 { 2446 var contacts = 0; 2447 for ( var contact in this.groups[ groups[ i ] ] ) 2448 { 2449 if ( this.groups[ groups[ i ] ][ contact ].constructor == Function ) 2450 continue; 2289 2451 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2452 contacts++; 2453 } 2454 2455 if ( ! contacts ) 2456 delete this.groups[ groups[ i ] ]; 2457 } 2458 } 2459 2460 // Delete Object roster 2461 if( this.roster[jid] ) 2462 delete this.roster[jid]; 2463 } 2464 } 2303 2465 2304 2466 /** Function: setPresence … … 2313 2475 */ 2314 2476 2315 2316 2317 2477 this.setPresence = function(fulljid, priority, show, status) 2478 { 2479 var barejid = Strophe.getBareJidFromJid(fulljid); 2318 2480 var resource = Strophe.getResourceFromJid(fulljid); 2319 2481 var jid_lower = barejid.toLowerCase(); 2320 2482 2321 2483 if( show !== 'unavailable' || show !== 'error' ) 2322 2323 2324 2484 { 2485 if (!this.roster[jid_lower]) 2486 { 2325 2487 this.addContact( barejid, 'not-in-roster' ); 2326 2488 } 2327 2489 2328 2490 var presence = 2329 2491 { 2330 2492 resource : resource, 2331 2493 priority : priority, … … 2334 2496 } 2335 2497 2336 2337 2498 if (!this.roster[jid_lower]['presence']) 2499 { 2338 2500 this.roster[jid_lower]['presence'] = {}; 2339 2501 } 2340 2502 2341 2503 this.roster[jid_lower]['presence'][resource] = presence; 2342 2504 } 2343 2505 } 2344 2506 2345 2507 /** Fuction: save 2346 2508 * 2347 2509 * Saves roster data to JSON store 2348 2510 */ 2349 2511 2350 this.save = function() 2351 { 2352 if (TrophyIM.JSONStore.store_working) 2353 { 2354 TrophyIM.JSONStore.setData({roster:this.roster, 2355 groups:this.groups, active_chat:TrophyIM.activeChats['current'], 2356 chat_history:TrophyIM.chatHistory}); 2357 } 2358 } 2512 this.save = function() 2513 { 2514 if (TrophyIM.JSONStore.store_working) 2515 { 2516 TrophyIM.JSONStore.setData({ 2517 roster:this.roster, 2518 groups:this.groups, 2519 active_chat:TrophyIM.activeChats['current'], 2520 chat_history:TrophyIM.chatHistory 2521 }); 2522 } 2523 } 2359 2524 2360 2525 } … … 2375 2540 * (function) handler = what to set onreadystatechange to 2376 2541 */ 2377 2542 this._newXHR = function (handler) { 2378 2543 var xhr = null; 2379 2544 if (window.XMLHttpRequest) { 2380 2545 xhr = new XMLHttpRequest(); 2381 2546 if (xhr.overrideMimeType) { 2382 xhr.overrideMimeType("text/xml");2547 xhr.overrideMimeType("text/xml"); 2383 2548 } 2384 2549 } else if (window.ActiveXObject) { … … 2408 2573 } 2409 2574 xhr.setRequestHeader('Content-type', 2410 'application/x-www-form-urlencoded');2575 'application/x-www-form-urlencoded'); 2411 2576 xhr.setRequestHeader('Content-length', getdata.length); 2412 2577 xhr.send(getdata); … … 2417 2582 } catch(e) { 2418 2583 Strophe.error("Could not parse JSONStore response" + 2419 xhr.responseText);2584 xhr.responseText); 2420 2585 return false; 2421 2586 } … … 2434 2599 if (typeof(obj) == "object") { 2435 2600 for (var i in obj) { 2436 2437 2601 if ( obj[i].constructor == Function ) 2602 continue; 2438 2603 2439 2604 if (i == '_empty_') { … … 2468 2633 } 2469 2634 xhr.setRequestHeader('Content-type', 2470 'application/x-www-form-urlencoded');2635 'application/x-www-form-urlencoded'); 2471 2636 xhr.setRequestHeader('Content-length', deldata.length); 2472 2637 xhr.send(deldata); … … 2497 2662 this.setData = function(vars) 2498 2663 { 2499 2664 if ( typeof(TROPHYIM_JSON_STORE) != undefined ) 2500 2665 { 2501 2666 var senddata = "set=" + JSON.stringify(vars); … … 2511 2676 } 2512 2677 xhr.setRequestHeader('Content-type', 2513 'application/x-www-form-urlencoded');2678 'application/x-www-form-urlencoded'); 2514 2679 xhr.setRequestHeader('Content-length', senddata.length); 2515 2680 xhr.send(senddata); 2516 2681 if (xhr.readyState == 4 && xhr.status == 200 && xhr.responseText == 2517 "OK") {2682 "OK") { 2518 2683 return true; 2519 2684 } else { … … 2526 2691 var testData = true; 2527 2692 2528 if (this.setData({testData:testData})) { 2693 if (this.setData({ 2694 testData:testData 2695 })) { 2529 2696 var testResult = this.getData(['testData']); 2530 2697 if (testResult && testResult['testData'] == true) { … … 2568 2735 for(var i = 0; i < node.attributes.length; i++) { 2569 2736 newNode.setAttribute(node.attributes[i].nodeName, 2570 node.getAttribute(node.attributes[i].nodeName));2737 node.getAttribute(node.attributes[i].nodeName)); 2571 2738 } 2572 2739 } 2573 2740 if (allChildren && node.childNodes && 2574 node.childNodes.length > 0) {2741 node.childNodes.length > 0) { 2575 2742 for (var i = 0; i < node.childNodes.length; i++) { 2576 2743 newNode.appendChild(document.importNode( 2577 node.childNodes[i], allChildren));2744 node.childNodes[i], allChildren)); 2578 2745 } 2579 2746 } … … 2598 2765 window.onunload = function() 2599 2766 { 2600 2601 2767 if( oldonunload ) 2768 { 2602 2769 oldonunload(); 2603 2770 } 2604 2771 2605 2772 TrophyIM.setPresence('unavailable'); 2606 2773 } -
trunk/jabberit_messenger/jmessenger/js/trophyim.mini.js
r3332 r5041 1 2 1 DOMObjects={xmlParse:function(xmlString){var xmlObj=this.xmlRender(xmlString);if(xmlObj){try{if(this.processor==undefined){this.processor=new XSLTProcessor();this.processor.importStylesheet(this.xmlRender('<xsl:stylesheet version="1.0"\ 3 2 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">\ … … 108 107 TrophyIM.rosterObj.setPresence(msg.getAttribute('from'),priority,show,status);} 109 108 return true;},onPresenceChatRoom:function(msg) 110 {var xquery=msg.getElementsByTagName("x");if(xquery.length>0) 109 {var xquery=msg.getElementsByTagName("x");var _error=msg.getElementsByTagName("error");if(_error.length>0) 110 {for(var i=0;i<_error.length;i++) 111 {if(_error[i].getElementsByTagName("text")) 112 {var _errorMsg=Strophe.getText(_error[i].getElementsByTagName("text")[0]);if(_errorMsg=="Room creation is denied by service policy") 113 {alert(i18n.ROOM_CREATION_IS_DENIED_BY_SERVICE_POLICY);} 114 else 115 {alert(" Informe ao seu Administrador ERRO : \n"+_errorMsg);}}}} 116 else 117 {if(xquery.length>0) 111 118 {for(var i=0;i<xquery.length;i++) 112 119 {var xmlns=xquery[i].getAttribute("xmlns");if(xmlns.indexOf("http://jabber.org/protocol/muc#user")==0) … … 121 128 {nodeUser.parentNode.removeChild(nodeUser);} 122 129 else if(show) 123 {nodeUser.style.backgroundImage='url("'+path_jabberit+'templates/default/images/'+show+'.gif")';}}}}}} ,onMessage:function(msg)130 {nodeUser.style.backgroundImage='url("'+path_jabberit+'templates/default/images/'+show+'.gif")';}}}}}}},onMessage:function(msg) 124 131 {var checkTime=function(i) 125 132 {if(i<10)i="0"+i;return i;};var messageDate=function(_date) … … 164 171 {return i18n.PAUSED;}}}} 165 172 return'';},makeChat:function(fulljid) 166 {var barejid=Strophe.getBareJidFromJid(fulljid);var titleWindow="";var paramsChatBox={'enabledPopUp':((loadscript.get IsIE())?"none":"block"),'idChatBox':barejid+"__chatBox",'jidTo':barejid,'path_jabberit':path_jabberit};titleWindow=barejid.toLowerCase();titleWindow=titleWindow.substring(0,titleWindow.indexOf('@'));if(TrophyIM.rosterObj.roster[barejid])173 {var barejid=Strophe.getBareJidFromJid(fulljid);var titleWindow="";var paramsChatBox={'enabledPopUp':((loadscript.getBrowserCompatible())?"block":"none"),'idChatBox':barejid+"__chatBox",'jidTo':barejid,'path_jabberit':path_jabberit};titleWindow=barejid.toLowerCase();titleWindow=titleWindow.substring(0,titleWindow.indexOf('@'));if(TrophyIM.rosterObj.roster[barejid]) 167 174 {if(TrophyIM.rosterObj.roster[barejid.toLowerCase()]['contact']['name']) 168 175 {titleWindow=TrophyIM.rosterObj.roster[barejid.toLowerCase()]['contact']['name'];}} … … 179 186 {if(e.keyCode==13){_send_message();composingTimer_=0;clearInterval(timeCounter);}else{if(_chatStateOnOff.value=='on') 180 187 setComposing();}});var winChatBox={id_window:"window_chat_area_"+barejid,barejid:barejid,width:387,height:375,top:TrophyIM.posWindow.top,left:TrophyIM.posWindow.left,draggable:true,visible:"display",resizable:true,zindex:loadscript.getZIndex(),title:titleWindow,closeAction:"hidden",content:_content} 181 _win=_winBuild(winChatBox);loadscript.notification(barejid);loadscript.getPhotoUser(barejid);_textarea.focus();return(_messages=_win.content().firstChild);},makeChatRoom:function() 188 _win=_winBuild(winChatBox);loadscript.notification(barejid);loadscript.getPhotoUser(barejid);_textarea.focus();_messages=_win.content().firstChild;while(_messages&&_messages.nodeType!==1) 189 {_messages=_messages.nextSibling;} 190 return(_messages);},makeChatRoom:function() 182 191 {var jidChatRoom=arguments[0];var titleWindow="ChatRoom - "+unescape(arguments[1]);var paramsChatRoom={'idChatRoom':jidChatRoom+"__roomChat",'jidTo':jidChatRoom,'lang_Send':i18n.SEND,'lang_Leave_ChatRoom':i18n.LEAVE_CHATROOM,'path_jabberit':path_jabberit};TrophyIM.posWindow.top=TrophyIM.posWindow.top+10;if(TrophyIM.posWindow.top>200) 183 192 TrophyIM.posWindow.top=100;TrophyIM.posWindow.left=TrophyIM.posWindow.left+5;if(TrophyIM.posWindow.left>455) … … 193 202 {if(e.keyCode==13) 194 203 {_send_message();}});var winChatRoom={id_window:"window_chat_room_"+arguments[0],barejid:jidChatRoom,width:500,height:450,top:TrophyIM.posWindow.top,left:TrophyIM.posWindow.left,draggable:true,visible:"display",resizable:true,zindex:loadscript.getZIndex(),title:titleWindow,closeAction:"hidden",content:_content} 195 _win=_winBuild(winChatRoom);return(_messages=_win.content().firstChild);},addContact:function(jidTo,name,group) 204 _win=_winBuild(winChatRoom);_messages=_win.content().firstChild;while(_messages&&_messages.nodeType!==1) 205 {_messages=_messages.nextSibling;} 206 return(_messages);},addContact:function(jidTo,name,group) 196 207 {var _flag=true;if(TrophyIM.removeResult.idResult.length>0) 197 208 {for(var i=0;i<TrophyIM.removeResult.idResult.length;i++) … … 396 407 {current=presence} 397 408 else 398 {if(presence['priority']>current['priority']&&((presence['show']=="chat"||presence['show']=="available")||(current['show']!="chat"||current['show']!="available"))) 409 {if(presence['priority']>current['priority']&&((presence['show']=="chat" 410 ||presence['show']=="available")||(current['show']!="chat"||current['show']!="available"))) 399 411 {current=presence}}}} 400 412 return current;} -
trunk/jabberit_messenger/js/groups_ldap.js
r3102 r5041 49 49 50 50 if ( typeof(Xtools) != "object" ) 51 Xtools = new JITXtools(path_jabberit + 'jabberit_messenger/');51 Xtools = new xtools(path_jabberit + 'jabberit_messenger/'); 52 52 } 53 53 -
trunk/jabberit_messenger/js/load.js
r3102 r5041 4 4 var _autoStatus; 5 5 var _conn = new JITConnector(path_jabberit); 6 var Xtools = new JITXtools(path_jabberit);6 var Xtools = new xtools(path_jabberit); 7 7 var _showhidden = new ShowHidden(300); 8 8 var _win_contacts = null; -
trunk/jabberit_messenger/js/makeW.js
r3102 r5041 10 10 { 11 11 var _window = getElement( pObj.id_window + '__parent'); 12 Xtools = new JITXtools(path);12 Xtools = new xtools(path); 13 13 14 14 if( _window == null ) -
trunk/jabberit_messenger/js/setup.js
r3102 r5041 3 3 // Envio para o PHP 4 4 var _conn = new JITConnector('jabberit_messenger/'); 5 var Xtools = new JITXtools('jabberit_messenger/');5 var Xtools = new xtools('jabberit_messenger/'); 6 6 7 7 function addParticipantsExternals(pDocument) -
trunk/jabberit_messenger/setup/setup.inc.php
r4186 r5041 8 8 $setup_info['jabberit_messenger']['name'] = 'jabberit_messenger'; 9 9 $setup_info['jabberit_messenger']['title'] = 'Expresso Messenger'; 10 $setup_info['jabberit_messenger']['version'] = '2.2. 1';10 $setup_info['jabberit_messenger']['version'] = '2.2.6'; 11 11 $setup_info['jabberit_messenger']['app_order'] = 9; 12 12 $setup_info['jabberit_messenger']['enable'] = 1; -
trunk/jabberit_messenger/templates/default/confGroupsLocked.tpl
r3102 r5041 1 1 <!-- BEGIN confGroups --> 2 2 <script type="text/javascript" src="jabberit_messenger/js/connector.js"></script> 3 <script type="text/javascript" src=" jabberit_messenger/js/xtools.js"></script>3 <script type="text/javascript" src="phpgwapi/js/x_tools/xtools.js"></script> 4 4 <script type="text/javascript" src="jabberit_messenger/controller.php?act=j.setup"></script> 5 5 <form> -
trunk/jabberit_messenger/templates/default/confServersJabber.tpl
r3102 r5041 1 1 <!-- BEGIN confServersJabber --> 2 2 <script type="text/javascript" src="jabberit_messenger/js/connector.js"></script> 3 <script type="text/javascript" src=" jabberit_messenger/js/xtools.js"></script>3 <script type="text/javascript" src="phpgwapi/js/x_tools/xtools.js"></script> 4 4 <script type="text/javascript" src="jabberit_messenger/controller.php?act=j.setup"></script> 5 5 <form> -
trunk/jabberit_messenger/templates/default/config.tpl
r3102 r5041 1 1 <!-- BEGIN header --> 2 2 <script type="text/javascript" src="jabberit_messenger/js/connector.js"></script> 3 <script type="text/javascript" src=" jabberit_messenger/js/xtools.js"></script>3 <script type="text/javascript" src="phpgwapi/js/x_tools/xtools.js"></script> 4 4 <script type="text/javascript" src="jabberit_messenger/controller.php?act=j.setup"></script> 5 5 <form method="POST" action="{action_url}"> -
trunk/jabberit_messenger/templates/default/enabled_ou_groups.tpl
r3406 r5041 1 1 <!-- BEGIN enabled_ous --> 2 2 <script type="text/javascript" src="jabberit_messenger/js/connector.js"></script> 3 <script type="text/javascript" src=" jabberit_messenger/js/xtools.js"></script>3 <script type="text/javascript" src="phpgwapi/js/x_tools/xtools.js"></script> 4 4 <form> 5 5 <table align="center" width="90%" cellspacing="2" style="border:1px solid #000;margin-top:20px;"> -
trunk/jabberit_messenger/templates/default/groupsLdap.tpl
r3102 r5041 19 19 <!-- BEGIN edit_servers --> 20 20 <script type="text/javascript" src="jabberit_messenger/js/connector.js"></script> 21 <script type="text/javascript" src=" jabberit_messenger/js/xtools.js"></script>21 <script type="text/javascript" src="phpgwapi/js/x_tools/xtools.js"></script> 22 22 <script type="text/javascript" src="jabberit_messenger/controller.php?act=j.groups_ldap"></script> 23 23 -
trunk/jabberit_messenger/templates/default/groupslocked.tpl
r3102 r5041 1 1 <!-- BEGIN groups_locked --> 2 2 <script type="text/javascript" src="jabberit_messenger/js/connector.js"></script> 3 <script type="text/javascript" src=" jabberit_messenger/js/xtools.js"></script>3 <script type="text/javascript" src="phpgwapi/js/x_tools/xtools.js"></script> 4 4 <script type="text/javascript" src="jabberit_messenger/controller.php?act=j.groups_ldap"></script> 5 5 <form method="POST" action="{action_url}"> -
trunk/jabberit_messenger/templates/default/indexIM.tpl
r3228 r5041 33 33 34 34 <fieldset style="margin-bottom:10px; width:250px;"> 35 <legend><img src=" {url}jmessenger/templates/default/images/compatible_epiphany.png" align="middle"/><span style="margin:5px;">Epiphany</span></legend>35 <legend><img src="../phpgwapi/images/compatible_epiphany.png" align="middle"/><span style="margin:5px;">Epiphany</span></legend> 36 36 <span> Versão : 2.22 ou superior </span><br/> 37 37 <span> Avaliação : <span style="color:red;font-weight:bold;">Ideal para o uso</span></span> … … 39 39 <br/> 40 40 <fieldset style="margin-bottom:10px; width:250px;"> 41 <legend><img src=" {url}jmessenger/templates/default/images/compatible_iceweasel.png" align="middle"/><span style="margin:5px;">Iceweasel</span></legend>41 <legend><img src="../phpgwapi/images/compatible_iceweasel.png" align="middle"/><span style="margin:5px;">Iceweasel</span></legend> 42 42 <span> Versão : 3.06 ou superior </span><br/> 43 43 <span> Avaliação : <span style="color:red;font-weight:bold;">Ideal para o uso</span></span> … … 45 45 <br/> 46 46 <fieldset style="margin-bottom:10px; width:250px;"> 47 <legend><img src=" {url}jmessenger/templates/default/images/compatible_ie.gif" align="middle" /><span style="margin:5px;">Internet Explorer ( IE )</span></legend>47 <legend><img src="../phpgwapi/images/compatible_ie.gif" align="middle" /><span style="margin:5px;">Internet Explorer ( IE )</span></legend> 48 48 <span> Versão : 8.0 </span><br/> 49 49 <span> Avaliação : Recomendado</span> … … 51 51 <br/> 52 52 <fieldset style="margin-bottom:10px; width:250px;"> 53 <legend><img src=" {url}jmessenger/templates/default/images/compatible_firefox.gif" align="middle"/><span style="margin:5px;">Mozilla Firefox</span></legend>53 <legend><img src="../phpgwapi/images/compatible_firefox.gif" align="middle"/><span style="margin:5px;">Mozilla Firefox</span></legend> 54 54 <span> Versão : 3.0 ou superior </span><br/> 55 55 <span> Avaliação : <span style="color:red;font-weight:bold;">Ideal para o uso</span></span> -
trunk/jabberit_messenger/templates/default/jmessenger.tpl
r3102 r5041 1 1 <!-- BEGIN edit_groups_jmessenger --> 2 2 <script type="text/javascript" src="jabberit_messenger/js/connector.js"></script> 3 <script type="text/javascript" src=" jabberit_messenger/js/xtools.js"></script>3 <script type="text/javascript" src="phpgwapi/js/x_tools/xtools.js"></script> 4 4 <script type="text/javascript" src="jabberit_messenger/controller.php?act=j.groups_ldap"></script> 5 5
Note: See TracChangeset
for help on using the changeset viewer.