Author: solomax
Date: Thu Feb  2 10:03:15 2017
New Revision: 1781363

URL: http://svn.apache.org/viewvc?rev=1781363&view=rev
Log:
[OPENMEETINGS-1548] EmoticonsBehavior is removed

Added:
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatPanel.html
      - copied unchanged from r1781362, 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.html
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatPanel.java
      - copied, changed from r1781362, 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatToolbar.html
      - copied, changed from r1781362, 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatToolbar.html
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatToolbar.java
      - copied, changed from r1781362, 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatToolbar.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/EmotionsResources.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat.js
      - copied, changed from r1781362, 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat.js
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/cssemoticons.css
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/cssemoticons.js
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/cssemoticons.min.js
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/upload/
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/upload/BootstrapFileUploadBehavior.java
      - copied, changed from r1781362, 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/BootstrapFileUploadBehavior.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/upload/fileinput.css
      - copied unchanged from r1781362, 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/fileinput.css
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/upload/fileinput.js
      - copied unchanged from r1781362, 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/fileinput.js
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/upload/fileinput.min.css
      - copied unchanged from r1781362, 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/fileinput.min.css
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/upload/fileinput.min.js
      - copied unchanged from r1781362, 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/fileinput.min.js
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatPanel.html
      - copied unchanged from r1781362, 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.html
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatPanel.java
      - copied, changed from r1781362, 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatToolbar.html
      - copied, changed from r1781362, 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatToolbar.html
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatToolbar.java
      - copied, changed from r1781362, 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatToolbar.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/EmotionsResources.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat.js
      - copied, changed from r1781362, 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat.js
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/cssemoticons.css
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/cssemoticons.js
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/cssemoticons.min.js
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/upload/
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/upload/BootstrapFileUploadBehavior.java
      - copied, changed from r1781362, 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/BootstrapFileUploadBehavior.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/upload/fileinput.css
      - copied unchanged from r1781362, 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/fileinput.css
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/upload/fileinput.js
      - copied unchanged from r1781362, 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/fileinput.js
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/upload/fileinput.min.css
      - copied unchanged from r1781362, 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/fileinput.min.css
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/upload/fileinput.min.js
      - copied unchanged from r1781362, 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/fileinput.min.js
Removed:
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.html
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatToolbar.html
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatToolbar.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat.js
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/BootstrapFileUploadBehavior.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/fileinput.css
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/fileinput.js
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/fileinput.min.css
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/fileinput.min.js
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.html
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatToolbar.html
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatToolbar.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat.js
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/BootstrapFileUploadBehavior.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/fileinput.css
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/fileinput.js
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/fileinput.min.css
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/fileinput.min.js
Modified:
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/backup/BackupPanel.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/UploadableImagePanel.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/UserChoiceProvider.java
    openmeetings/application/branches/3.2.x/pom.xml
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/backup/BackupPanel.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/UploadableImagePanel.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.java
    openmeetings/application/trunk/pom.xml

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/backup/BackupPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/backup/BackupPanel.java?rev=1781363&r1=1781362&r2=1781363&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/backup/BackupPanel.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/backup/BackupPanel.java
 Thu Feb  2 10:03:15 2017
@@ -34,7 +34,7 @@ import org.apache.openmeetings.util.OmFi
 import org.apache.openmeetings.web.admin.AdminPanel;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.util.AjaxDownload;
-import org.apache.openmeetings.web.util.BootstrapFileUploadBehavior;
+import org.apache.openmeetings.web.util.upload.BootstrapFileUploadBehavior;
 import org.apache.wicket.ajax.AbstractAjaxTimerBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.form.AjaxFormSubmitBehavior;

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java?rev=1781363&r1=1781362&r2=1781363&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
 Thu Feb  2 10:03:15 2017
@@ -40,7 +40,7 @@ import org.apache.openmeetings.web.data.
 import org.apache.openmeetings.web.data.OmOrderByBorder;
 import org.apache.openmeetings.web.data.SearchableDataProvider;
 import org.apache.openmeetings.web.util.AjaxDownload;
-import org.apache.openmeetings.web.util.BootstrapFileUploadBehavior;
+import org.apache.openmeetings.web.util.upload.BootstrapFileUploadBehavior;
 import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.ajax.AjaxEventBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java?rev=1781363&r1=1781362&r2=1781363&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
 Thu Feb  2 10:03:15 2017
@@ -54,9 +54,9 @@ import org.apache.openmeetings.web.commo
 import org.apache.openmeetings.web.common.menu.MenuPanel;
 import org.apache.openmeetings.web.room.menu.RoomMenuPanel;
 import org.apache.openmeetings.web.user.AboutDialog;
-import org.apache.openmeetings.web.user.ChatPanel;
 import org.apache.openmeetings.web.user.MessageDialog;
 import org.apache.openmeetings.web.user.UserInfoDialog;
+import org.apache.openmeetings.web.user.chat.ChatPanel;
 import org.apache.openmeetings.web.util.ContactsHelper;
 import org.apache.openmeetings.web.util.OmUrlFragment;
 import org.apache.wicket.Component;

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/UploadableImagePanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/UploadableImagePanel.java?rev=1781363&r1=1781362&r2=1781363&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/UploadableImagePanel.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/UploadableImagePanel.java
 Thu Feb  2 10:03:15 2017
@@ -26,7 +26,7 @@ import java.util.List;
 
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
 import org.apache.openmeetings.util.StoredFile;
-import org.apache.openmeetings.web.util.BootstrapFileUploadBehavior;
+import org.apache.openmeetings.web.util.upload.BootstrapFileUploadBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.form.AjaxFormSubmitBehavior;
 import 
org.apache.wicket.extensions.ajax.markup.html.form.upload.UploadProgressBar;

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.java?rev=1781363&r1=1781362&r2=1781363&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.java
 Thu Feb  2 10:03:15 2017
@@ -36,7 +36,7 @@ import org.apache.openmeetings.util.proc
 import org.apache.openmeetings.util.process.ConverterProcessResultList;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.room.RoomPanel;
-import org.apache.openmeetings.web.util.BootstrapFileUploadBehavior;
+import org.apache.openmeetings.web.util.upload.BootstrapFileUploadBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.form.AjaxFormSubmitBehavior;
 import org.apache.wicket.ajax.form.OnChangeAjaxBehavior;

Copied: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatPanel.java
 (from r1781362, 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java)
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatPanel.java?p2=openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatPanel.java&p1=openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java&r1=1781362&r2=1781363&rev=1781363&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatPanel.java
 Thu Feb  2 10:03:15 2017
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.web.user;
+package org.apache.openmeetings.web.user.chat;
 
 import static org.apache.openmeetings.db.util.AuthLevelUtil.hasAdminLevel;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DASHBOARD_SHOW_CHAT;
@@ -29,6 +29,8 @@ import static org.apache.openmeetings.we
 import static org.apache.openmeetings.web.app.WebSession.getRights;
 import static org.apache.openmeetings.web.app.WebSession.getUserId;
 import static org.apache.openmeetings.web.room.RoomPanel.isModerator;
+import static 
org.apache.openmeetings.web.user.chat.EmotionsResources.EMOTIONS_CSS_REFERENCE;
+import static 
org.apache.openmeetings.web.user.chat.EmotionsResources.EMOTIONS_JS_REFERENCE;
 import static 
org.apache.openmeetings.web.util.CallbackFunctionHelper.getNamedFunction;
 import static 
org.apache.openmeetings.web.util.ProfileImageResourceReference.getUrl;
 import static org.apache.wicket.ajax.attributes.CallbackParameter.explicit;
@@ -78,7 +80,6 @@ import org.red5.logging.Red5LoggerFactor
 import org.slf4j.Logger;
 
 import com.googlecode.wicket.jquery.ui.form.button.AjaxButton;
-import com.googlecode.wicket.jquery.ui.plugins.emoticons.EmoticonsBehavior;
 import com.googlecode.wicket.jquery.ui.plugins.wysiwyg.WysiwygEditor;
 
 @AuthorizeInstantiation({"Dashboard", "Room"})
@@ -184,7 +185,6 @@ public class ChatPanel extends BasePanel
                                super.renderHead(component, response);
                        }
                });
-               add(new EmoticonsBehavior(".messageArea"));
                add(new ChatForm("sendForm"));
        }
 
