rem: M(domMessage).sender.setAttribute( 'class', stanza.@from.toString() ? 'contact' : 'user'); 
add: if(stanza.@type != 'groupchat') domMessage.setAttribute( 'class', domMessage.getAttribute('class') + ' ' + (stanza.@from.toString() ? 'contact' : 'user')); 
context: function displayMessage(stanza) {    scrollingOnlyIfAtBottom(        _('chat-output'), function() {            var domMessage = cloneBlueprint('message');            if(stanza.@type == 'groupchat')                M(domMessage).sender.textContent = JID(stanza.@from).resource;            else                if(stanza.@from == undefined)                    M(domMessage).sender.textContent = JID(userAddress).username;                else                    M(domMessage).sender.textContent =                        contactName || JID(stanza.@from).username || stanza.@from;                        if(stanza.@type == 'groupchat')                M(domMessage).sender.setAttribute(                    'style', 'color: rgb(' + textToRGB(JID(stanza.@from).nick).join(',') + ')');            M(domMessage).sender.setAttribute(                'class', stanza.@from.toString() ? 'contact' : 'user');            var body;            if(stanza.ns_xhtml_im::html == undefined) {                body = filter.applyTextProcessors(stanza.body, textProcessors);                body.setNamespace(ns_xhtml);            } else                body = filter.applyTextProcessors(                    filter.xhtmlIM.keepRecommended(stanza.ns_xhtml_im::html.ns_xhtml::body),                    textProcessors);                        copyDomContents(conv.toDOM(body), M(domMessage).content);            var timeSent;            if(stanza.ns_delay::x != undefined) {                var m = stanza.ns_delay::x.@stamp.toString()                    .match(/^(\d{4})(\d{2})(\d{2})T(\d{2}):(\d{2}):(\d{2})/);                timeSent = new Date(Date.UTC(m[1], m[2], m[3], m[4], m[5], m[6]));            } else                 timeSent = new Date();            M(domMessage).time.textContent = formatTime(timeSent);                            _('messages').appendChild(domMessage);        });}
meta: 1705	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/1705/ff958fe8e0b4836c301b0451b6040455c5a57da1/main.js/clean/chrome/content/app/main.js