@@ -235,7 +235,9 @@ public class ChatPanel extends BasePanel
        @Override
        public void renderHead(IHeaderResponse response) {
                super.renderHead(response);
+               response.render(new 
PriorityHeaderItem(JavaScriptHeaderItem.forReference(EMOTIONS_JS_REFERENCE)));
                response.render(new 
PriorityHeaderItem(JavaScriptHeaderItem.forReference(new 
JavaScriptResourceReference(ChatPanel.class, "chat.js"))));
+               
response.render(CssHeaderItem.forReference(EMOTIONS_CSS_REFERENCE));
                response.render(CssHeaderItem.forUrl("css/chat.css"));
                response.render(new 
PriorityHeaderItem(getNamedFunction("acceptMessage", acceptMessage, 
explicit(PARAM_ROOM_ID), explicit(PARAM_MSG_ID))));
                if (!showDashboardChat) {

Copied: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatToolbar.html
 (from r1781362, 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatToolbar.html)
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatToolbar.html?p2=openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatToolbar.html&p1=openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatToolbar.html&r1=1781362&r2=1781363&rev=1781363&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatToolbar.html
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatToolbar.html
 Thu Feb  2 10:03:15 2017
@@ -32,28 +32,28 @@
                }
        </style>
        <script type="text/javascript">
-           function emtClick(emoticon) {
-               var editor = $('#chatMessage .wysiwyg-editor');
-               editor.html(editor.html() + ' ' + emoticon + ' ');
-           }
+               function emtClick(emoticon) {
+                       var editor = $('#chatMessage .wysiwyg-editor');
+                       editor.html(editor.html() + ' ' + emoticon + ' ');
+               }
                $(function() {
-                        var emots = [":-)", ":)", ":o)", ":c)", ":^)", ":-D", 
":-(", ":-9", ";-)", ":-P", ":-p", ":-Þ", ":-b"
-                               , ":-O", ":-/", ":-X", ":-#", ":'(", "B-)", 
"8-)", ":-\\", ";*(", ":-*", ":]", ":>", "=]", "=)", "8)"
-                               , ":}", ":D", "8D", "XD", "xD", "=D", ":(", 
":<", ":[", ":{", "=(", ";)", ";]", ";D", ":P", ":p"
-                               , "=P", "=p", ":b", ":Þ", ":O", "8O", ":/", 
"=/", ":S", ":#", ":X", "B)", "O:)", "<3", ";(", ">:)"
-                               , ">;)", ">:(", "O_o", "O_O", "o_o", "0_o", 
"T_T", "^_^", "?-)"];
-                        var emotMenuList = $('#emotMenuList');
-                        var rowSize = 15;
-                        var row = $('<tr></tr>');
-                        for (var i = 0; i < emots.length; ++i) {
-                               row.append('<td><div class="emt" 
onclick="emtClick(\'' + emots[i] + '\');">'
-                                       + emots[i] + '</div></td>');
-                               if (i != 0 && i % rowSize == 0) {
-                                       emotMenuList.append(row);
-                                       row = $('<tr></tr>');
-                               }
-                        }
-                        $('.emt').emoticonize();
+                       var emots = [":-)", ":)", ":o)", ":c)", ":^)", ":-D", 
":-(", ":-9", ";-)", ":-P", ":-p", ":-Þ", ":-b"
+                               , ":-O", ":-/", ":-X", ":-#", ":'(", "B-)", 
"8-)", ":-\\", ";*(", ":-*", ":]", ":>", "=]", "=)", "8)"
+                               , ":}", ":D", "8D", "XD", "xD", "=D", ":(", 
":<", ":[", ":{", "=(", ";)", ";]", ";D", ":P", ":p"
+                               , "=P", "=p", ":b", ":Þ", ":O", "8O", ":/", 
"=/", ":S", ":#", ":X", "B)", "O:)", "<3", ";(", ">:)"
+                               , ">;)", ">:(", "O_o", "O_O", "o_o", "0_o", 
"T_T", "^_^", "?-)"];
+                       var emotMenuList = $('#emotMenuList');
+                       var rowSize = 15;
+                       var row = $('<tr></tr>');
+                       for (var i = 0; i < emots.length; ++i) {
+                               row.append('<td><div class="emt" 
onclick="emtClick(\'' + emots[i] + '\');">'
+                                       + emots[i] + '</div></td>');
+                               if (i != 0 && i % rowSize == 0) {
+                                       emotMenuList.append(row);
+                                       row = $('<tr></tr>');
+                               }
+                       }
+                       //$('.emt').emoticonize();
                });
        </script>
 </wicket:head>
@@ -75,11 +75,10 @@
                                <li><a data-edit="fontSize 3"><font 
size="2">Normal</font></a></li>
                                <li><a data-edit="fontSize 1"><font 
size="1">Small</font></a></li>
                        </ul>
-                       <a id="bold" class="chat btn" data-edit="bold" 
title="Bold (Ctrl/Cmd+B)"> B
-                       </a> <a id="italic" class="chat btn" data-edit="italic" 
title="Italic (Ctrl/Cmd+I)" style="font-style: italic;"> I
-                       </a> <a id="strikethrough" class="chat btn" 
data-edit="strikethrough" title="Strikethrough" style="text-decoration: 
line-through;"> S
-                       </a> <a id="underline" class="chat btn" 
data-edit="underline" title="Underline (Ctrl/Cmd+U)" style="text-decoration: 
underline;"> U
-                       </a>
+                       <a id="bold" class="chat btn" data-edit="bold" 
title="Bold (Ctrl/Cmd+B)"> B </a> <a
+                       id="italic" class="chat btn" data-edit="italic" 
title="Italic (Ctrl/Cmd+I)" style="font-style: italic;"> I </a> <a
+                       id="strikethrough" class="chat btn" 
data-edit="strikethrough" title="Strikethrough" style="text-decoration: 
line-through;"> S </a> <a
+                       id="underline" class="chat btn" data-edit="underline" 
title="Underline (Ctrl/Cmd+U)" style="text-decoration: underline;"> U </a>
                </div>
        </div>
 </wicket:panel>

Copied: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatToolbar.java
 (from r1781362, 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatToolbar.java)
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatToolbar.java?p2=openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatToolbar.java&p1=openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatToolbar.java&r1=1781362&r2=1781363&rev=1781363&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatToolbar.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatToolbar.java
 Thu Feb  2 10:03:15 2017
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.web.user;
+package org.apache.openmeetings.web.user.chat;
 
 import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.Component;

Added: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/EmotionsResources.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/EmotionsResources.java?rev=1781363&view=auto
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/EmotionsResources.java
 (added)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/EmotionsResources.java
 Thu Feb  2 10:03:15 2017
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.user.chat;
+
+import org.apache.wicket.request.resource.CssResourceReference;
+import org.apache.wicket.request.resource.JavaScriptResourceReference;
+import org.apache.wicket.request.resource.ResourceReference;
+
+public class EmotionsResources {
+       public final static ResourceReference EMOTIONS_JS_REFERENCE = new 
JavaScriptResourceReference(EmotionsResources.class, "cssemoticons.js");
+       public final static ResourceReference EMOTIONS_CSS_REFERENCE = new 
CssResourceReference(EmotionsResources.class, "cssemoticons.css");
+}

Copied: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat.js
 (from r1781362, 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat.js)
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat.js?p2=openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat.js&p1=openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat.js&r1=1781362&r2=1781363&rev=1781363&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat.js
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat.js
 Thu Feb  2 10:03:15 2017
@@ -26,6 +26,7 @@ var chatTabs, tabTemplate = "<li><a href
        , clearBlock = "<div class='clear'></div>"
        , closeBlock = "<span class='ui-icon ui-icon-close' 
role='presentation'></span>"
        , closedHeight = "20px", openedHeight = "345px";
+var emoticon = new CSSEmoticon();
 $(function() {
        Wicket.Event.subscribe("/websocket/message", function(jqEvent, msg) {
                try {
@@ -117,7 +118,7 @@ function addChatMessage(m) {
                                        .replace(/#\{imgSrc\}/g, cm.from.img)
                                        .replace(/#\{from\}/g, cm.from.name)
                                        .replace(/#\{sent\}/g, cm.sent)
-                                       .replace(/#\{msg\}/g, cm.message));
+                                       .replace(/#\{msg\}/g, 
emoticon.emoticonize(!!cm.message ? cm.message : "")));
                        var date = msg.children('.date');
                        date.after(infoTemplate.replace(/#\{userId\}/g, 
cm.from.id));
                        if ("full" == cm.actions) {
@@ -140,6 +141,5 @@ function addChatMessage(m) {
                if (msg[0]) {
                        msg[0].scrollIntoView();
                }
-               $('.messageArea').emoticonize();
        }
 }

Added: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/cssemoticons.css
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/cssemoticons.css?rev=1781363&view=auto
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/cssemoticons.css
 (added)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/cssemoticons.css
 Thu Feb  2 10:03:15 2017
@@ -0,0 +1,295 @@
+/*
+ * jQuery CSSEmoticons plugin 0.2.9
+ *
+ * Copyright (c) 2010 Steve Schwartz (JangoSteve)
+ *
+ * Dual licensed under the MIT and GPL licenses:
+ *   http://www.opensource.org/licenses/mit-license.php
+ *   http://www.gnu.org/licenses/gpl.html
+ *
+ * Date: Sun Oct 22 1:00:00 2010 -0500
+ */
+ 
+ /* Basic styles for emoticons */
+span.css-emoticon {
+  font-family: "Trebuchet MS"; /* seems to give the best and most consistent 
emoticon appearance */
+  font-size: 0.65em;
+  font-weight: bold;
+  color: #000000;
+  display: inline-block;
+  overflow: hidden;
+  vertical-align: middle;
+  transform: rotate(90deg);
+  -webkit-transform: rotate(90deg);
+  -moz-transform: rotate(90deg);
+  -o-transform: rotate(90deg);
+  width: 1.54em; /* note that this is a multiple of this span's font-size, not 
containing text font-size */
+  height: 1.54em; /* so, relative to containing text, width and height are 0.9 
x 1.6 = 1.44em */
+  text-align: center;
+  padding: 0;
+  line-height: 1.34em;
+  -moz-border-radius: 1.54em;
+  -webkit-border-radius: 1.54em;
+  border-radius: 1.54em;
+  -moz-box-shadow: 1px -1px 2px rgba(0,0,0,0.5);
+  -webkit-box-shadow: 1px -1px 2px rgba(0,0,0,0.5);
+  box-shadow: 1px -1px 2px rgba(0,0,0,0.5);
+  border: 1px solid rgba(0,0,0,0.25);
+  background-color: #ffcc00;
+  background-image: -webkit-gradient(
+    linear,
+    right top,
+    left top,
+    color-stop(0.41, rgb(255,204,0)),
+    color-stop(0.56, rgb(255,221,85)),
+    color-stop(1, rgb(255,238,170))
+  );
+  background-image: -moz-linear-gradient(
+    center right,
+    rgb(255,204,0) 41%,
+    rgb(255,221,85) 56%,
+    rgb(255,238,170) 100%
+  );
+  -webkit-transition-property:color, background, transform;  
+  -webkit-transition-duration: 1s, 1s;  
+  -webkit-transition-timing-function: linear, ease-in;
+}
+
+/* Styles for two-character emoticons that need more letter-spacing for 
proportionality */
+span.css-emoticon.spaced-emoticon {
+  padding-left: 0.2em;
+  width: 1.34em;
+  letter-spacing: 0.2em;
+}
+
+/* This is a dirty dirty hack, because webkit doesn't properly do the 
padding+width=total-width as it should
+   I think the width of the border may be throwing things off, because it's 
more noticable for small icons */
+@media screen and (-webkit-min-device-pixel-ratio:0) {
+  span.css-emoticon.spaced-emoticon {
+    width: 1.4em;
+  }
+}
+
+/* Styles for emoticons that need to have smaller characters to fit inside the 
circle */
+span.css-emoticon.small-emoticon {
+  font-size: 0.55em;
+  width: 1.82em;
+  height: 1.82em;
+  line-height: 1.72em;
+  -moz-border-radius: 1.82em;
+  -webkit-border-radius: 1.82em;
+  border-radius: 1.82em;
+}
+
+span.css-emoticon.small-emoticon.spaced-emoticon {
+  padding-left: 0;
+  width: 1.82em;
+  letter-spacing: 0.1em;
+}
+
+/* Styles for additional colors */
+span.css-emoticon.red-emoticon {
+  background-color: #eb0542;
+  background-image: -webkit-gradient(
+    linear,
+    right top,
+    left top,
+    color-stop(0.41, rgb(235,5,66)),
+    color-stop(0.56, rgb(235,38,90)),
+    color-stop(1, rgb(250,55,110))
+  );
+  background-image: -moz-linear-gradient(
+    center right,
+    rgb(235,5,66) 41%,
+    rgb(235,38,90) 56%,
+    rgb(250,55,110) 100%
+  );
+}
+
+span.css-emoticon.pink-emoticon {
+  background-color: #ff8fd4;
+  background-image: -webkit-gradient(
+    linear,
+    right top,
+    left top,
+    color-stop(0.41, rgb(255,143,212)),
+    color-stop(0.56, rgb(255,153,216)),
+    color-stop(1,    rgb(255,173,225))
+  );
+  background-image: -moz-linear-gradient(
+    center right,
+    rgb(255,143,212) 41%,
+    rgb(255,153,216) 56%,
+    rgb(255,173,225) 100%
+  );
+}
+
+/* styles for emoticons that need no rotation, like O_o */
+span.css-emoticon.no-rotate { 
+  transform: rotate(0deg);
+  -webkit-transform: rotate(0deg);
+  -moz-transform: rotate(0deg);
+  -o-transform: rotate(0deg);
+  -moz-box-shadow: 1px 1px 2px rgba(0,0,0,0.5);
+  -webkit-box-shadow: 1px 1px 2px rgba(0,0,0,0.5);
+  box-shadow: 1px 1px 2px rgba(0,0,0,0.5);
+  font-size: 0.45em;
+  width: 2.2em;
+  height: 2.2em;
+  line-height: 1.9em;
+  -moz-border-radius: 2.2em;
+  -webkit-border-radius: 2.2em;
+  border-radius: 2.2em;
+  background-image: -webkit-gradient(
+    linear,
+    right bottom,
+    right top,
+    color-stop(0.41, rgb(255,204,0)),
+    color-stop(0.56, rgb(255,221,85)),
+    color-stop(1, rgb(255,238,170))
+  );
+  background-image: -moz-linear-gradient(
+    center bottom,
+    rgb(255,204,0) 41%,
+    rgb(255,221,85) 56%,
+    rgb(255,238,170) 100%
+  );
+}
+
+span.css-emoticon.no-rotate.red-emoticon {
+  background-image: -webkit-gradient(
+    linear,
+    right bottom,
+    right top,
+    color-stop(0.41, rgb(235,5,66)),
+    color-stop(0.56, rgb(235,38,90)),
+    color-stop(1, rgb(250,55,110))
+  );
+  background-image: -moz-linear-gradient(
+    center bottom,
+    rgb(235,5,66) 41%,
+    rgb(235,38,90) 56%,
+    rgb(250,55,110) 100%
+  );
+}
+
+span.css-emoticon.no-rotate.pink-emoticon {
+  background-image: -webkit-gradient(
+    linear,
+    right bottom,
+    right top,
+    color-stop(0.41, rgb(255,143,212)),
+    color-stop(0.56, rgb(255,153,216)),
+    color-stop(1,    rgb(255,173,225))
+  );
+  background-image: -moz-linear-gradient(
+    center bottom,
+    rgb(255,143,212) 41%,
+    rgb(255,153,216) 56%,
+    rgb(255,173,225) 100%
+  );
+}
+
+/* Styles for emoticons that need to be rotated counter-clockwise, like <3 */
+span.css-emoticon.counter-rotated { 
+  transform: rotate(-90deg);
+  -webkit-transform: rotate(-90deg);
+  -moz-transform: rotate(-90deg);
+  -o-transform: rotate(-90deg);
+  -moz-box-shadow: -1px 1px 2px rgba(0,0,0,0.5);
+  -webkit-box-shadow: -1px 1px 2px rgba(0,0,0,0.5);
+  box-shadow: -1px 1px 2px rgba(0,0,0,0.5);
+  background-image: -webkit-gradient(
+    linear,
+    left top,
+    right top,
+    color-stop(0.41, rgb(255,204,0)),
+    color-stop(0.56, rgb(255,221,85)),
+    color-stop(1, rgb(255,238,170))
+  );
+  background-image: -moz-linear-gradient(
+    center left,
+    rgb(255,204,0) 41%,
+    rgb(255,221,85) 56%,
+    rgb(255,238,170) 100%
+  );
+}
+
+span.css-emoticon.counter-rotated.red-emoticon {
+  background-image: -webkit-gradient(
+    linear,
+    left top,
+    right top,
+    color-stop(0.41, rgb(235,5,66)),
+    color-stop(0.56, rgb(235,38,90)),
+    color-stop(1, rgb(250,55,110))
+  );
+  background-image: -moz-linear-gradient(
+    center left,
+    rgb(235,5,66) 41%,
+    rgb(235,38,90) 56%,
+    rgb(250,55,110) 100%
+  );
+}
+
+span.css-emoticon.counter-rotated.pink-emoticon {
+  background-image: -webkit-gradient(
+    linear,
+    left top,
+    right top,
+    color-stop(0.41, rgb(255,143,212)),
+    color-stop(0.56, rgb(255,153,216)),
+    color-stop(1,    rgb(255,173,225))
+  );
+  background-image: -moz-linear-gradient(
+    center left,
+    rgb(255,143,212) 41%,
+    rgb(255,153,216) 56%,
+    rgb(255,173,225) 100%
+  );
+}
+
+/* Styles for animated states */
+span.css-emoticon.un-transformed-emoticon, 
span.css-emoticon.animated-emoticon:hover {
+    /* font-size: inherit;
+    font-weight: inherit;
+    vertical-align: inherit;
+    line-height: inherit;
+    font-family: inherit; */
+    letter-spacing: inherit;
+    color: inherit;
+    overflow: visible;
+    transform: rotate(0deg);
+    -webkit-transform: rotate(0deg);
+    -moz-transform: rotate(0deg);
+    -o-transform: rotate(0deg);
+    background: none;
+    background-image: none;
+    box-shadow: none;
+    -moz-box-shadow: none;
+    -webkit-box-shadow: none;
+    border-color: transparent;
+}
+
+span.css-emoticon.nintendo-controller {
+  font-size: .8em;
+  height: 1.2em;
+  line-height: 1em;
+  width: 2.7em;
+  vertical-align: bottom;
+  border-radius: 0;
+  -webkit-border-radius: 0;
+  -moz-border-radius: 0;
+  background: -webkit-gradient(
+      linear,
+      left bottom,
+      left top,
+      color-stop(0.09, rgb(116,121,140)),
+      color-stop(0.55, rgb(165,170,189))
+  );
+  background: -moz-linear-gradient(
+      center bottom,
+      rgb(116,121,140) 9%,
+      rgb(165,170,189) 55%
+  );
+}
\ No newline at end of file

Added: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/cssemoticons.js
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/cssemoticons.js?rev=1781363&view=auto
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/cssemoticons.js
 (added)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/cssemoticons.js
 Thu Feb  2 10:03:15 2017
@@ -0,0 +1,125 @@
+/*
+ * jQuery CSSEmoticons plugin 0.2.9
+ *
+ * Copyright (c) 2010 Steve Schwartz (JangoSteve)
+ *
+ * Dual licensed under the MIT and GPL licenses:
+ *   http://www.opensource.org/licenses/mit-license.php
+ *   http://www.gnu.org/licenses/gpl.html
+ *
+ * Date: Sun Oct 22 1:00:00 2010 -0500
+ */
+var CSSEmoticon = function() {
+       this.escapeCharacters = [")", "(", "*", "[", "]", "{", "}", "|", "^", 
"<", ">", "\\", "?", "+", "=", "."];
+
+       this.threeCharacterEmoticons = [
+               ":-)", ":o)", ":c)", ":^)", ":-D", ":-(", ":-9", ";-)", ":-P", 
":-p", ":-Þ", ":-b", ":-O", ":-/", ":-X", ":-#", ":'(", "B-)", "8-)", ";*(", 
":-*", ":-\\",
+               "?-)" // <== This is my own invention, it's a smiling pirate 
(with an eye-patch)!
+       ];
+
+       this.twoCharacterEmoticons = [ // separate these out so that we can add 
a letter-spacing between the characters for better proportions
+               ":)", ":]", "=]", "=)", "8)", ":}", ":D", ":(", ":[", ":{", 
"=(", ";)", ";]", ";D", ":P", ":p", "=P", "=p", ":b", ":Þ", ":O", ":/", "=/", 
":S", ":#", ":X", "B)", ":|", ":\\", "=\\", ":*", ":&gt;", ":&lt;"
+       ];
+
+       this.specialEmoticons = { // emoticons to be treated with a special 
class, hash specifies the additional class to add, along with standard 
css-emoticon class
+               "&gt;:)": {cssClass: "red-emoticon small-emoticon 
spaced-emoticon"},
+               "&gt;;)": {cssClass: "red-emoticon small-emoticon 
spaced-emoticon"},
+               "&gt;:(": {cssClass: "red-emoticon small-emoticon 
spaced-emoticon"},
+               "&gt;: )": {cssClass: "red-emoticon small-emoticon"},
+               "&gt;; )": {cssClass: "red-emoticon small-emoticon"},
+               "&gt;: (": {cssClass: "red-emoticon small-emoticon"},
+               ";(": {cssClass: "red-emoticon spaced-emoticon"},
+               "&lt;3": {cssClass: "pink-emoticon counter-rotated"},
+               "O_O": {cssClass: "no-rotate"},
+               "o_o": {cssClass: "no-rotate"},
+               "0_o": {cssClass: "no-rotate"},
+               "O_o": {cssClass: "no-rotate"},
+               "T_T": {cssClass: "no-rotate"},
+               "^_^": {cssClass: "no-rotate"},
+               "O:)": {cssClass: "small-emoticon spaced-emoticon"},
+               "O: )": {cssClass: "small-emoticon"},
+               "8D": {cssClass: "small-emoticon spaced-emoticon"},
+               "XD": {cssClass: "small-emoticon spaced-emoticon"},
+               "xD": {cssClass: "small-emoticon spaced-emoticon"},
+               "=D": {cssClass: "small-emoticon spaced-emoticon"},
+               "8O": {cssClass: "small-emoticon spaced-emoticon"},
+               "[+=..]": {cssClass: "no-rotate nintendo-controller"}
+       };
+
+       var specialRegex = new RegExp('(\\' + this.escapeCharacters.join('|\\') 
+ ')', 'g');
+       // One of these characters must be present before the matched emoticon, 
or the matched emoticon must be the first character in the container HTML
+       //  This is to ensure that the characters in the middle of HTML 
properties or URLs are not matched as emoticons
+       //  Below matches ^ (first character in container HTML), \s (whitespace 
like space or tab), or \0 (NULL character)
+       // (<\\S+.*>) matches <\\S+.*> (matches an HTML tag like <span> or 
<div>), but haven't quite gotten it working yet, need to push this fix now
+       var preMatch = '(^|[\\s\\0])';
+
+       for (var i = this.threeCharacterEmoticons.length - 1; i >= 0; --i) {
+               this.threeCharacterEmoticons[i] = 
this.threeCharacterEmoticons[i].replace(specialRegex, '\\$1');
+               this.threeCharacterEmoticons[i] = new RegExp(preMatch + '(' + 
this.threeCharacterEmoticons[i] + ')', 'g');
+       }
+
+       for (var i = this.twoCharacterEmoticons.length - 1; i >= 0; --i) {
+               this.twoCharacterEmoticons[i] = 
this.twoCharacterEmoticons[i].replace(specialRegex, '\\$1');
+               this.twoCharacterEmoticons[i] = new RegExp(preMatch + '(' + 
this.twoCharacterEmoticons[i] + ')', 'g');
+       }
+
+       for (var emoticon in this.specialEmoticons) {
+               this.specialEmoticons[emoticon].regexp = 
emoticon.replace(specialRegex, '\\$1');
+               this.specialEmoticons[emoticon].regexp = new RegExp(preMatch + 
'(' + this.specialEmoticons[emoticon].regexp + ')', 'g');
+       }
+
+       this.defaults = {animate: true, delay: 500, exclude: 
'pre,code,.no-emoticons'}
+};
+
+CSSEmoticon.prototype.emoticonize = function (str, options) {
+       // $.extend({}, this.defaults, options);
+       var opts = {};
+
+       for (var key in this.defaults) {
+               opts[key] = this.defaults[key];
+       }
+
+       for (var key in options) {
+               opts[key] = options[key];
+       }
+
+       var exclude = 'span.css-emoticon';
+       if (opts.exclude) {
+               exclude += ',' + opts.exclude;
+       }
+       var excludeArray = exclude.split(',');
+
+       var cssClass = 'css-emoticon';
+       if (opts.animate) {
+               cssClass += ' un-transformed-emoticon animated-emoticon';
+       }
+
+       for (var emoticon in this.specialEmoticons) {
+               var specialCssClass = cssClass + " " + 
this.specialEmoticons[emoticon].cssClass;
+               str = str.replace(this.specialEmoticons[emoticon].regexp, 
"$1<span class='" + specialCssClass + "'>$2</span>");
+       }
+
+       for (var key in this.threeCharacterEmoticons) {
+               var regexp = this.threeCharacterEmoticons[key];
+               str = str.replace(regexp, "$1<span class='" + cssClass + 
"'>$2</span>");
+       }
+
+       for (var key in this.twoCharacterEmoticons) {
+               var regexp = this.twoCharacterEmoticons[key];
+               str = str.replace(regexp, "$1<span class='" + cssClass + " 
spaced-emoticon'>$2</span>");
+       }
+
+       // animate emoticons
+       if (opts.animate) {
+               setTimeout(function () {
+                       var untransformed = 
document.body.getElementsByClassName("un-transformed-emoticon");
+                       for(var key in untransformed) {
+                               if(typeof untransformed[key] == "object") {
+                                       
untransformed[key].classList.remove("un-transformed-emoticon");
+                               }
+                       }
+               }, opts.delay);
+       }
+
+       return str;
+};

Added: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/cssemoticons.min.js
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/cssemoticons.min.js?rev=1781363&view=auto
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/cssemoticons.min.js
 (added)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/cssemoticons.min.js
 Thu Feb  2 10:03:15 2017
@@ -0,0 +1,2 @@
+/* Dual licensed under the MIT and GPL licenses */
+var 
CSSEmoticon=function(){this.escapeCharacters=[")","(","*","[","]","{","}","|","^","<",">","\\","?","+","=","."];this.threeCharacterEmoticons=[":-)",":o)",":c)",":^)",":-D",":-(",":-9",";-)",":-P",":-p",":-Þ",":-b",":-O",":-/",":-X",":-#",":'(","B-)","8-)",";*(",":-*",":-\\","?-)"];this.twoCharacterEmoticons=[":)",":]","=]","=)","8)",":}",":D",":(",":[",":{","=(",";)",";]",";D",":P",":p","=P","=p",":b",":Þ",":O",":/","=/",":S",":#",":X","B)",":|",":\\","=\\",":*",":&gt;",":&lt;"];this.specialEmoticons={"&gt;:)":{cssClass:"red-emoticon
 small-emoticon spaced-emoticon"},"&gt;;)":{cssClass:"red-emoticon 
small-emoticon spaced-emoticon"},"&gt;:(":{cssClass:"red-emoticon 
small-emoticon spaced-emoticon"},"&gt;: )":{cssClass:"red-emoticon 
small-emoticon"},"&gt;; )":{cssClass:"red-emoticon small-emoticon"},"&gt;: 
(":{cssClass:"red-emoticon small-emoticon"},";(":{cssClass:"red-emoticon 
spaced-emoticon"},"&lt;3":{cssClass:"pink-emoticon 
counter-rotated"},"O_O":{cssClass:"no-rotate"},"o
 
_o":{cssClass:"no-rotate"},"0_o":{cssClass:"no-rotate"},"O_o":{cssClass:"no-rotate"},"T_T":{cssClass:"no-rotate"},"^_^":{cssClass:"no-rotate"},"O:)":{cssClass:"small-emoticon
 spaced-emoticon"},"O: 
)":{cssClass:"small-emoticon"},"8D":{cssClass:"small-emoticon 
spaced-emoticon"},"XD":{cssClass:"small-emoticon 
spaced-emoticon"},"xD":{cssClass:"small-emoticon 
spaced-emoticon"},"=D":{cssClass:"small-emoticon 
spaced-emoticon"},"8O":{cssClass:"small-emoticon 
spaced-emoticon"},"[+=..]":{cssClass:"no-rotate nintendo-controller"}};var 
a=new RegExp('(\\'+this.escapeCharacters.join('|\\')+')','g');var 
b='(^|[\\s\\0])';for(var 
c=this.threeCharacterEmoticons.length-1;c>=0;--c){this.threeCharacterEmoticons[c]=this.threeCharacterEmoticons[c].replace(a,'\\$1');this.threeCharacterEmoticons[c]=new
 RegExp(b+'('+this.threeCharacterEmoticons[c]+')','g');}for(var 
c=this.twoCharacterEmoticons.length-1;c>=0;--c){this.twoCharacterEmoticons[c]=this.twoCharacterEmoticons[c].replace(a,'\\$1');this.twoCharacterEm
 oticons[c]=new RegExp(b+'('+this.twoCharacterEmoticons[c]+')','g');}for(var d 
in 
this.specialEmoticons){this.specialEmoticons[d].regexp=d.replace(a,'\\$1');this.specialEmoticons[d].regexp=new
 
RegExp(b+'('+this.specialEmoticons[d].regexp+')','g');}this.defaults={animate:true,delay:500,exclude:'pre,code,.no-emoticons'};};CSSEmoticon.prototype.emoticonize=function(a,b){var
 c={};for(var d in this.defaults)c[d]=this.defaults[d];for(var d in 
b)c[d]=b[d];var e='span.css-emoticon';if(c.exclude)e+=','+c.exclude;var 
f=e.split(',');var g='css-emoticon';if(c.animate)g+=' un-transformed-emoticon 
animated-emoticon';for(var h in this.specialEmoticons){var i=g+" 
"+this.specialEmoticons[h].cssClass;a=a.replace(this.specialEmoticons[h].regexp,"$1<span
 class='"+i+"'>$2</span>");}for(var d in this.threeCharacterEmoticons){var 
j=this.threeCharacterEmoticons[d];a=a.replace(j,"$1<span 
class='"+g+"'>$2</span>");}for(var d in this.twoCharacterEmoticons){var 
j=this.twoCharacterEmoticons[d];a=a.replace(j,"$1<
 span class='"+g+" 
spaced-emoticon'>$2</span>");}if(c.animate)setTimeout(function(){var 
a=document.body.getElementsByClassName("un-transformed-emoticon");for(var b in 
a)if(typeof 
a[b]=="object")a[b].classList.remove("un-transformed-emoticon");},c.delay);return
 a;};
\ No newline at end of file

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/UserChoiceProvider.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/UserChoiceProvider.java?rev=1781363&r1=1781362&r2=1781363&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/UserChoiceProvider.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/UserChoiceProvider.java
 Thu Feb  2 10:03:15 2017
@@ -30,11 +30,11 @@ import org.apache.openmeetings.db.dao.us
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.entity.user.User.Type;
 import org.apache.openmeetings.db.util.FormatHelper;
-import org.apache.wicket.ajax.json.JSONException;
-import org.apache.wicket.ajax.json.JSONWriter;
 import 
org.apache.wicket.extensions.validation.validator.RfcCompliantEmailAddressValidator;
 import org.apache.wicket.util.string.Strings;
 import org.apache.wicket.validation.Validatable;
+import org.json.JSONException;
+import org.json.JSONStringer;
 import org.wicketstuff.select2.ChoiceProvider;
 import org.wicketstuff.select2.Response;
 
@@ -42,7 +42,7 @@ public class UserChoiceProvider extends
        private static final long serialVersionUID = 1L;
        private final static int PAGE_SIZE = 10;
        private Map<String, User> newContacts = new Hashtable<String, User>();
-       
+
        public static User getUser(String value) {
                User u = null;
                if (!Strings.isEmpty(value)) {
@@ -55,7 +55,7 @@ public class UserChoiceProvider extends
                                int idx1 = value.indexOf('>', idx);
                                if (idx1 > -1) {
                                        email = value.substring(idx + 1, idx1);
-                                       
+
                                        String name = value.substring(0, 
idx).replace("\"", "");
                                        int idx2 = name.indexOf(' ');
                                        if (idx2 > -1) {
@@ -65,7 +65,7 @@ public class UserChoiceProvider extends
                                                fName = "";
                                                lName = name;
                                        }
-                                        
+
                                }
                        } else {
                                email = value;
@@ -120,9 +120,9 @@ public class UserChoiceProvider extends
        }
 
        @Override
-       public void toJson(User choice, JSONWriter writer) throws JSONException 
{
-               super.toJson(choice, writer);
-               writer.key("contact").value(choice.getType() == Type.contact);
+       public void toJson(User choice, JSONStringer stringer) throws 
JSONException {
+               super.toJson(choice, stringer);
+               stringer.key("contact").value(choice.getType() == Type.contact);
        }
 
        @Override

Copied: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/upload/BootstrapFileUploadBehavior.java
 (from r1781362, 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/BootstrapFileUploadBehavior.java)
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/upload/BootstrapFileUploadBehavior.java?p2=openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/upload/BootstrapFileUploadBehavior.java&p1=openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/BootstrapFileUploadBehavior.java&r1=1781362&r2=1781363&rev=1781363&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/BootstrapFileUploadBehavior.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/upload/BootstrapFileUploadBehavior.java
 Thu Feb  2 10:03:15 2017
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.web.util;
+package org.apache.openmeetings.web.util.upload;
 
 import org.apache.wicket.Component;
 import org.apache.wicket.behavior.Behavior;

Modified: openmeetings/application/branches/3.2.x/pom.xml
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/pom.xml?rev=1781363&r1=1781362&r2=1781363&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/pom.xml (original)
+++ openmeetings/application/branches/3.2.x/pom.xml Thu Feb  2 10:03:15 2017
@@ -913,6 +913,7 @@
                                                                <patterns>
                                                                        
<pattern>Licensed MIT</pattern>
                                                                        
<pattern>MIT/GPL2 Licensed</pattern>
+                                                                       
<pattern>licensed under the MIT and GPL</pattern>
                                                                </patterns>
                                                        </license>
                                                </licenses>

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/backup/BackupPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/backup/BackupPanel.java?rev=1781363&r1=1781362&r2=1781363&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/backup/BackupPanel.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/backup/BackupPanel.java
 Thu Feb  2 10:03:15 2017
@@ -34,7 +34,7 @@ import org.apache.openmeetings.util.OmFi
 import org.apache.openmeetings.web.admin.AdminPanel;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.util.AjaxDownload;
-import org.apache.openmeetings.web.util.BootstrapFileUploadBehavior;
+import org.apache.openmeetings.web.util.upload.BootstrapFileUploadBehavior;
 import org.apache.wicket.ajax.AbstractAjaxTimerBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.form.AjaxFormSubmitBehavior;

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java?rev=1781363&r1=1781362&r2=1781363&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
 Thu Feb  2 10:03:15 2017
@@ -40,7 +40,7 @@ import org.apache.openmeetings.web.data.
 import org.apache.openmeetings.web.data.OmOrderByBorder;
 import org.apache.openmeetings.web.data.SearchableDataProvider;
 import org.apache.openmeetings.web.util.AjaxDownload;
-import org.apache.openmeetings.web.util.BootstrapFileUploadBehavior;
+import org.apache.openmeetings.web.util.upload.BootstrapFileUploadBehavior;
 import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.ajax.AjaxEventBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java?rev=1781363&r1=1781362&r2=1781363&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
 Thu Feb  2 10:03:15 2017
@@ -54,9 +54,9 @@ import org.apache.openmeetings.web.commo
 import org.apache.openmeetings.web.common.menu.MenuPanel;
 import org.apache.openmeetings.web.room.menu.RoomMenuPanel;
 import org.apache.openmeetings.web.user.AboutDialog;
-import org.apache.openmeetings.web.user.ChatPanel;
 import org.apache.openmeetings.web.user.MessageDialog;
 import org.apache.openmeetings.web.user.UserInfoDialog;
+import org.apache.openmeetings.web.user.chat.ChatPanel;
 import org.apache.openmeetings.web.util.ContactsHelper;
 import org.apache.openmeetings.web.util.OmUrlFragment;
 import org.apache.wicket.Component;

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/UploadableImagePanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/UploadableImagePanel.java?rev=1781363&r1=1781362&r2=1781363&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/UploadableImagePanel.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/UploadableImagePanel.java
 Thu Feb  2 10:03:15 2017
@@ -26,7 +26,7 @@ import java.util.List;
 
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
 import org.apache.openmeetings.util.StoredFile;
-import org.apache.openmeetings.web.util.BootstrapFileUploadBehavior;
+import org.apache.openmeetings.web.util.upload.BootstrapFileUploadBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.form.AjaxFormSubmitBehavior;
 import 
org.apache.wicket.extensions.ajax.markup.html.form.upload.UploadProgressBar;

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java?rev=1781363&r1=1781362&r2=1781363&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
 Thu Feb  2 10:03:15 2017
@@ -63,7 +63,7 @@ import org.apache.openmeetings.web.room.
 import org.apache.wicket.Component;
 import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.json.JSONObject;
+import org.json.JSONObject;
 import 
org.apache.wicket.authroles.authorization.strategies.role.annotations.AuthorizeInstantiation;
 import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
 import org.apache.wicket.event.IEvent;

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.java?rev=1781363&r1=1781362&r2=1781363&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.java
 Thu Feb  2 10:03:15 2017
@@ -36,7 +36,7 @@ import org.apache.openmeetings.util.proc
 import org.apache.openmeetings.util.process.ConverterProcessResultList;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.room.RoomPanel;
-import org.apache.openmeetings.web.util.BootstrapFileUploadBehavior;
+import org.apache.openmeetings.web.util.upload.BootstrapFileUploadBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.form.AjaxFormSubmitBehavior;
 import org.apache.wicket.ajax.form.OnChangeAjaxBehavior;

Copied: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatPanel.java
 (from r1781362, 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java)
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatPanel.java?p2=openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatPanel.java&p1=openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java&r1=1781362&r2=1781363&rev=1781363&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatPanel.java
 Thu Feb  2 10:03:15 2017
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.web.user;
+package org.apache.openmeetings.web.user.chat;
 
 import static org.apache.openmeetings.db.util.AuthLevelUtil.hasAdminLevel;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DASHBOARD_SHOW_CHAT;
@@ -29,6 +29,8 @@ import static org.apache.openmeetings.we
 import static org.apache.openmeetings.web.app.WebSession.getRights;
 import static org.apache.openmeetings.web.app.WebSession.getUserId;
 import static org.apache.openmeetings.web.room.RoomPanel.isModerator;
+import static 
org.apache.openmeetings.web.user.chat.EmotionsResources.EMOTIONS_CSS_REFERENCE;
+import static 
org.apache.openmeetings.web.user.chat.EmotionsResources.EMOTIONS_JS_REFERENCE;
 import static 
org.apache.openmeetings.web.util.CallbackFunctionHelper.getNamedFunction;
 import static 
org.apache.openmeetings.web.util.ProfileImageResourceReference.getUrl;
 import static org.apache.wicket.ajax.attributes.CallbackParameter.explicit;
@@ -78,7 +80,6 @@ import org.red5.logging.Red5LoggerFactor
 import org.slf4j.Logger;
 
 import com.googlecode.wicket.jquery.ui.form.button.AjaxButton;
-import com.googlecode.wicket.jquery.ui.plugins.emoticons.EmoticonsBehavior;
 import com.googlecode.wicket.jquery.ui.plugins.wysiwyg.WysiwygEditor;
 
 @AuthorizeInstantiation({"Dashboard", "Room"})
@@ -184,7 +185,6 @@ public class ChatPanel extends BasePanel
                                super.renderHead(component, response);
                        }
                });
-               add(new EmoticonsBehavior(".messageArea"));
                add(new ChatForm("sendForm"));
        }
 
@@ -235,7 +235,9 @@ public class ChatPanel extends BasePanel
        @Override
        public void renderHead(IHeaderResponse response) {
                super.renderHead(response);
+               response.render(new 
PriorityHeaderItem(JavaScriptHeaderItem.forReference(EMOTIONS_JS_REFERENCE)));
                response.render(new 
PriorityHeaderItem(JavaScriptHeaderItem.forReference(new 
JavaScriptResourceReference(ChatPanel.class, "chat.js"))));
+               
response.render(CssHeaderItem.forReference(EMOTIONS_CSS_REFERENCE));
                response.render(CssHeaderItem.forUrl("css/chat.css"));
                response.render(new 
PriorityHeaderItem(getNamedFunction("acceptMessage", acceptMessage, 
explicit(PARAM_ROOM_ID), explicit(PARAM_MSG_ID))));
                if (!showDashboardChat) {

Copied: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatToolbar.html
 (from r1781362, 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatToolbar.html)
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatToolbar.html?p2=openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatToolbar.html&p1=openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatToolbar.html&r1=1781362&r2=1781363&rev=1781363&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatToolbar.html
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatToolbar.html
 Thu Feb  2 10:03:15 2017
@@ -32,28 +32,28 @@
                }
        </style>
        <script type="text/javascript">
-           function emtClick(emoticon) {
-               var editor = $('#chatMessage .wysiwyg-editor');
-               editor.html(editor.html() + ' ' + emoticon + ' ');
-           }
+               function emtClick(emoticon) {
+                       var editor = $('#chatMessage .wysiwyg-editor');
+                       editor.html(editor.html() + ' ' + emoticon + ' ');
+               }
                $(function() {
-                        var emots = [":-)", ":)", ":o)", ":c)", ":^)", ":-D", 
":-(", ":-9", ";-)", ":-P", ":-p", ":-Þ", ":-b"
-                               , ":-O", ":-/", ":-X", ":-#", ":'(", "B-)", 
"8-)", ":-\\", ";*(", ":-*", ":]", ":>", "=]", "=)", "8)"
-                               , ":}", ":D", "8D", "XD", "xD", "=D", ":(", 
":<", ":[", ":{", "=(", ";)", ";]", ";D", ":P", ":p"
-                               , "=P", "=p", ":b", ":Þ", ":O", "8O", ":/", 
"=/", ":S", ":#", ":X", "B)", "O:)", "<3", ";(", ">:)"
-                               , ">;)", ">:(", "O_o", "O_O", "o_o", "0_o", 
"T_T", "^_^", "?-)"];
-                        var emotMenuList = $('#emotMenuList');
-                        var rowSize = 15;
-                        var row = $('<tr></tr>');
-                        for (var i = 0; i < emots.length; ++i) {
-                               row.append('<td><div class="emt" 
onclick="emtClick(\'' + emots[i] + '\');">'
-                                       + emots[i] + '</div></td>');
-                               if (i != 0 && i % rowSize == 0) {
-                                       emotMenuList.append(row);
-                                       row = $('<tr></tr>');
-                               }
-                        }
-                        $('.emt').emoticonize();
+                       var emots = [":-)", ":)", ":o)", ":c)", ":^)", ":-D", 
":-(", ":-9", ";-)", ":-P", ":-p", ":-Þ", ":-b"
+                               , ":-O", ":-/", ":-X", ":-#", ":'(", "B-)", 
"8-)", ":-\\", ";*(", ":-*", ":]", ":>", "=]", "=)", "8)"
+                               , ":}", ":D", "8D", "XD", "xD", "=D", ":(", 
":<", ":[", ":{", "=(", ";)", ";]", ";D", ":P", ":p"
+                               , "=P", "=p", ":b", ":Þ", ":O", "8O", ":/", 
"=/", ":S", ":#", ":X", "B)", "O:)", "<3", ";(", ">:)"
+                               , ">;)", ">:(", "O_o", "O_O", "o_o", "0_o", 
"T_T", "^_^", "?-)"];
+                       var emotMenuList = $('#emotMenuList');
+                       var rowSize = 15;
+                       var row = $('<tr></tr>');
+                       for (var i = 0; i < emots.length; ++i) {
+                               row.append('<td><div class="emt" 
onclick="emtClick(\'' + emots[i] + '\');">'
+                                       + emots[i] + '</div></td>');
+                               if (i != 0 && i % rowSize == 0) {
+                                       emotMenuList.append(row);
+                                       row = $('<tr></tr>');
+                               }
+                       }
+                       //$('.emt').emoticonize();
                });
        </script>
 </wicket:head>
@@ -75,11 +75,10 @@
                                <li><a data-edit="fontSize 3"><font 
size="2">Normal</font></a></li>
                                <li><a data-edit="fontSize 1"><font 
size="1">Small</font></a></li>
                        </ul>
-                       <a id="bold" class="chat btn" data-edit="bold" 
title="Bold (Ctrl/Cmd+B)"> B
-                       </a> <a id="italic" class="chat btn" data-edit="italic" 
title="Italic (Ctrl/Cmd+I)" style="font-style: italic;"> I
-                       </a> <a id="strikethrough" class="chat btn" 
data-edit="strikethrough" title="Strikethrough" style="text-decoration: 
line-through;"> S
-                       </a> <a id="underline" class="chat btn" 
data-edit="underline" title="Underline (Ctrl/Cmd+U)" style="text-decoration: 
underline;"> U
-                       </a>
+                       <a id="bold" class="chat btn" data-edit="bold" 
title="Bold (Ctrl/Cmd+B)"> B </a> <a
+                       id="italic" class="chat btn" data-edit="italic" 
title="Italic (Ctrl/Cmd+I)" style="font-style: italic;"> I </a> <a
+                       id="strikethrough" class="chat btn" 
data-edit="strikethrough" title="Strikethrough" style="text-decoration: 
line-through;"> S </a> <a
+                       id="underline" class="chat btn" data-edit="underline" 
title="Underline (Ctrl/Cmd+U)" style="text-decoration: underline;"> U </a>
                </div>
        </div>
 </wicket:panel>

Copied: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatToolbar.java
 (from r1781362, 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatToolbar.java)
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatToolbar.java?p2=openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatToolbar.java&p1=openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatToolbar.java&r1=1781362&r2=1781363&rev=1781363&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatToolbar.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatToolbar.java
 Thu Feb  2 10:03:15 2017
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.web.user;
+package org.apache.openmeetings.web.user.chat;
 
 import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.Component;

Added: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/EmotionsResources.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/EmotionsResources.java?rev=1781363&view=auto
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/EmotionsResources.java
 (added)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/EmotionsResources.java
 Thu Feb  2 10:03:15 2017
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.user.chat;
+
+import org.apache.wicket.request.resource.CssResourceReference;
+import org.apache.wicket.request.resource.JavaScriptResourceReference;
+import org.apache.wicket.request.resource.ResourceReference;
+
+public class EmotionsResources {
+       public final static ResourceReference EMOTIONS_JS_REFERENCE = new 
JavaScriptResourceReference(EmotionsResources.class, "cssemoticons.js");
+       public final static ResourceReference EMOTIONS_CSS_REFERENCE = new 
CssResourceReference(EmotionsResources.class, "cssemoticons.css");
+}

Copied: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat.js
 (from r1781362, 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat.js)
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat.js?p2=openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat.js&p1=openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat.js&r1=1781362&r2=1781363&rev=1781363&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat.js
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat.js
 Thu Feb  2 10:03:15 2017
@@ -26,6 +26,7 @@ var chatTabs, tabTemplate = "<li><a href
        , clearBlock = "<div class='clear'></div>"
        , closeBlock = "<span class='ui-icon ui-icon-close' 
role='presentation'></span>"
        , closedHeight = "20px", openedHeight = "345px";
+var emoticon = new CSSEmoticon();
 $(function() {
        Wicket.Event.subscribe("/websocket/message", function(jqEvent, msg) {
                try {
@@ -117,7 +118,7 @@ function addChatMessage(m) {
                                        .replace(/#\{imgSrc\}/g, cm.from.img)
                                        .replace(/#\{from\}/g, cm.from.name)
                                        .replace(/#\{sent\}/g, cm.sent)
-                                       .replace(/#\{msg\}/g, cm.message));
+                                       .replace(/#\{msg\}/g, 
emoticon.emoticonize(!!cm.message ? cm.message : "")));
                        var date = msg.children('.date');
                        date.after(infoTemplate.replace(/#\{userId\}/g, 
cm.from.id));
                        if ("full" == cm.actions) {
@@ -140,6 +141,5 @@ function addChatMessage(m) {
                if (msg[0]) {
                        msg[0].scrollIntoView();
                }
-               $('.messageArea').emoticonize();
        }
 }

Added: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/cssemoticons.css
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/cssemoticons.css?rev=1781363&view=auto
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/cssemoticons.css
 (added)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/cssemoticons.css
 Thu Feb  2 10:03:15 2017
@@ -0,0 +1,295 @@
+/*
+ * jQuery CSSEmoticons plugin 0.2.9
+ *
+ * Copyright (c) 2010 Steve Schwartz (JangoSteve)
+ *
+ * Dual licensed under the MIT and GPL licenses:
+ *   http://www.opensource.org/licenses/mit-license.php
+ *   http://www.gnu.org/licenses/gpl.html
+ *
+ * Date: Sun Oct 22 1:00:00 2010 -0500
+ */
+ 
+ /* Basic styles for emoticons */
+span.css-emoticon {
+  font-family: "Trebuchet MS"; /* seems to give the best and most consistent 
emoticon appearance */
+  font-size: 0.65em;
+  font-weight: bold;
+  color: #000000;
+  display: inline-block;
+  overflow: hidden;
+  vertical-align: middle;
+  transform: rotate(90deg);
+  -webkit-transform: rotate(90deg);
+  -moz-transform: rotate(90deg);
+  -o-transform: rotate(90deg);
+  width: 1.54em; /* note that this is a multiple of this span's font-size, not 
containing text font-size */
+  height: 1.54em; /* so, relative to containing text, width and height are 0.9 
x 1.6 = 1.44em */
+  text-align: center;
+  padding: 0;
+  line-height: 1.34em;
+  -moz-border-radius: 1.54em;
+  -webkit-border-radius: 1.54em;
+  border-radius: 1.54em;
+  -moz-box-shadow: 1px -1px 2px rgba(0,0,0,0.5);
+  -webkit-box-shadow: 1px -1px 2px rgba(0,0,0,0.5);
+  box-shadow: 1px -1px 2px rgba(0,0,0,0.5);
+  border: 1px solid rgba(0,0,0,0.25);
+  background-color: #ffcc00;
+  background-image: -webkit-gradient(
+    linear,
+    right top,
+    left top,
+    color-stop(0.41, rgb(255,204,0)),
+    color-stop(0.56, rgb(255,221,85)),
+    color-stop(1, rgb(255,238,170))
+  );
+  background-image: -moz-linear-gradient(
+    center right,
+    rgb(255,204,0) 41%,
+    rgb(255,221,85) 56%,
+    rgb(255,238,170) 100%
+  );
+  -webkit-transition-property:color, background, transform;  
+  -webkit-transition-duration: 1s, 1s;  
+  -webkit-transition-timing-function: linear, ease-in;
+}
+
+/* Styles for two-character emoticons that need more letter-spacing for 
proportionality */
+span.css-emoticon.spaced-emoticon {
+  padding-left: 0.2em;
+  width: 1.34em;
+  letter-spacing: 0.2em;
+}
+
+/* This is a dirty dirty hack, because webkit doesn't properly do the 
padding+width=total-width as it should
+   I think the width of the border may be throwing things off, because it's 
more noticable for small icons */
+@media screen and (-webkit-min-device-pixel-ratio:0) {
+  span.css-emoticon.spaced-emoticon {
+    width: 1.4em;
+  }
+}
+
+/* Styles for emoticons that need to have smaller characters to fit inside the 
circle */
+span.css-emoticon.small-emoticon {
+  font-size: 0.55em;
+  width: 1.82em;
+  height: 1.82em;
+  line-height: 1.72em;
+  -moz-border-radius: 1.82em;
+  -webkit-border-radius: 1.82em;
+  border-radius: 1.82em;
+}
+
+span.css-emoticon.small-emoticon.spaced-emoticon {
+  padding-left: 0;
+  width: 1.82em;
+  letter-spacing: 0.1em;
+}
+
+/* Styles for additional colors */
+span.css-emoticon.red-emoticon {
+  background-color: #eb0542;
+  background-image: -webkit-gradient(
+    linear,
+    right top,
+    left top,
+    color-stop(0.41, rgb(235,5,66)),
+    color-stop(0.56, rgb(235,38,90)),
+    color-stop(1, rgb(250,55,110))
+  );
+  background-image: -moz-linear-gradient(
+    center right,
+    rgb(235,5,66) 41%,
+    rgb(235,38,90) 56%,
+    rgb(250,55,110) 100%
+  );
+}
+
+span.css-emoticon.pink-emoticon {
+  background-color: #ff8fd4;
+  background-image: -webkit-gradient(
+    linear,
+    right top,
+    left top,
+    color-stop(0.41, rgb(255,143,212)),
+    color-stop(0.56, rgb(255,153,216)),
+    color-stop(1,    rgb(255,173,225))
+  );
+  background-image: -moz-linear-gradient(
+    center right,
+    rgb(255,143,212) 41%,
+    rgb(255,153,216) 56%,
+    rgb(255,173,225) 100%
+  );
+}
+
+/* styles for emoticons that need no rotation, like O_o */
+span.css-emoticon.no-rotate { 
+  transform: rotate(0deg);
+  -webkit-transform: rotate(0deg);
+  -moz-transform: rotate(0deg);
+  -o-transform: rotate(0deg);
+  -moz-box-shadow: 1px 1px 2px rgba(0,0,0,0.5);
+  -webkit-box-shadow: 1px 1px 2px rgba(0,0,0,0.5);
+  box-shadow: 1px 1px 2px rgba(0,0,0,0.5);
+  font-size: 0.45em;
+  width: 2.2em;
+  height: 2.2em;
+  line-height: 1.9em;
+  -moz-border-radius: 2.2em;
+  -webkit-border-radius: 2.2em;
+  border-radius: 2.2em;
+  background-image: -webkit-gradient(
+    linear,
+    right bottom,
+    right top,
+    color-stop(0.41, rgb(255,204,0)),
+    color-stop(0.56, rgb(255,221,85)),
+    color-stop(1, rgb(255,238,170))
+  );
+  background-image: -moz-linear-gradient(
+    center bottom,
+    rgb(255,204,0) 41%,
+    rgb(255,221,85) 56%,
+    rgb(255,238,170) 100%
+  );
+}
+
+span.css-emoticon.no-rotate.red-emoticon {
+  background-image: -webkit-gradient(
+    linear,
+    right bottom,
+    right top,
+    color-stop(0.41, rgb(235,5,66)),
+    color-stop(0.56, rgb(235,38,90)),
+    color-stop(1, rgb(250,55,110))
+  );
+  background-image: -moz-linear-gradient(
+    center bottom,
+    rgb(235,5,66) 41%,
+    rgb(235,38,90) 56%,
+    rgb(250,55,110) 100%
+  );
+}
+
+span.css-emoticon.no-rotate.pink-emoticon {
+  background-image: -webkit-gradient(
+    linear,
+    right bottom,
+    right top,
+    color-stop(0.41, rgb(255,143,212)),
+    color-stop(0.56, rgb(255,153,216)),
+    color-stop(1,    rgb(255,173,225))
+  );
+  background-image: -moz-linear-gradient(
+    center bottom,
+    rgb(255,143,212) 41%,
+    rgb(255,153,216) 56%,
+    rgb(255,173,225) 100%
+  );
+}
+
+/* Styles for emoticons that need to be rotated counter-clockwise, like <3 */
+span.css-emoticon.counter-rotated { 
+  transform: rotate(-90deg);
+  -webkit-transform: rotate(-90deg);
+  -moz-transform: rotate(-90deg);
+  -o-transform: rotate(-90deg);
+  -moz-box-shadow: -1px 1px 2px rgba(0,0,0,0.5);
+  -webkit-box-shadow: -1px 1px 2px rgba(0,0,0,0.5);
+  box-shadow: -1px 1px 2px rgba(0,0,0,0.5);
+  background-image: -webkit-gradient(
+    linear,
+    left top,
+    right top,
+    color-stop(0.41, rgb(255,204,0)),
+    color-stop(0.56, rgb(255,221,85)),
+    color-stop(1, rgb(255,238,170))
+  );
+  background-image: -moz-linear-gradient(
+    center left,
+    rgb(255,204,0) 41%,
+    rgb(255,221,85) 56%,
+    rgb(255,238,170) 100%
+  );
+}
+
+span.css-emoticon.counter-rotated.red-emoticon {
+  background-image: -webkit-gradient(
+    linear,
+    left top,
+    right top,
+    color-stop(0.41, rgb(235,5,66)),
+    color-stop(0.56, rgb(235,38,90)),
+    color-stop(1, rgb(250,55,110))
+  );
+  background-image: -moz-linear-gradient(
+    center left,
+    rgb(235,5,66) 41%,
+    rgb(235,38,90) 56%,
+    rgb(250,55,110) 100%
+  );
+}
+
+span.css-emoticon.counter-rotated.pink-emoticon {
+  background-image: -webkit-gradient(
+    linear,
+    left top,
+    right top,
+    color-stop(0.41, rgb(255,143,212)),
+    color-stop(0.56, rgb(255,153,216)),
+    color-stop(1,    rgb(255,173,225))
+  );
+  background-image: -moz-linear-gradient(
+    center left,
+    rgb(255,143,212) 41%,
+    rgb(255,153,216) 56%,
+    rgb(255,173,225) 100%
+  );
+}
+
+/* Styles for animated states */
+span.css-emoticon.un-transformed-emoticon, 
span.css-emoticon.animated-emoticon:hover {
+    /* font-size: inherit;
+    font-weight: inherit;
+    vertical-align: inherit;
+    line-height: inherit;
+    font-family: inherit; */
+    letter-spacing: inherit;
+    color: inherit;
+    overflow: visible;
+    transform: rotate(0deg);
+    -webkit-transform: rotate(0deg);
+    -moz-transform: rotate(0deg);
+    -o-transform: rotate(0deg);
+    background: none;
+    background-image: none;
+    box-shadow: none;
+    -moz-box-shadow: none;
+    -webkit-box-shadow: none;
+    border-color: transparent;
+}
+
+span.css-emoticon.nintendo-controller {
+  font-size: .8em;
+  height: 1.2em;
+  line-height: 1em;
+  width: 2.7em;
+  vertical-align: bottom;
+  border-radius: 0;
+  -webkit-border-radius: 0;
+  -moz-border-radius: 0;
+  background: -webkit-gradient(
+      linear,
+      left bottom,
+      left top,
+      color-stop(0.09, rgb(116,121,140)),
+      color-stop(0.55, rgb(165,170,189))
+  );
+  background: -moz-linear-gradient(
+      center bottom,
+      rgb(116,121,140) 9%,
+      rgb(165,170,189) 55%
+  );
+}
\ No newline at end of file


Reply via email to