Commit 2f199750 authored by Guus der Kinderen's avatar Guus der Kinderen Committed by daryl herzmann

New Candy plugin (#761)

A new Openfire plugin, that bundles the third-party Candy web client.
parent 2e8c10ea
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Candy Plugin Changelog</title>
<style type="text/css">
BODY {
font-size : 100%;
}
BODY, TD, TH {
font-family : tahoma, verdana, arial, helvetica, sans-serif;
font-size : 0.8em;
}
H2 {
font-size : 10pt;
font-weight : bold;
padding-left : 1em;
}
A:hover {
text-decoration : none;
}
H1 {
font-family : tahoma, arial, helvetica, sans-serif;
font-size : 1.4em;
font-weight: bold;
border-bottom : 1px #ccc solid;
padding-bottom : 2px;
}
TT {
font-family : courier new;
font-weight : bold;
color : #060;
}
PRE {
font-family : courier new;
font-size : 100%;
}
</style>
</head>
<body>
<h1>
Candy Plugin Changelog
</h1>
<p><b>2.2.0 Release 1</b> -- June 19, 2017</p>
<ul>
<li>Initial release, based on Candy 2.2.0.</li>
</ul>
</body>
</html>
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<servlet>
<servlet-name>config</servlet-name>
<servlet-class>org.igniterealtime.openfire.plugin.candy.ConfigServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>config</servlet-name>
<url-pattern>/config.json</url-pattern>
</servlet-mapping>
</web-app>
\ No newline at end of file
# Contributing
## Team members
* Patrick Stadler &middot; [@pstadler](http://twitter.com/pstadler) &middot; <patrick.stadler@gmail.com>
* Michael Weibel &middot; [@weibelm](htps://twitter.com/weibelm) &middot; <michael.weibel@gmail.com>
## Learn & listen
[![Gitter chat](https://badges.gitter.im/candy-chat.png)](https://gitter.im/candy-chat)
* [Mailing list](http://groups.google.com/group/candy-chat)
* yes, non-gmail users can signup as well
* [FAQ](https://github.com/candy-chat/candy/wiki/Frequently-Asked-Questions)
## Contributing
You want to help us? **Awesome!**
### How to contribute
A few hopefully helpful hints to contributing to Candy
#### Using vagrant
1. [Fork](https://help.github.com/articles/fork-a-repo) Candy
2. [Install Vagrant](http://vagrantup.com/)
3. Run `vagrant up`.
5. Create a branch based on the `master` branch (`git checkout -B my-awesome-feature`)
6. Run `grunt watch` to automatically run jshint (syntax checker) and the build of `candy.bundle.js` and `candy.min.js` while developing.
7. Make your changes, fix eventual *jshint* errors & push them back to your fork
8. Create a [pull request](https://help.github.com/articles/using-pull-requests)
#### On your own machine
Please note that you should have a working XMPP server to test your changes (the vagrant way does already have a working XMPP server).
1. [Fork](https://help.github.com/articles/fork-a-repo) Candy
2. Clone your fork
3. Checkout out `master` branch (`git checkout master`)
4. Install [Node.js](http://nodejs.org/)
5. Install [Grunt](http://gruntjs.com/) (`npm install -g grunt-cli`)
6. Install [Bower](http://bower.io/) (`npm install -g bower`)
7. Install npm dependencies (`npm install` in candy root directory)
8. Install bower dependencies (`bower install` in candy root directory)
9. Create a branch based on the `master` branch (`git checkout -B my-awesome-feature`)
10. Run `grunt watch` to automatically run jshint (syntax checker) and the build of `candy.bundle.js` and `candy.min.js` while developing.
11. Make your changes, fix eventual *jshint* errors & push them back to your fork
12. Create a [pull request](https://help.github.com/articles/using-pull-requests)
In case you have any questions, don't hesitate to ask on the [Mailing list](http://groups.google.com/group/candy-chat).
### Running tests
* Tests are run using [Intern](http://theintern.io).
* `grunt` and `grunt watch` will each run unit tests in Chrome on Linux (for fast feedback).
* `grunt test` will run both unit and integration tests in a variety of environments. Tests are run using Selenium Standalone and Phantom.JS while developing, and on Sauce Labs in CI or using `grunt test`.
* If you don't want to use the Vagrant box to run Selenium/PhantomJS, set `CANDY_VAGRANT='false'` to run tests.
Credits
=======
- [Special thanks to our contributors](https://github.com/candy-chat/candy/graphs/contributors)
- [famfamfam silk icons](http://www.famfamfam.com/lab/icons/silk/) is a smooth, free icon set, containing over 700 16-by-16 pixel icons.
- [Simple Smileys](http://simplesmileys.org) are beautifully simple emoticons.
- [Flash MP3 Player](http://flash-mp3-player.net/players/js) is a very simple flash audio player used by Candy for audio notifications.
- [Colin Snover](http://zetafleet.com/blog/javascript-dateparse-for-iso-8601) provides a fix for browsers not supporting latest Date.parse().
- [Ben Cherry](http://www.adequatelygood.com/2010/3/JavaScript-Module-Pattern-In-Depth) wrote a great article about the JS module pattern.
- [Amiado Group](http://www.amiadogroup.com) allowed us to make Candy freely available for everyone :)
\ No newline at end of file
Copyright (c) 2011 Amiado Group AG
Copyright (c) 2012-2014 Patrick Stadler & Michael Weibel
Copyright (c) 2015 Adhearsion Foundation Inc <info@adhearsion.com>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Candy — a JavaScript-based multi-user chat client
==================================================
[![Build Status](https://travis-ci.org/candy-chat/candy.png?branch=dev)](https://travis-ci.org/candy-chat/candy)
[![Coverage Status](https://coveralls.io/repos/candy-chat/candy/badge.png?branch=dev)](https://coveralls.io/r/candy-chat/candy)
Visit the official project page: http://candy-chat.github.io/candy
Features
--------
- Focused on real-time multi-user chatting
- Easy to configure, easy to run, easy to use
- Highly customizable
- 100% well-documented JavaScript source code
- Built for Jabber (XMPP), using famous technologies
- Used and approved in a productive environment with up to 400 concurrent users
- Works with all major web browsers including IE9
Plugins
-------
If you wish to add new functionality (to your candy installation) or contribute plugins, take a look at our [plugin repository](http://github.com/candy-chat/candy-plugins).
Support & Community
-------------------
Take a look at our [FAQ](https://github.com/candy-chat/candy/wiki/Frequently-Asked-Questions). If it doesn't solve your questions, you're welcome to join our [Mailinglist on Google Groups](http://groups.google.com/group/candy-chat).
You don't need to have a Gmail account for it.
[![githalytics.com alpha](https://cruel-carlota.pagodabox.com/a41a8075608abeaf99db685d7ef29cf6 "githalytics.com")](http://githalytics.com/candy-chat/candy)
{
"name": "candy",
"version": "2.2.0",
"homepage": "http://candy-chat.github.io/candy/",
"authors": [
"Michael Weibel <michael.weibel@gmail.com>",
"Patrick Stadler <patrick.stadler@gmail.com>"
],
"description": "Multi-user XMPP web client",
"main": [
"candy.min.js"
],
"keywords": [
"xmpp",
"muc",
"multi-user",
"websocket",
"bosh",
"chat"
],
"license": "MIT",
"repository": {
"type": "git",
"url": "git://github.com/candy-chat/candy.git"
},
"ignore": [
"**/.*",
"node_modules",
"bower_components",
"test",
"tests"
],
"dependencies": {
"jquery": "~1.10.2",
"strophe": "1.1.3",
"strophejs-plugins": "benlangfeld/strophejs-plugins#30fb089457addc37e01d69c3536dee868a90a9ad",
"mustache": "0.3.0",
"jquery-i18n": "1.1.1",
"bootstrap": "~3.3.6"
}
}
This source diff could not be displayed because it is too large. You can view the blob instead.
{"version":3,"file":"candy.bundle.js","sources":["src/candy.js","src/core.js","src/view.js","src/util.js","src/core/action.js","src/core/chatRoom.js","src/core/chatRoster.js","src/core/chatUser.js","src/core/contact.js","src/core/event.js","src/view/observer.js","src/view/pane/chat.js","src/view/pane/message.js","src/view/pane/privateRoom.js","src/view/pane/room.js","src/view/pane/roster.js","src/view/pane/window.js","src/view/template.js","src/view/translation.js"],"names":["Candy","self","$","about","name","version","init","service","options","viewClass","View","view","Core","core","jQuery","Strophe","_connection","_service","_user","_roster","_rooms","_anonymousConnection","_status","_options","autojoin","undefined","disconnectWithoutTabs","conferenceDomain","debug","domains","hideDomainList","disableCoreNotifications","disableWindowUnload","presencePriority","resource","useParticipantRealJid","initialRosterVersion","initialRosterItems","_addNamespace","value","addNamespace","_addNamespaces","_getEscapedJidFromJid","jid","node","getNodeFromJid","domain","getDomainFromJid","escapeNode","extend","window","console","log","Function","prototype","bind","Util","getIeVersion","call","apply","arguments","level","message","level_name","console_level","LogLevel","DEBUG","INFO","WARN","ERROR","FATAL","ChatRoster","Connection","rawInput","rawOutput","caps","onbeforeunload","onWindowUnload","registerEventHandlers","addHandler","Event","Jabber","Version","NS","VERSION","Presence","Message","Bookmarks","PRIVATE","Room","Disco","DISCO_INFO","disco","_onDiscoInfo","_onDiscoItems","DISCO_ITEMS","_delegateCapabilities","CAPS","connect","jidOrHost","password","nick","reset","triggerHandler","connection","indexOf","getResourceFromJid","Connect","ChatUser","Login","attach","sid","rid","disconnect","connected","handler","ns","type","id","from","getRoster","getUser","setUser","user","getConnection","removeRoom","roomJid","getRooms","getStropheStatus","setStropheStatus","status","isAnonymousConnection","getOptions","getRoom","sync","flush","data","this","warn","error","_current","container","language","assets","messages","limit","remove","crop","nickname","body","url","roster","enableXHTML","_setupTranslation","i18n","load","Translation","_registerObservers","on","Observer","Chat","AutojoinMissing","update","PresenceError","_registerWindowHandlers","document","focusin","Pane","Window","onFocus","focusout","onBlur","focus","blur","resize","fitTabs","_initToolbar","Toolbar","_delegateTooltips","delegate","Tooltip","show","resources","Parser","setEmoticonPath","html","Mustache","to_html","Template","pane","tooltipEmoticons","_","tooltipSound","tooltipAutoscroll","tooltipStatusmessage","tooltipAdministration","tooltipUsercount","assetsPath","tabs","mobile","mobileIcon","rooms","modal","toolbar","getCurrent","jidToId","MD5","hexdigest","escapeJid","unescapeJid","unescapeNode","str","len","length","substr","parseAndCropXhtml","append","createHtml","get","setCookie","lifetime_days","exp","Date","setDate","getDate","cookie","toUTCString","cookieExists","getCookie","regex","RegExp","escape","matches","exec","deleteCookie","getPosLeftAccordingToWindowBounds","elem","pos","windowWidth","width","elemWidth","outerWidth","marginDiff","backgroundPositionAlignment","px","getPosTopAccordingToWindowBounds","windowHeight","height","elemHeight","outerHeight","localizedTime","dateTime","date","toDateString","iso8601toDate","format","timestamp","parse","isNaN","struct","minutesOffset","getTimezoneOffset","replace","isEmptyObject","obj","prop","hasOwnProperty","forceRedraw","css","display","setTimeout","ie","undef","v","div","createElement","all","getElementsByTagName","innerHTML","isMobile","check","a","test","navigator","userAgent","vendor","opera","r","match","_emoticonPath","path","emoticons","plain","image","emotify","text","i","linkify","matched","nl2br","maxLength","currentLength","el","j","tag","attribute","cssAttrs","attr","cssName","cssValue","nodeType","ElementType","NORMAL","nodeName","toLowerCase","XHTML","validTag","attributes","getAttribute","cssText","split","validCSS","push","join","childNodes","e","xmlTextNode","xmlGenerator","createDocumentFragment","appendChild","FRAGMENT","TEXT","nodeValue","substring","parseHTML","Action","msg","sendIQ","$iq","to","c","xmlns","up","SetNickname","Array","roomNick","presence","conn","each","$pres","getUniqueId","send","Roster","registerCallback","RosterPush","item","RosterFetch","RosterLoad","items","pres","t","toString","generateCapsAttrs","tree","Services","CLIENT","Autojoin","BOOKMARKS","pubsubBookmarkRequest","PUBSUB","isArray","Join","valueOf","EnableCarbons","CARBONS","ResetIgnoreList","getEscapedJid","PRIVACY","action","order","RemoveIgnoreList","GetIgnoreList","iq","iqId","PrivacyList","SetIgnoreListActive","GetJidIfAnonymous","getJid","getNick","MUC","Leave","muc","leave","xhtmlMsg","trim","getBareJidFromJid","Invite","invitees","reason","$msg","x","MUC_USER","invitee","IgnoreUnignore","userJid","addToOrRemoveFromPrivacyList","UpdatePrivacyList","currentUser","privacyList","getPrivacyList","index","Admin","UserAction","itemObj","role","affiliation","MUC_ADMIN","SetSubject","subject","setTopic","ChatRoom","room","setName","getName","setRoster","add","getAll","realJid","ROLE_MODERATOR","AFFILIATION_OWNER","privacyLists","customData","previousNick","setJid","getRealJid","setNick","contact","getContact","getRole","setRole","setAffiliation","getAffiliation","isModerator","list","splice","setPrivacyLists","lists","isInPrivacyList","setCustomData","getCustomData","setPreviousNick","getPreviousNick","setStatus","getStatus","Contact","stropheRosterItem","getSubscription","subscription","getGroups","groups","highestResourcePriority","resourcePriority","priority","parseInt","_weightForStatus","presetJid","Status","CONNECTED","ATTACHED","DISCONNECTED","AUTHFAIL","CONNECTING","DISCONNECTING","AUTHENTICATING","CONNFAIL","children","stanza","_addRosterItems","updatedItem","_addRosterItem","PrivacyListError","invite","_findInvite","mediatedInvite","find","directInvite","passwordNode","reasonNode","continueNode","continuedThread","identity","roomName","presenceType","isNewRoom","_msgHasStatusCode","nickAssign","nickChange","_selfLeave","code","actor","tagName","carbon","partnerJid","sender","barePartner","bareFrom","isNoConferenceRoomJid","partner","xhtmlChild","XHTML_IM","xhtmlMessage","first","contents","_checkForChatStateNotification","delay","DELAY","JABBER_DELAY","toISOString","chatStateElements","chatstate","_showConnectedMessageModal","event","args","eventName","Modal","hide","showLoginForm","adminMessage","onInfoMessage","close","notifyPrivateChats","actorName","actionLabel","translationParams","Context","adminMessageReason","_action","_reason","evtData","PrivateRoom","bareJid","targetJid","showEnterPasswordForm","showNicknameConflictForm","showError","setSubject","infoMessage","open","addTab","roomType","roomId","preventDefault","tab","privateUserChat","appendTo","click","tabClick","tabClose","getTab","removeTab","setActiveTab","addClass","removeClass","increaseUnreadMessages","unreadElem","updateWindowOnAllMessages","clearUnreadMessages","reduceUnreadMessages","currentRoomJid","roomPane","getPane","scrollPosition","scrollTop","parent","allTabsClosed","hideMobileIcon","availableWidth","innerWidth","tabsWidth","overflow","tabDiffToRealWidth","tabWidth","Math","floor","showMobileIcon","clickMobileIcon","is","time","appendToMessagePane","scrollToBottom","_supportsNativeAudio","showEmoticonsMenu","currentTarget","stopPropagation","onAutoscrollControlClick","canPlayType","onSoundControlClick","onStatusMessageControlClick","context","me","updateUsercount","usercount","playSound","onPlaySound","Audio","play","src","loop","autostart","control","hasClass","toggleClass","onScrollToStoredPosition","autoscroll","onScrollToBottom","count","showCloseControl","showSpinner","modalClass","hideCloseControl","hideSpinner","stop","fadeIn","callback","fadeOut","keydown","which","map","d","customClass","form","_labelNickname","_labelUsername","_labelPassword","_loginSubmit","displayPassword","displayUsername","displayDomain","displayNickname","submit","username","val","enterPasswordForm","_label","_joinSubmit","nicknameConflictForm","replacements","displayError","_error","content","tooltip","target","offset","posLeft","left","posTop","top","mouseleave","menu","links","menulinks","getMenuLinks","clickHandler","link","class","label","element","initialMenuLinks","requiredPermission","private","ignore","ignoreUser","unignore","unignoreUser","kick","contextModalForm","_submit","ban","input","emoticon","messagePane","enableScroll","renderEvtData","template","templateData","displayName","roomjid","last","notifyEvtData","hasFocus","switchToRoom","messageForm","removeAttr","changeNick","previousPrivateRoomJid","newPrivateRoomJid","previousPrivateRoomId","newPrivateRoomId","roomElement","roomTabElement","messageCount","_messageSubmit","_userOnline","setFocusToForm","_roomSubject","openRooms","sliceMessagePane","slice","chatPane","addIgnoreIcon","removeIgnoreIcon","subPane","changeDataUserJidIfUserIsMe","userId","usercountDiff","userElem","_insertUser","showJoinAnimation","userClick","leaveAnimation","contact_status","displayNick","tooltipRole","tooltipIgnored","userInserted","rosterPane","userSortCompare","_userSortCompare","before","statusWeight","toUpperCase","useRealJid","rosterUserId","$rosterUserElem","joinAnimation","elementId","slideDown","animate","opacity","complete","slideUp","previousUserJid","_hasFocus","_plainTitle","title","_unreadMessagesCount","renderUnreadMessages","num","unreadmessages","en","statusConnecting","statusConnected","statusDisconnecting","statusDisconnected","statusAuthfail","roomSubject","messageSubmit","labelUsername","labelNickname","labelPassword","loginSubmit","loginInvalid","reasonWas","kickActionLabel","youHaveBeenKickedBy","youHaveBeenKicked","banActionLabel","youHaveBeenBannedBy","youHaveBeenBanned","privateActionLabel","ignoreActionLabel","unignoreActionLabel","setSubjectActionLabel","administratorMessageSubject","userJoinedRoom","userLeftRoom","userHasBeenKickedFromRoom","userHasBeenBannedFromRoom","userChangedNick","dateFormat","timeFormat","enterRoomPassword","enterRoomPasswordSubmit","passwordEnteredInvalid","nicknameConflict","errorMembersOnly","errorMaxOccupantsReached","errorAutojoinMissing","antiSpamMessage","de","fr","nl","es","cn","ja","sv","fi","it","pl","presenceUnknownWarningSubject","presenceUnknownWarning","pt","pt_br","ru","ca","cs","he"],"mappings":"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"}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
{"version":3,"file":"candy.min.js","sources":["candy.bundle.js"],"names":["Candy","self","$","about","name","version","init","service","options","viewClass","View","view","Core","core","jQuery","Strophe","_status","_connection","_service","_user","_roster","_rooms","_anonymousConnection","_options","autojoin","undefined","disconnectWithoutTabs","conferenceDomain","debug","domains","hideDomainList","disableCoreNotifications","disableWindowUnload","presencePriority","resource","useParticipantRealJid","initialRosterVersion","initialRosterItems","_addNamespace","value","addNamespace","_addNamespaces","_getEscapedJidFromJid","jid","node","getNodeFromJid","domain","getDomainFromJid","escapeNode","extend","window","console","log","Function","prototype","bind","Util","getIeVersion","call","apply","arguments","level","message","level_name","console_level","LogLevel","DEBUG","INFO","WARN","ERROR","FATAL","ChatRoster","Connection","rawInput","rawOutput","caps","onbeforeunload","onWindowUnload","registerEventHandlers","addHandler","Event","Jabber","Version","NS","VERSION","Presence","Message","Bookmarks","PRIVATE","Room","Disco","DISCO_INFO","disco","_onDiscoInfo","_onDiscoItems","DISCO_ITEMS","_delegateCapabilities","CAPS","connect","jidOrHost","password","nick","reset","triggerHandler","connection","indexOf","getResourceFromJid","Connect","ChatUser","Login","attach","sid","rid","disconnect","connected","handler","ns","type","id","from","getRoster","getUser","setUser","user","getConnection","removeRoom","roomJid","getRooms","getStropheStatus","setStropheStatus","status","isAnonymousConnection","getOptions","getRoom","sync","flush","data","this","warn","error","_current","container","language","assets","messages","limit","remove","crop","nickname","body","url","roster","enableXHTML","_setupTranslation","i18n","load","Translation","_registerObservers","on","Observer","Chat","AutojoinMissing","update","PresenceError","_registerWindowHandlers","document","focusin","Pane","Window","onFocus","focusout","onBlur","focus","blur","resize","fitTabs","_initToolbar","Toolbar","_delegateTooltips","delegate","Tooltip","show","resources","Parser","setEmoticonPath","html","Mustache","to_html","Template","pane","tooltipEmoticons","_","tooltipSound","tooltipAutoscroll","tooltipStatusmessage","tooltipAdministration","tooltipUsercount","assetsPath","tabs","mobile","mobileIcon","rooms","modal","toolbar","getCurrent","jidToId","MD5","hexdigest","escapeJid","unescapeJid","unescapeNode","str","len","length","substr","parseAndCropXhtml","append","createHtml","get","setCookie","lifetime_days","exp","Date","setDate","getDate","cookie","toUTCString","cookieExists","getCookie","regex","RegExp","escape","matches","exec","deleteCookie","getPosLeftAccordingToWindowBounds","elem","pos","windowWidth","width","elemWidth","outerWidth","marginDiff","backgroundPositionAlignment","px","getPosTopAccordingToWindowBounds","windowHeight","height","elemHeight","outerHeight","localizedTime","dateTime","date","toDateString","iso8601toDate","format","timestamp","parse","isNaN","struct","minutesOffset","getTimezoneOffset","replace","isEmptyObject","obj","prop","hasOwnProperty","forceRedraw","css","display","setTimeout","ie","undef","v","div","createElement","all","getElementsByTagName","innerHTML","isMobile","check","a","test","navigator","userAgent","vendor","opera","r","match","_emoticonPath","path","emoticons","plain","image","emotify","text","i","linkify","matched","nl2br","maxLength","currentLength","el","j","tag","attribute","cssAttrs","attr","cssName","cssValue","nodeType","ElementType","NORMAL","nodeName","toLowerCase","XHTML","validTag","attributes","getAttribute","cssText","split","validCSS","push","join","childNodes","e","xmlTextNode","xmlGenerator","createDocumentFragment","appendChild","FRAGMENT","TEXT","nodeValue","substring","parseHTML","Action","msg","sendIQ","$iq","to","c","xmlns","up","SetNickname","Array","roomNick","presence","conn","each","$pres","getUniqueId","send","Roster","registerCallback","RosterPush","item","RosterFetch","RosterLoad","items","pres","t","toString","generateCapsAttrs","tree","Services","CLIENT","Autojoin","BOOKMARKS","pubsubBookmarkRequest","PUBSUB","isArray","Join","valueOf","EnableCarbons","CARBONS","ResetIgnoreList","getEscapedJid","PRIVACY","action","order","RemoveIgnoreList","GetIgnoreList","iq","iqId","PrivacyList","SetIgnoreListActive","GetJidIfAnonymous","getJid","getNick","MUC","Leave","muc","leave","xhtmlMsg","trim","getBareJidFromJid","Invite","invitees","reason","$msg","x","MUC_USER","invitee","IgnoreUnignore","userJid","addToOrRemoveFromPrivacyList","UpdatePrivacyList","currentUser","privacyList","getPrivacyList","index","Admin","UserAction","itemObj","role","affiliation","MUC_ADMIN","SetSubject","subject","setTopic","ChatRoom","room","setName","getName","setRoster","add","getAll","realJid","ROLE_MODERATOR","AFFILIATION_OWNER","privacyLists","customData","previousNick","setJid","getRealJid","setNick","contact","getContact","getRole","setRole","setAffiliation","getAffiliation","isModerator","list","splice","setPrivacyLists","lists","isInPrivacyList","setCustomData","getCustomData","setPreviousNick","getPreviousNick","setStatus","getStatus","Contact","stropheRosterItem","getSubscription","subscription","getGroups","groups","highestResourcePriority","resourcePriority","priority","parseInt","_weightForStatus","presetJid","Status","CONNECTED","ATTACHED","DISCONNECTED","AUTHFAIL","CONNECTING","DISCONNECTING","AUTHENTICATING","CONNFAIL","children","stanza","_addRosterItems","updatedItem","_addRosterItem","PrivacyListError","invite","_findInvite","mediatedInvite","find","directInvite","passwordNode","reasonNode","continueNode","continuedThread","identity","roomName","presenceType","isNewRoom","_msgHasStatusCode","nickAssign","nickChange","_selfLeave","code","actor","tagName","carbon","partnerJid","sender","barePartner","bareFrom","isNoConferenceRoomJid","partner","xhtmlChild","XHTML_IM","xhtmlMessage","first","contents","_checkForChatStateNotification","delay","DELAY","JABBER_DELAY","toISOString","chatStateElements","chatstate","_showConnectedMessageModal","event","args","eventName","Modal","hide","showLoginForm","adminMessage","onInfoMessage","close","notifyPrivateChats","actionLabel","actorName","translationParams","Context","adminMessageReason","_action","_reason","evtData","PrivateRoom","bareJid","targetJid","showEnterPasswordForm","showNicknameConflictForm","showError","setSubject","infoMessage","open","addTab","roomType","roomId","preventDefault","tab","privateUserChat","appendTo","click","tabClick","tabClose","getTab","removeTab","setActiveTab","addClass","removeClass","increaseUnreadMessages","unreadElem","updateWindowOnAllMessages","clearUnreadMessages","reduceUnreadMessages","currentRoomJid","roomPane","getPane","scrollPosition","scrollTop","parent","allTabsClosed","hideMobileIcon","availableWidth","innerWidth","tabsWidth","overflow","tabDiffToRealWidth","tabWidth","Math","floor","showMobileIcon","clickMobileIcon","is","time","appendToMessagePane","scrollToBottom","_supportsNativeAudio","showEmoticonsMenu","currentTarget","stopPropagation","onAutoscrollControlClick","canPlayType","onSoundControlClick","onStatusMessageControlClick","context","me","updateUsercount","usercount","playSound","onPlaySound","Audio","play","src","loop","autostart","control","hasClass","toggleClass","onScrollToStoredPosition","autoscroll","onScrollToBottom","count","showCloseControl","showSpinner","modalClass","hideCloseControl","hideSpinner","stop","fadeIn","callback","fadeOut","keydown","which","map","d","customClass","form","_labelNickname","_labelUsername","_labelPassword","_loginSubmit","displayPassword","displayUsername","displayDomain","displayNickname","submit","username","val","enterPasswordForm","_label","_joinSubmit","nicknameConflictForm","replacements","displayError","_error","content","tooltip","target","offset","posLeft","left","posTop","top","mouseleave","menu","links","menulinks","getMenuLinks","clickHandler","link","class","label","element","initialMenuLinks","requiredPermission","private","ignore","ignoreUser","unignore","unignoreUser","kick","contextModalForm","_submit","ban","input","emoticon","messagePane","enableScroll","renderEvtData","template","templateData","displayName","roomjid","last","notifyEvtData","hasFocus","switchToRoom","messageForm","removeAttr","changeNick","roomElement","roomTabElement","previousPrivateRoomJid","newPrivateRoomJid","previousPrivateRoomId","newPrivateRoomId","messageCount","_messageSubmit","_userOnline","setFocusToForm","_roomSubject","openRooms","sliceMessagePane","slice","chatPane","addIgnoreIcon","removeIgnoreIcon","subPane","changeDataUserJidIfUserIsMe","userId","usercountDiff","userElem","_insertUser","showJoinAnimation","userClick","leaveAnimation","contact_status","displayNick","tooltipRole","tooltipIgnored","userInserted","rosterPane","userSortCompare","_userSortCompare","before","statusWeight","toUpperCase","useRealJid","rosterUserId","$rosterUserElem","joinAnimation","elementId","slideDown","animate","opacity","complete","slideUp","previousUserJid","_hasFocus","_plainTitle","title","_unreadMessagesCount","renderUnreadMessages","num","unreadmessages","en","statusConnecting","statusConnected","statusDisconnecting","statusDisconnected","statusAuthfail","roomSubject","messageSubmit","labelUsername","labelNickname","labelPassword","loginSubmit","loginInvalid","reasonWas","kickActionLabel","youHaveBeenKickedBy","youHaveBeenKicked","banActionLabel","youHaveBeenBannedBy","youHaveBeenBanned","privateActionLabel","ignoreActionLabel","unignoreActionLabel","setSubjectActionLabel","administratorMessageSubject","userJoinedRoom","userLeftRoom","userHasBeenKickedFromRoom","userHasBeenBannedFromRoom","userChangedNick","dateFormat","timeFormat","enterRoomPassword","enterRoomPasswordSubmit","passwordEnteredInvalid","nicknameConflict","errorMembersOnly","errorMaxOccupantsReached","errorAutojoinMissing","antiSpamMessage","de","fr","nl","es","cn","ja","sv","fi","it","pl","presenceUnknownWarningSubject","presenceUnknownWarning","pt","pt_br","ru","ca","cs","he"],"mappings":"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"}
\ No newline at end of file
AddDefaultCharset UTF-8
Options +MultiViews
RewriteEngine On
RewriteRule http-bind/ http://localhost:5280/http-bind/ [P]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Candy - Chats are not dead yet</title>
<link rel="shortcut icon" href="../res/img/favicon.png" type="image/gif" />
<link rel="stylesheet" type="text/css" href="../libs.min.css" />
<link rel="stylesheet" type="text/css" href="../res/default.css" />
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript" src="../libs.min.js"></script>
<script type="text/javascript" src="../candy.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
Candy.init('http-bind/', {
core: {
// only set this to true if developing / debugging errors
debug: false,
// autojoin is a *required* parameter if you don't have a plugin (e.g. roomPanel) for it
// true
// -> fetch info from server (NOTE: does only work with openfire server)
// ['test@conference.example.com']
// -> array of rooms to join after connecting
autojoin: true
},
view: { assets: '../res/' }
});
Candy.Core.connect();
/**
* Thanks for trying Candy!
*
* If you need more information, please see here:
* - Setup instructions & config params: http://candy-chat.github.io/candy/#setup
* - FAQ & more: https://github.com/candy-chat/candy/wiki
*
* Mailinglist for questions:
* - http://groups.google.com/group/candy-chat
*
* Github issues for bugs:
* - https://github.com/candy-chat/candy/issues
*/
});
</script>
</head>
<body>
<div id="candy"></div>
</body>
</html>
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
function b64_sha1(a){return binb2b64(core_sha1(str2binb(a),8*a.length))}function str_sha1(a){return binb2str(core_sha1(str2binb(a),8*a.length))}function b64_hmac_sha1(a,b){return binb2b64(core_hmac_sha1(a,b))}function str_hmac_sha1(a,b){return binb2str(core_hmac_sha1(a,b))}function core_sha1(a,b){a[b>>5]|=128<<24-b%32,a[(b+64>>9<<4)+15]=b;var c,d,e,f,g,h,i,j,k=new Array(80),l=1732584193,m=-271733879,n=-1732584194,o=271733878,p=-1009589776;for(c=0;c<a.length;c+=16){for(f=l,g=m,h=n,i=o,j=p,d=0;80>d;d++)16>d?k[d]=a[c+d]:k[d]=rol(k[d-3]^k[d-8]^k[d-14]^k[d-16],1),e=safe_add(safe_add(rol(l,5),sha1_ft(d,m,n,o)),safe_add(safe_add(p,k[d]),sha1_kt(d))),p=o,o=n,n=rol(m,30),m=l,l=e;l=safe_add(l,f),m=safe_add(m,g),n=safe_add(n,h),o=safe_add(o,i),p=safe_add(p,j)}return[l,m,n,o,p]}function sha1_ft(a,b,c,d){return 20>a?b&c|~b&d:40>a?b^c^d:60>a?b&c|b&d|c&d:b^c^d}function sha1_kt(a){return 20>a?1518500249:40>a?1859775393:60>a?-1894007588:-899497514}function core_hmac_sha1(a,b){var c=str2binb(a);c.length>16&&(c=core_sha1(c,8*a.length));for(var d=new Array(16),e=new Array(16),f=0;16>f;f++)d[f]=909522486^c[f],e[f]=1549556828^c[f];var g=core_sha1(d.concat(str2binb(b)),512+8*b.length);return core_sha1(e.concat(g),672)}function safe_add(a,b){var c=(65535&a)+(65535&b),d=(a>>16)+(b>>16)+(c>>16);return d<<16|65535&c}function rol(a,b){return a<<b|a>>>32-b}function str2binb(a){for(var b=[],c=255,d=0;d<8*a.length;d+=8)b[d>>5]|=(a.charCodeAt(d/8)&c)<<24-d%32;return b}function binb2str(a){for(var b="",c=255,d=0;d<32*a.length;d+=8)b+=String.fromCharCode(a[d>>5]>>>24-d%32&c);return b}function binb2b64(a){for(var b,c,d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",e="",f=0;f<4*a.length;f+=3)for(b=(a[f>>2]>>8*(3-f%4)&255)<<16|(a[f+1>>2]>>8*(3-(f+1)%4)&255)<<8|a[f+2>>2]>>8*(3-(f+2)%4)&255,c=0;4>c;c++)e+=8*f+6*c>32*a.length?"=":d.charAt(b>>6*(3-c)&63);return e}var Base64=function(){var a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",b={encode:function(b){var c,d,e,f,g,h,i,j="",k=0;do c=b.charCodeAt(k++),d=b.charCodeAt(k++),e=b.charCodeAt(k++),f=c>>2,g=(3&c)<<4|d>>4,h=(15&d)<<2|e>>6,i=63&e,isNaN(d)?h=i=64:isNaN(e)&&(i=64),j=j+a.charAt(f)+a.charAt(g)+a.charAt(h)+a.charAt(i);while(k<b.length);return j},decode:function(b){var c,d,e,f,g,h,i,j="",k=0;b=b.replace(/[^A-Za-z0-9\+\/\=]/g,"");do f=a.indexOf(b.charAt(k++)),g=a.indexOf(b.charAt(k++)),h=a.indexOf(b.charAt(k++)),i=a.indexOf(b.charAt(k++)),c=f<<2|g>>4,d=(15&g)<<4|h>>2,e=(3&h)<<6|i,j+=String.fromCharCode(c),64!=h&&(j+=String.fromCharCode(d)),64!=i&&(j+=String.fromCharCode(e));while(k<b.length);return j}};return b}(),MD5=function(){var a=function(a,b){var c=(65535&a)+(65535&b),d=(a>>16)+(b>>16)+(c>>16);return d<<16|65535&c},b=function(a,b){return a<<b|a>>>32-b},c=function(a){for(var b=[],c=0;c<8*a.length;c+=8)b[c>>5]|=(255&a.charCodeAt(c/8))<<c%32;return b},d=function(a){for(var b="",c=0;c<32*a.length;c+=8)b+=String.fromCharCode(a[c>>5]>>>c%32&255);return b},e=function(a){for(var b="0123456789abcdef",c="",d=0;d<4*a.length;d++)c+=b.charAt(a[d>>2]>>d%4*8+4&15)+b.charAt(a[d>>2]>>d%4*8&15);return c},f=function(c,d,e,f,g,h){return a(b(a(a(d,c),a(f,h)),g),e)},g=function(a,b,c,d,e,g,h){return f(b&c|~b&d,a,b,e,g,h)},h=function(a,b,c,d,e,g,h){return f(b&d|c&~d,a,b,e,g,h)},i=function(a,b,c,d,e,g,h){return f(b^c^d,a,b,e,g,h)},j=function(a,b,c,d,e,g,h){return f(c^(b|~d),a,b,e,g,h)},k=function(b,c){b[c>>5]|=128<<c%32,b[(c+64>>>9<<4)+14]=c;for(var d,e,f,k,l=1732584193,m=-271733879,n=-1732584194,o=271733878,p=0;p<b.length;p+=16)d=l,e=m,f=n,k=o,l=g(l,m,n,o,b[p+0],7,-680876936),o=g(o,l,m,n,b[p+1],12,-389564586),n=g(n,o,l,m,b[p+2],17,606105819),m=g(m,n,o,l,b[p+3],22,-1044525330),l=g(l,m,n,o,b[p+4],7,-176418897),o=g(o,l,m,n,b[p+5],12,1200080426),n=g(n,o,l,m,b[p+6],17,-1473231341),m=g(m,n,o,l,b[p+7],22,-45705983),l=g(l,m,n,o,b[p+8],7,1770035416),o=g(o,l,m,n,b[p+9],12,-1958414417),n=g(n,o,l,m,b[p+10],17,-42063),m=g(m,n,o,l,b[p+11],22,-1990404162),l=g(l,m,n,o,b[p+12],7,1804603682),o=g(o,l,m,n,b[p+13],12,-40341101),n=g(n,o,l,m,b[p+14],17,-1502002290),m=g(m,n,o,l,b[p+15],22,1236535329),l=h(l,m,n,o,b[p+1],5,-165796510),o=h(o,l,m,n,b[p+6],9,-1069501632),n=h(n,o,l,m,b[p+11],14,643717713),m=h(m,n,o,l,b[p+0],20,-373897302),l=h(l,m,n,o,b[p+5],5,-701558691),o=h(o,l,m,n,b[p+10],9,38016083),n=h(n,o,l,m,b[p+15],14,-660478335),m=h(m,n,o,l,b[p+4],20,-405537848),l=h(l,m,n,o,b[p+9],5,568446438),o=h(o,l,m,n,b[p+14],9,-1019803690),n=h(n,o,l,m,b[p+3],14,-187363961),m=h(m,n,o,l,b[p+8],20,1163531501),l=h(l,m,n,o,b[p+13],5,-1444681467),o=h(o,l,m,n,b[p+2],9,-51403784),n=h(n,o,l,m,b[p+7],14,1735328473),m=h(m,n,o,l,b[p+12],20,-1926607734),l=i(l,m,n,o,b[p+5],4,-378558),o=i(o,l,m,n,b[p+8],11,-2022574463),n=i(n,o,l,m,b[p+11],16,1839030562),m=i(m,n,o,l,b[p+14],23,-35309556),l=i(l,m,n,o,b[p+1],4,-1530992060),o=i(o,l,m,n,b[p+4],11,1272893353),n=i(n,o,l,m,b[p+7],16,-155497632),m=i(m,n,o,l,b[p+10],23,-1094730640),l=i(l,m,n,o,b[p+13],4,681279174),o=i(o,l,m,n,b[p+0],11,-358537222),n=i(n,o,l,m,b[p+3],16,-722521979),m=i(m,n,o,l,b[p+6],23,76029189),l=i(l,m,n,o,b[p+9],4,-640364487),o=i(o,l,m,n,b[p+12],11,-421815835),n=i(n,o,l,m,b[p+15],16,530742520),m=i(m,n,o,l,b[p+2],23,-995338651),l=j(l,m,n,o,b[p+0],6,-198630844),o=j(o,l,m,n,b[p+7],10,1126891415),n=j(n,o,l,m,b[p+14],15,-1416354905),m=j(m,n,o,l,b[p+5],21,-57434055),l=j(l,m,n,o,b[p+12],6,1700485571),o=j(o,l,m,n,b[p+3],10,-1894986606),n=j(n,o,l,m,b[p+10],15,-1051523),m=j(m,n,o,l,b[p+1],21,-2054922799),l=j(l,m,n,o,b[p+8],6,1873313359),o=j(o,l,m,n,b[p+15],10,-30611744),n=j(n,o,l,m,b[p+6],15,-1560198380),m=j(m,n,o,l,b[p+13],21,1309151649),l=j(l,m,n,o,b[p+4],6,-145523070),o=j(o,l,m,n,b[p+11],10,-1120210379),n=j(n,o,l,m,b[p+2],15,718787259),m=j(m,n,o,l,b[p+9],21,-343485551),l=a(l,d),m=a(m,e),n=a(n,f),o=a(o,k);return[l,m,n,o]},l={hexdigest:function(a){return e(k(c(a),8*a.length))},hash:function(a){return d(k(c(a),8*a.length))}};return l}();Function.prototype.bind||(Function.prototype.bind=function(a){var b=this,c=Array.prototype.slice,d=Array.prototype.concat,e=c.call(arguments,1);return function(){return b.apply(a?a:this,d.call(e,c.call(arguments,0)))}}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length,c=Number(arguments[1])||0;for(c=0>c?Math.ceil(c):Math.floor(c),0>c&&(c+=b);b>c;c++)if(c in this&&this[c]===a)return c;return-1}),function(a){function b(a,b){return new f.Builder(a,b)}function c(a){return new f.Builder("message",a)}function d(a){return new f.Builder("iq",a)}function e(a){return new f.Builder("presence",a)}var f;f={VERSION:"1.1.3",NS:{HTTPBIND:"http://jabber.org/protocol/httpbind",BOSH:"urn:xmpp:xbosh",CLIENT:"jabber:client",AUTH:"jabber:iq:auth",ROSTER:"jabber:iq:roster",PROFILE:"jabber:iq:profile",DISCO_INFO:"http://jabber.org/protocol/disco#info",DISCO_ITEMS:"http://jabber.org/protocol/disco#items",MUC:"http://jabber.org/protocol/muc",SASL:"urn:ietf:params:xml:ns:xmpp-sasl",STREAM:"http://etherx.jabber.org/streams",BIND:"urn:ietf:params:xml:ns:xmpp-bind",SESSION:"urn:ietf:params:xml:ns:xmpp-session",VERSION:"jabber:iq:version",STANZAS:"urn:ietf:params:xml:ns:xmpp-stanzas",XHTML_IM:"http://jabber.org/protocol/xhtml-im",XHTML:"http://www.w3.org/1999/xhtml"},XHTML:{tags:["a","blockquote","br","cite","em","img","li","ol","p","span","strong","ul","body"],attributes:{a:["href"],blockquote:["style"],br:[],cite:["style"],em:[],img:["src","alt","style","height","width"],li:["style"],ol:["style"],p:["style"],span:["style"],strong:[],ul:["style"],body:[]},css:["background-color","color","font-family","font-size","font-style","font-weight","margin-left","margin-right","text-align","text-decoration"],validTag:function(a){for(var b=0;b<f.XHTML.tags.length;b++)if(a==f.XHTML.tags[b])return!0;return!1},validAttribute:function(a,b){if("undefined"!=typeof f.XHTML.attributes[a]&&f.XHTML.attributes[a].length>0)for(var c=0;c<f.XHTML.attributes[a].length;c++)if(b==f.XHTML.attributes[a][c])return!0;return!1},validCSS:function(a){for(var b=0;b<f.XHTML.css.length;b++)if(a==f.XHTML.css[b])return!0;return!1}},Status:{ERROR:0,CONNECTING:1,CONNFAIL:2,AUTHENTICATING:3,AUTHFAIL:4,CONNECTED:5,DISCONNECTED:6,DISCONNECTING:7,ATTACHED:8},LogLevel:{DEBUG:0,INFO:1,WARN:2,ERROR:3,FATAL:4},ElementType:{NORMAL:1,TEXT:3,CDATA:4,FRAGMENT:11},TIMEOUT:1.1,SECONDARY_TIMEOUT:.1,addNamespace:function(a,b){f.NS[a]=b},forEachChild:function(a,b,c){var d,e;for(d=0;d<a.childNodes.length;d++)e=a.childNodes[d],e.nodeType!=f.ElementType.NORMAL||b&&!this.isTagEqual(e,b)||c(e)},isTagEqual:function(a,b){return a.tagName.toLowerCase()==b.toLowerCase()},_xmlGenerator:null,_makeGenerator:function(){var a;return void 0===document.implementation.createDocument||document.implementation.createDocument&&document.documentMode&&document.documentMode<10?(a=this._getIEXmlDom(),a.appendChild(a.createElement("strophe"))):a=document.implementation.createDocument("jabber:client","strophe",null),a},xmlGenerator:function(){return f._xmlGenerator||(f._xmlGenerator=f._makeGenerator()),f._xmlGenerator},_getIEXmlDom:function(){for(var a=null,b=["Msxml2.DOMDocument.6.0","Msxml2.DOMDocument.5.0","Msxml2.DOMDocument.4.0","MSXML2.DOMDocument.3.0","MSXML2.DOMDocument","MSXML.DOMDocument","Microsoft.XMLDOM"],c=0;c<b.length&&null===a;c++)try{a=new ActiveXObject(b[c])}catch(d){a=null}return a},xmlElement:function(a){if(!a)return null;var b,c,d,e=f.xmlGenerator().createElement(a);for(b=1;b<arguments.length;b++)if(arguments[b])if("string"==typeof arguments[b]||"number"==typeof arguments[b])e.appendChild(f.xmlTextNode(arguments[b]));else if("object"==typeof arguments[b]&&"function"==typeof arguments[b].sort)for(c=0;c<arguments[b].length;c++)"object"==typeof arguments[b][c]&&"function"==typeof arguments[b][c].sort&&e.setAttribute(arguments[b][c][0],arguments[b][c][1]);else if("object"==typeof arguments[b])for(d in arguments[b])arguments[b].hasOwnProperty(d)&&e.setAttribute(d,arguments[b][d]);return e},xmlescape:function(a){return a=a.replace(/\&/g,"&amp;"),a=a.replace(/</g,"&lt;"),a=a.replace(/>/g,"&gt;"),a=a.replace(/'/g,"&apos;"),a=a.replace(/"/g,"&quot;")},xmlTextNode:function(a){return f.xmlGenerator().createTextNode(a)},xmlHtmlNode:function(a){var b;if(window.DOMParser){var c=new DOMParser;b=c.parseFromString(a,"text/xml")}else b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(a);return b},getText:function(a){if(!a)return null;var b="";0===a.childNodes.length&&a.nodeType==f.ElementType.TEXT&&(b+=a.nodeValue);for(var c=0;c<a.childNodes.length;c++)a.childNodes[c].nodeType==f.ElementType.TEXT&&(b+=a.childNodes[c].nodeValue);return f.xmlescape(b)},copyElement:function(a){var b,c;if(a.nodeType==f.ElementType.NORMAL){for(c=f.xmlElement(a.tagName),b=0;b<a.attributes.length;b++)c.setAttribute(a.attributes[b].nodeName.toLowerCase(),a.attributes[b].value);for(b=0;b<a.childNodes.length;b++)c.appendChild(f.copyElement(a.childNodes[b]))}else a.nodeType==f.ElementType.TEXT&&(c=f.xmlGenerator().createTextNode(a.nodeValue));return c},createHtml:function(a){var b,c,d,e,g,h,i,j,k,l,m;if(a.nodeType==f.ElementType.NORMAL)if(e=a.nodeName.toLowerCase(),f.XHTML.validTag(e))try{for(c=f.xmlElement(e),b=0;b<f.XHTML.attributes[e].length;b++)if(g=f.XHTML.attributes[e][b],h=a.getAttribute(g),"undefined"!=typeof h&&null!==h&&""!==h&&h!==!1&&0!==h)if("style"==g&&"object"==typeof h&&"undefined"!=typeof h.cssText&&(h=h.cssText),"style"==g){for(i=[],j=h.split(";"),d=0;d<j.length;d++)k=j[d].split(":"),l=k[0].replace(/^\s*/,"").replace(/\s*$/,"").toLowerCase(),f.XHTML.validCSS(l)&&(m=k[1].replace(/^\s*/,"").replace(/\s*$/,""),i.push(l+": "+m));i.length>0&&(h=i.join("; "),c.setAttribute(g,h))}else c.setAttribute(g,h);for(b=0;b<a.childNodes.length;b++)c.appendChild(f.createHtml(a.childNodes[b]))}catch(n){c=f.xmlTextNode("")}else for(c=f.xmlGenerator().createDocumentFragment(),b=0;b<a.childNodes.length;b++)c.appendChild(f.createHtml(a.childNodes[b]));else if(a.nodeType==f.ElementType.FRAGMENT)for(c=f.xmlGenerator().createDocumentFragment(),b=0;b<a.childNodes.length;b++)c.appendChild(f.createHtml(a.childNodes[b]));else a.nodeType==f.ElementType.TEXT&&(c=f.xmlTextNode(a.nodeValue));return c},escapeNode:function(a){return a.replace(/^\s+|\s+$/g,"").replace(/\\/g,"\\5c").replace(/ /g,"\\20").replace(/\"/g,"\\22").replace(/\&/g,"\\26").replace(/\'/g,"\\27").replace(/\//g,"\\2f").replace(/:/g,"\\3a").replace(/</g,"\\3c").replace(/>/g,"\\3e").replace(/@/g,"\\40")},unescapeNode:function(a){return a.replace(/\\20/g," ").replace(/\\22/g,'"').replace(/\\26/g,"&").replace(/\\27/g,"'").replace(/\\2f/g,"/").replace(/\\3a/g,":").replace(/\\3c/g,"<").replace(/\\3e/g,">").replace(/\\40/g,"@").replace(/\\5c/g,"\\")},getNodeFromJid:function(a){return a.indexOf("@")<0?null:a.split("@")[0]},getDomainFromJid:function(a){var b=f.getBareJidFromJid(a);if(b.indexOf("@")<0)return b;var c=b.split("@");return c.splice(0,1),c.join("@")},getResourceFromJid:function(a){var b=a.split("/");return b.length<2?null:(b.splice(0,1),b.join("/"))},getBareJidFromJid:function(a){return a?a.split("/")[0]:null},log:function(a,b){},debug:function(a){this.log(this.LogLevel.DEBUG,a)},info:function(a){this.log(this.LogLevel.INFO,a)},warn:function(a){this.log(this.LogLevel.WARN,a)},error:function(a){this.log(this.LogLevel.ERROR,a)},fatal:function(a){this.log(this.LogLevel.FATAL,a)},serialize:function(a){var b;if(!a)return null;"function"==typeof a.tree&&(a=a.tree());var c,d,e=a.nodeName;for(a.getAttribute("_realname")&&(e=a.getAttribute("_realname")),b="<"+e,c=0;c<a.attributes.length;c++)"_realname"!=a.attributes[c].nodeName&&(b+=" "+a.attributes[c].nodeName.toLowerCase()+"='"+a.attributes[c].value.replace(/&/g,"&amp;").replace(/\'/g,"&apos;").replace(/>/g,"&gt;").replace(/</g,"&lt;")+"'");if(a.childNodes.length>0){for(b+=">",c=0;c<a.childNodes.length;c++)switch(d=a.childNodes[c],d.nodeType){case f.ElementType.NORMAL:b+=f.serialize(d);break;case f.ElementType.TEXT:b+=f.xmlescape(d.nodeValue);break;case f.ElementType.CDATA:b+="<![CDATA["+d.nodeValue+"]]>"}b+="</"+e+">"}else b+="/>";return b},_requestId:0,_connectionPlugins:{},addConnectionPlugin:function(a,b){f._connectionPlugins[a]=b}},f.Builder=function(a,b){("presence"==a||"message"==a||"iq"==a)&&(b&&!b.xmlns?b.xmlns=f.NS.CLIENT:b||(b={xmlns:f.NS.CLIENT})),this.nodeTree=f.xmlElement(a,b),this.node=this.nodeTree},f.Builder.prototype={tree:function(){return this.nodeTree},toString:function(){return f.serialize(this.nodeTree)},up:function(){return this.node=this.node.parentNode,this},attrs:function(a){for(var b in a)a.hasOwnProperty(b)&&this.node.setAttribute(b,a[b]);return this},c:function(a,b,c){var d=f.xmlElement(a,b,c);return this.node.appendChild(d),c||(this.node=d),this},cnode:function(a){var b,c=f.xmlGenerator();try{b=void 0!==c.importNode}catch(d){b=!1}var e=b?c.importNode(a,!0):f.copyElement(a);return this.node.appendChild(e),this.node=e,this},t:function(a){var b=f.xmlTextNode(a);return this.node.appendChild(b),this},h:function(a){var b=document.createElement("body");b.innerHTML=a;for(var c=f.createHtml(b);c.childNodes.length>0;)this.node.appendChild(c.childNodes[0]);return this}},f.Handler=function(a,b,c,d,e,g,h){this.handler=a,this.ns=b,this.name=c,this.type=d,this.id=e,this.options=h||{matchBare:!1},this.options.matchBare||(this.options.matchBare=!1),this.options.matchBare?this.from=g?f.getBareJidFromJid(g):null:this.from=g,this.user=!0},f.Handler.prototype={isMatch:function(a){var b,c=null;if(c=this.options.matchBare?f.getBareJidFromJid(a.getAttribute("from")):a.getAttribute("from"),b=!1,this.ns){var d=this;f.forEachChild(a,null,function(a){a.getAttribute("xmlns")==d.ns&&(b=!0)}),b=b||a.getAttribute("xmlns")==this.ns}else b=!0;return!b||this.name&&!f.isTagEqual(a,this.name)||this.type&&a.getAttribute("type")!=this.type||this.id&&a.getAttribute("id")!=this.id||this.from&&c!=this.from?!1:!0},run:function(a){var b=null;try{b=this.handler(a)}catch(c){throw c.sourceURL?f.fatal("error: "+this.handler+" "+c.sourceURL+":"+c.line+" - "+c.name+": "+c.message):c.fileName?("undefined"!=typeof console&&(console.trace(),console.error(this.handler," - error - ",c,c.message)),f.fatal("error: "+this.handler+" "+c.fileName+":"+c.lineNumber+" - "+c.name+": "+c.message)):f.fatal("error: "+c.message+"\n"+c.stack),c}return b},toString:function(){return"{Handler: "+this.handler+"("+this.name+","+this.id+","+this.ns+")}"}},f.TimedHandler=function(a,b){this.period=a,this.handler=b,this.lastCalled=(new Date).getTime(),this.user=!0},f.TimedHandler.prototype={run:function(){return this.lastCalled=(new Date).getTime(),this.handler()},reset:function(){this.lastCalled=(new Date).getTime()},toString:function(){return"{TimedHandler: "+this.handler+"("+this.period+")}"}},f.Connection=function(a,b){this.service=a,this.options=b||{};var c=this.options.protocol||"";0===a.indexOf("ws:")||0===a.indexOf("wss:")||0===c.indexOf("ws")?this._proto=new f.Websocket(this):this._proto=new f.Bosh(this),this.jid="",this.domain=null,this.features=null,this._sasl_data={},this.do_session=!1,this.do_bind=!1,this.timedHandlers=[],this.handlers=[],this.removeTimeds=[],this.removeHandlers=[],this.addTimeds=[],this.addHandlers=[],this._authentication={},this._idleTimeout=null,this._disconnectTimeout=null,this.do_authentication=!0,this.authenticated=!1,this.disconnecting=!1,this.connected=!1,this.errors=0,this.paused=!1,this._data=[],this._uniqueId=0,this._sasl_success_handler=null,this._sasl_failure_handler=null,this._sasl_challenge_handler=null,this.maxRetries=5,this._idleTimeout=setTimeout(this._onIdle.bind(this),100);for(var d in f._connectionPlugins)if(f._connectionPlugins.hasOwnProperty(d)){var e=f._connectionPlugins[d],g=function(){};g.prototype=e,this[d]=new g,this[d].init(this)}},f.Connection.prototype={reset:function(){this._proto._reset(),this.do_session=!1,this.do_bind=!1,this.timedHandlers=[],this.handlers=[],this.removeTimeds=[],this.removeHandlers=[],this.addTimeds=[],this.addHandlers=[],this._authentication={},this.authenticated=!1,this.disconnecting=!1,this.connected=!1,this.errors=0,this._requests=[],this._uniqueId=0},pause:function(){this.paused=!0},resume:function(){this.paused=!1},getUniqueId:function(a){return"string"==typeof a||"number"==typeof a?++this._uniqueId+":"+a:++this._uniqueId+""},connect:function(a,b,c,d,e,g){this.jid=a,this.authzid=f.getBareJidFromJid(this.jid),this.authcid=f.getNodeFromJid(this.jid),this.pass=b,this.servtype="xmpp",this.connect_callback=c,this.disconnecting=!1,this.connected=!1,this.authenticated=!1,this.errors=0,this.domain=f.getDomainFromJid(this.jid),this._changeConnectStatus(f.Status.CONNECTING,null),this._proto._connect(d,e,g)},attach:function(a,b,c,d,e,f,g){this._proto._attach(a,b,c,d,e,f,g)},xmlInput:function(a){},xmlOutput:function(a){},rawInput:function(a){},rawOutput:function(a){},send:function(a){if(null!==a){if("function"==typeof a.sort)for(var b=0;b<a.length;b++)this._queueData(a[b]);else"function"==typeof a.tree?this._queueData(a.tree()):this._queueData(a);this._proto._send()}},flush:function(){clearTimeout(this._idleTimeout),this._onIdle()},sendIQ:function(a,b,c,d){var e=null,f=this;"function"==typeof a.tree&&(a=a.tree());var g=a.getAttribute("id");g||(g=this.getUniqueId("sendIQ"),a.setAttribute("id",g));var h=this.addHandler(function(a){e&&f.deleteTimedHandler(e);var d=a.getAttribute("type");if("result"==d)b&&b(a);else{if("error"!=d)throw{name:"StropheError",message:"Got bad IQ type of "+d};c&&c(a)}},null,"iq",null,g);return d&&(e=this.addTimedHandler(d,function(){return f.deleteHandler(h),c&&c(null),!1})),this.send(a),g},_queueData:function(a){if(null===a||!a.tagName||!a.childNodes)throw{name:"StropheError",message:"Cannot queue non-DOMElement."};this._data.push(a)},_sendRestart:function(){this._data.push("restart"),this._proto._sendRestart(),this._idleTimeout=setTimeout(this._onIdle.bind(this),100)},addTimedHandler:function(a,b){var c=new f.TimedHandler(a,b);return this.addTimeds.push(c),c},deleteTimedHandler:function(a){this.removeTimeds.push(a)},addHandler:function(a,b,c,d,e,g,h){var i=new f.Handler(a,b,c,d,e,g,h);return this.addHandlers.push(i),i},deleteHandler:function(a){this.removeHandlers.push(a)},disconnect:function(a){if(this._changeConnectStatus(f.Status.DISCONNECTING,a),f.info("Disconnect was called because: "+a),this.connected){var b=!1;this.disconnecting=!0,this.authenticated&&(b=e({xmlns:f.NS.CLIENT,type:"unavailable"})),this._disconnectTimeout=this._addSysTimedHandler(3e3,this._onDisconnectTimeout.bind(this)),this._proto._disconnect(b)}},_changeConnectStatus:function(a,b){for(var c in f._connectionPlugins)if(f._connectionPlugins.hasOwnProperty(c)){var d=this[c];if(d.statusChanged)try{d.statusChanged(a,b)}catch(e){f.error(""+c+" plugin caused an exception changing status: "+e)}}if(this.connect_callback)try{this.connect_callback(a,b)}catch(g){f.error("User connection callback caused an exception: "+g)}},_doDisconnect:function(){null!==this._disconnectTimeout&&(this.deleteTimedHandler(this._disconnectTimeout),this._disconnectTimeout=null),f.info("_doDisconnect was called"),this._proto._doDisconnect(),this.authenticated=!1,this.disconnecting=!1,this.handlers=[],this.timedHandlers=[],this.removeTimeds=[],this.removeHandlers=[],this.addTimeds=[],this.addHandlers=[],this._changeConnectStatus(f.Status.DISCONNECTED,null),this.connected=!1},_dataRecv:function(a,b){f.info("_dataRecv called");var c=this._proto._reqToData(a);if(null!==c){this.xmlInput!==f.Connection.prototype.xmlInput&&(c.nodeName===this._proto.strip&&c.childNodes.length?this.xmlInput(c.childNodes[0]):this.xmlInput(c)),this.rawInput!==f.Connection.prototype.rawInput&&(b?this.rawInput(b):this.rawInput(f.serialize(c)));for(var d,e;this.removeHandlers.length>0;)e=this.removeHandlers.pop(),d=this.handlers.indexOf(e),d>=0&&this.handlers.splice(d,1);for(;this.addHandlers.length>0;)this.handlers.push(this.addHandlers.pop());if(this.disconnecting&&this._proto._emptyQueue())return void this._doDisconnect();var g,h,i=c.getAttribute("type");if(null!==i&&"terminate"==i){if(this.disconnecting)return;return g=c.getAttribute("condition"),h=c.getElementsByTagName("conflict"),null!==g?("remote-stream-error"==g&&h.length>0&&(g="conflict"),this._changeConnectStatus(f.Status.CONNFAIL,g)):this._changeConnectStatus(f.Status.CONNFAIL,"unknown"),void this.disconnect("unknown stream-error")}var j=this;f.forEachChild(c,null,function(a){var b,c;for(c=j.handlers,j.handlers=[],b=0;b<c.length;b++){var d=c[b];try{!d.isMatch(a)||!j.authenticated&&d.user?j.handlers.push(d):d.run(a)&&j.handlers.push(d)}catch(e){f.warn("Removing Strophe handlers due to uncaught exception: "+e.message)}}})}},mechanisms:{},_connect_cb:function(a,b,c){f.info("_connect_cb was called"),this.connected=!0;var d=this._proto._reqToData(a);if(d){this.xmlInput!==f.Connection.prototype.xmlInput&&(d.nodeName===this._proto.strip&&d.childNodes.length?this.xmlInput(d.childNodes[0]):this.xmlInput(d)),this.rawInput!==f.Connection.prototype.rawInput&&(c?this.rawInput(c):this.rawInput(f.serialize(d)));var e=this._proto._connect_cb(d);if(e!==f.Status.CONNFAIL){this._authentication.sasl_scram_sha1=!1,this._authentication.sasl_plain=!1,this._authentication.sasl_digest_md5=!1,this._authentication.sasl_anonymous=!1,this._authentication.legacy_auth=!1;var g=d.getElementsByTagName("stream:features").length>0;g||(g=d.getElementsByTagName("features").length>0);var h,i,j=d.getElementsByTagName("mechanism"),k=[],l=!1;if(!g)return void this._proto._no_auth_received(b);if(j.length>0)for(h=0;h<j.length;h++)i=f.getText(j[h]),this.mechanisms[i]&&k.push(this.mechanisms[i]);return this._authentication.legacy_auth=d.getElementsByTagName("auth").length>0,(l=this._authentication.legacy_auth||k.length>0)?void(this.do_authentication!==!1&&this.authenticate(k)):void this._proto._no_auth_received(b)}}},authenticate:function(a){var c;for(c=0;c<a.length-1;++c){for(var e=c,g=c+1;g<a.length;++g)a[g].prototype.priority>a[e].prototype.priority&&(e=g);if(e!=c){var h=a[c];a[c]=a[e],a[e]=h}}var i=!1;for(c=0;c<a.length;++c)if(a[c].test(this)){this._sasl_success_handler=this._addSysHandler(this._sasl_success_cb.bind(this),null,"success",null,null),this._sasl_failure_handler=this._addSysHandler(this._sasl_failure_cb.bind(this),null,"failure",null,null),this._sasl_challenge_handler=this._addSysHandler(this._sasl_challenge_cb.bind(this),null,"challenge",null,null),this._sasl_mechanism=new a[c],this._sasl_mechanism.onStart(this);var j=b("auth",{xmlns:f.NS.SASL,mechanism:this._sasl_mechanism.name});if(this._sasl_mechanism.isClientFirst){var k=this._sasl_mechanism.onChallenge(this,null);j.t(Base64.encode(k))}this.send(j.tree()),i=!0;break}i||(null===f.getNodeFromJid(this.jid)?(this._changeConnectStatus(f.Status.CONNFAIL,"x-strophe-bad-non-anon-jid"),this.disconnect("x-strophe-bad-non-anon-jid")):(this._changeConnectStatus(f.Status.AUTHENTICATING,null),this._addSysHandler(this._auth1_cb.bind(this),null,null,null,"_auth_1"),this.send(d({type:"get",to:this.domain,id:"_auth_1"}).c("query",{xmlns:f.NS.AUTH}).c("username",{}).t(f.getNodeFromJid(this.jid)).tree())))},_sasl_challenge_cb:function(a){var c=Base64.decode(f.getText(a)),d=this._sasl_mechanism.onChallenge(this,c),e=b("response",{xmlns:f.NS.SASL});return""!==d&&e.t(Base64.encode(d)),this.send(e.tree()),!0},_auth1_cb:function(a){var b=d({type:"set",id:"_auth_2"}).c("query",{xmlns:f.NS.AUTH}).c("username",{}).t(f.getNodeFromJid(this.jid)).up().c("password").t(this.pass);return f.getResourceFromJid(this.jid)||(this.jid=f.getBareJidFromJid(this.jid)+"/strophe"),b.up().c("resource",{}).t(f.getResourceFromJid(this.jid)),this._addSysHandler(this._auth2_cb.bind(this),null,null,null,"_auth_2"),this.send(b.tree()),!1},_sasl_success_cb:function(a){if(this._sasl_data["server-signature"]){var b,c=Base64.decode(f.getText(a)),d=/([a-z]+)=([^,]+)(,|$)/,e=c.match(d);if("v"==e[1]&&(b=e[2]),b!=this._sasl_data["server-signature"])return this.deleteHandler(this._sasl_failure_handler),this._sasl_failure_handler=null,this._sasl_challenge_handler&&(this.deleteHandler(this._sasl_challenge_handler),this._sasl_challenge_handler=null),this._sasl_data={},this._sasl_failure_cb(null)}return f.info("SASL authentication succeeded."),this._sasl_mechanism&&this._sasl_mechanism.onSuccess(),this.deleteHandler(this._sasl_failure_handler),this._sasl_failure_handler=null,this._sasl_challenge_handler&&(this.deleteHandler(this._sasl_challenge_handler),this._sasl_challenge_handler=null),this._addSysHandler(this._sasl_auth1_cb.bind(this),null,"stream:features",null,null),this._sendRestart(),!1},_sasl_auth1_cb:function(a){this.features=a;var b,c;for(b=0;b<a.childNodes.length;b++)c=a.childNodes[b],"bind"==c.nodeName&&(this.do_bind=!0),"session"==c.nodeName&&(this.do_session=!0);if(!this.do_bind)return this._changeConnectStatus(f.Status.AUTHFAIL,null),!1;this._addSysHandler(this._sasl_bind_cb.bind(this),null,null,null,"_bind_auth_2");var e=f.getResourceFromJid(this.jid);return e?this.send(d({type:"set",id:"_bind_auth_2"}).c("bind",{xmlns:f.NS.BIND}).c("resource",{}).t(e).tree()):this.send(d({type:"set",id:"_bind_auth_2"}).c("bind",{xmlns:f.NS.BIND}).tree()),!1},_sasl_bind_cb:function(a){if("error"==a.getAttribute("type")){f.info("SASL binding failed.");var b,c=a.getElementsByTagName("conflict");return c.length>0&&(b="conflict"),this._changeConnectStatus(f.Status.AUTHFAIL,b),!1}var e,g=a.getElementsByTagName("bind");return g.length>0?(e=g[0].getElementsByTagName("jid"),void(e.length>0&&(this.jid=f.getText(e[0]),this.do_session?(this._addSysHandler(this._sasl_session_cb.bind(this),null,null,null,"_session_auth_2"),this.send(d({type:"set",id:"_session_auth_2"}).c("session",{xmlns:f.NS.SESSION}).tree())):(this.authenticated=!0,this._changeConnectStatus(f.Status.CONNECTED,null))))):(f.info("SASL binding failed."),this._changeConnectStatus(f.Status.AUTHFAIL,null),!1)},_sasl_session_cb:function(a){if("result"==a.getAttribute("type"))this.authenticated=!0,this._changeConnectStatus(f.Status.CONNECTED,null);else if("error"==a.getAttribute("type"))return f.info("Session creation failed."),this._changeConnectStatus(f.Status.AUTHFAIL,null),!1;return!1},_sasl_failure_cb:function(a){return this._sasl_success_handler&&(this.deleteHandler(this._sasl_success_handler),this._sasl_success_handler=null),this._sasl_challenge_handler&&(this.deleteHandler(this._sasl_challenge_handler),this._sasl_challenge_handler=null),this._sasl_mechanism&&this._sasl_mechanism.onFailure(),this._changeConnectStatus(f.Status.AUTHFAIL,null),!1},_auth2_cb:function(a){return"result"==a.getAttribute("type")?(this.authenticated=!0,this._changeConnectStatus(f.Status.CONNECTED,null)):"error"==a.getAttribute("type")&&(this._changeConnectStatus(f.Status.AUTHFAIL,null),this.disconnect("authentication failed")),!1},_addSysTimedHandler:function(a,b){var c=new f.TimedHandler(a,b);return c.user=!1,this.addTimeds.push(c),c},_addSysHandler:function(a,b,c,d,e){var g=new f.Handler(a,b,c,d,e);return g.user=!1,this.addHandlers.push(g),g},_onDisconnectTimeout:function(){return f.info("_onDisconnectTimeout was called"),this._proto._onDisconnectTimeout(),this._doDisconnect(),!1},_onIdle:function(){for(var a,b,c,d;this.addTimeds.length>0;)this.timedHandlers.push(this.addTimeds.pop());for(;this.removeTimeds.length>0;)b=this.removeTimeds.pop(),a=this.timedHandlers.indexOf(b),a>=0&&this.timedHandlers.splice(a,1);var e=(new Date).getTime();for(d=[],a=0;a<this.timedHandlers.length;a++)b=this.timedHandlers[a],(this.authenticated||!b.user)&&(c=b.lastCalled+b.period,0>=c-e?b.run()&&d.push(b):d.push(b));this.timedHandlers=d,clearTimeout(this._idleTimeout),this._proto._onIdle(),this.connected&&(this._idleTimeout=setTimeout(this._onIdle.bind(this),100))}},a&&a(f,b,c,d,e),f.SASLMechanism=function(a,b,c){this.name=a,this.isClientFirst=b,this.priority=c},f.SASLMechanism.prototype={test:function(a){return!0},onStart:function(a){this._connection=a},onChallenge:function(a,b){throw new Error("You should implement challenge handling!")},onFailure:function(){this._connection=null},onSuccess:function(){this._connection=null}},f.SASLAnonymous=function(){},f.SASLAnonymous.prototype=new f.SASLMechanism("ANONYMOUS",!1,10),f.SASLAnonymous.test=function(a){return null===a.authcid},f.Connection.prototype.mechanisms[f.SASLAnonymous.prototype.name]=f.SASLAnonymous,f.SASLPlain=function(){},f.SASLPlain.prototype=new f.SASLMechanism("PLAIN",!0,20),f.SASLPlain.test=function(a){return null!==a.authcid},f.SASLPlain.prototype.onChallenge=function(a){var b=a.authzid;return b+="\x00",b+=a.authcid,b+="\x00",b+=a.pass},f.Connection.prototype.mechanisms[f.SASLPlain.prototype.name]=f.SASLPlain,f.SASLSHA1=function(){},f.SASLSHA1.prototype=new f.SASLMechanism("SCRAM-SHA-1",!0,40),f.SASLSHA1.test=function(a){return null!==a.authcid},f.SASLSHA1.prototype.onChallenge=function(a,b,c){var d=c||MD5.hexdigest(1234567890*Math.random()),e="n="+a.authcid;return e+=",r=",e+=d,a._sasl_data.cnonce=d,a._sasl_data["client-first-message-bare"]=e,e="n,,"+e,this.onChallenge=function(a,b){for(var c,d,e,f,g,h,i,j,k,l,m,n="c=biws,",o=a._sasl_data["client-first-message-bare"]+","+b+",",p=a._sasl_data.cnonce,q=/([a-z]+)=([^,]+)(,|$)/;b.match(q);){var r=b.match(q);switch(b=b.replace(r[0],""),r[1]){case"r":c=r[2];break;case"s":d=r[2];break;case"i":e=r[2]}}if(c.substr(0,p.length)!==p)return a._sasl_data={},a._sasl_failure_cb();for(n+="r="+c,o+=n,d=Base64.decode(d),d+="\x00\x00\x00",f=h=core_hmac_sha1(a.pass,d),i=1;e>i;i++){for(g=core_hmac_sha1(a.pass,binb2str(h)),j=0;5>j;j++)f[j]^=g[j];h=g}for(f=binb2str(f),k=core_hmac_sha1(f,"Client Key"),l=str_hmac_sha1(f,"Server Key"),m=core_hmac_sha1(str_sha1(binb2str(k)),o),a._sasl_data["server-signature"]=b64_hmac_sha1(l,o),j=0;5>j;j++)k[j]^=m[j];return n+=",p="+Base64.encode(binb2str(k))}.bind(this),e},f.Connection.prototype.mechanisms[f.SASLSHA1.prototype.name]=f.SASLSHA1,f.SASLMD5=function(){},f.SASLMD5.prototype=new f.SASLMechanism("DIGEST-MD5",!1,30),f.SASLMD5.test=function(a){return null!==a.authcid},f.SASLMD5.prototype._quote=function(a){return'"'+a.replace(/\\/g,"\\\\").replace(/"/g,'\\"')+'"'},f.SASLMD5.prototype.onChallenge=function(a,b,c){
for(var d,e=/([a-z]+)=("[^"]+"|[^,"]+)(?:,|$)/,f=c||MD5.hexdigest(""+1234567890*Math.random()),g="",h=null,i="",j="";b.match(e);)switch(d=b.match(e),b=b.replace(d[0],""),d[2]=d[2].replace(/^"(.+)"$/,"$1"),d[1]){case"realm":g=d[2];break;case"nonce":i=d[2];break;case"qop":j=d[2];break;case"host":h=d[2]}var k=a.servtype+"/"+a.domain;null!==h&&(k=k+"/"+h);var l=MD5.hash(a.authcid+":"+g+":"+this._connection.pass)+":"+i+":"+f,m="AUTHENTICATE:"+k,n="";return n+="charset=utf-8,",n+="username="+this._quote(a.authcid)+",",n+="realm="+this._quote(g)+",",n+="nonce="+this._quote(i)+",",n+="nc=00000001,",n+="cnonce="+this._quote(f)+",",n+="digest-uri="+this._quote(k)+",",n+="response="+MD5.hexdigest(MD5.hexdigest(l)+":"+i+":00000001:"+f+":auth:"+MD5.hexdigest(m))+",",n+="qop=auth",this.onChallenge=function(){return""}.bind(this),n},f.Connection.prototype.mechanisms[f.SASLMD5.prototype.name]=f.SASLMD5}(function(){window.Strophe=arguments[0],window.$build=arguments[1],window.$msg=arguments[2],window.$iq=arguments[3],window.$pres=arguments[4]}),Strophe.Request=function(a,b,c,d){this.id=++Strophe._requestId,this.xmlData=a,this.data=Strophe.serialize(a),this.origFunc=b,this.func=b,this.rid=c,this.date=NaN,this.sends=d||0,this.abort=!1,this.dead=null,this.age=function(){if(!this.date)return 0;var a=new Date;return(a-this.date)/1e3},this.timeDead=function(){if(!this.dead)return 0;var a=new Date;return(a-this.dead)/1e3},this.xhr=this._newXHR()},Strophe.Request.prototype={getResponse:function(){var a=null;if(this.xhr.responseXML&&this.xhr.responseXML.documentElement){if(a=this.xhr.responseXML.documentElement,"parsererror"==a.tagName)throw Strophe.error("invalid response received"),Strophe.error("responseText: "+this.xhr.responseText),Strophe.error("responseXML: "+Strophe.serialize(this.xhr.responseXML)),"parsererror"}else this.xhr.responseText&&(Strophe.error("invalid response received"),Strophe.error("responseText: "+this.xhr.responseText),Strophe.error("responseXML: "+Strophe.serialize(this.xhr.responseXML)));return a},_newXHR:function(){var a=null;return window.XMLHttpRequest?(a=new XMLHttpRequest,a.overrideMimeType&&a.overrideMimeType("text/xml")):window.ActiveXObject&&(a=new ActiveXObject("Microsoft.XMLHTTP")),a.onreadystatechange=this.func.bind(null,this),a}},Strophe.Bosh=function(a){this._conn=a,this.rid=Math.floor(4294967295*Math.random()),this.sid=null,this.hold=1,this.wait=60,this.window=5,this._requests=[]},Strophe.Bosh.prototype={strip:null,_buildBody:function(){var a=$build("body",{rid:this.rid++,xmlns:Strophe.NS.HTTPBIND});return null!==this.sid&&a.attrs({sid:this.sid}),a},_reset:function(){this.rid=Math.floor(4294967295*Math.random()),this.sid=null},_connect:function(a,b,c){this.wait=a||this.wait,this.hold=b||this.hold;var d=this._buildBody().attrs({to:this._conn.domain,"xml:lang":"en",wait:this.wait,hold:this.hold,content:"text/xml; charset=utf-8",ver:"1.6","xmpp:version":"1.0","xmlns:xmpp":Strophe.NS.BOSH});c&&d.attrs({route:c});var e=this._conn._connect_cb;this._requests.push(new Strophe.Request(d.tree(),this._onRequestStateChange.bind(this,e.bind(this._conn)),d.tree().getAttribute("rid"))),this._throttledRequestHandler()},_attach:function(a,b,c,d,e,f,g){this._conn.jid=a,this.sid=b,this.rid=c,this._conn.connect_callback=d,this._conn.domain=Strophe.getDomainFromJid(this._conn.jid),this._conn.authenticated=!0,this._conn.connected=!0,this.wait=e||this.wait,this.hold=f||this.hold,this.window=g||this.window,this._conn._changeConnectStatus(Strophe.Status.ATTACHED,null)},_connect_cb:function(a){var b,c,d=a.getAttribute("type");if(null!==d&&"terminate"==d)return Strophe.error("BOSH-Connection failed: "+b),b=a.getAttribute("condition"),c=a.getElementsByTagName("conflict"),null!==b?("remote-stream-error"==b&&c.length>0&&(b="conflict"),this._conn._changeConnectStatus(Strophe.Status.CONNFAIL,b)):this._conn._changeConnectStatus(Strophe.Status.CONNFAIL,"unknown"),this._conn._doDisconnect(),Strophe.Status.CONNFAIL;this.sid||(this.sid=a.getAttribute("sid"));var e=a.getAttribute("requests");e&&(this.window=parseInt(e,10));var f=a.getAttribute("hold");f&&(this.hold=parseInt(f,10));var g=a.getAttribute("wait");g&&(this.wait=parseInt(g,10))},_disconnect:function(a){this._sendTerminate(a)},_doDisconnect:function(){this.sid=null,this.rid=Math.floor(4294967295*Math.random())},_emptyQueue:function(){return 0===this._requests.length},_hitError:function(a){this.errors++,Strophe.warn("request errored, status: "+a+", number of errors: "+this.errors),this.errors>4&&this._onDisconnectTimeout()},_no_auth_received:function(a){a=a?a.bind(this._conn):this._conn._connect_cb.bind(this._conn);var b=this._buildBody();this._requests.push(new Strophe.Request(b.tree(),this._onRequestStateChange.bind(this,a.bind(this._conn)),b.tree().getAttribute("rid"))),this._throttledRequestHandler()},_onDisconnectTimeout:function(){for(var a;this._requests.length>0;)a=this._requests.pop(),a.abort=!0,a.xhr.abort(),a.xhr.onreadystatechange=function(){}},_onIdle:function(){var a=this._conn._data;if(this._conn.authenticated&&0===this._requests.length&&0===a.length&&!this._conn.disconnecting&&(Strophe.info("no requests during idle cycle, sending blank request"),a.push(null)),this._requests.length<2&&a.length>0&&!this._conn.paused){for(var b=this._buildBody(),c=0;c<a.length;c++)null!==a[c]&&("restart"===a[c]?b.attrs({to:this._conn.domain,"xml:lang":"en","xmpp:restart":"true","xmlns:xmpp":Strophe.NS.BOSH}):b.cnode(a[c]).up());delete this._conn._data,this._conn._data=[],this._requests.push(new Strophe.Request(b.tree(),this._onRequestStateChange.bind(this,this._conn._dataRecv.bind(this._conn)),b.tree().getAttribute("rid"))),this._processRequest(this._requests.length-1)}if(this._requests.length>0){var d=this._requests[0].age();null!==this._requests[0].dead&&this._requests[0].timeDead()>Math.floor(Strophe.SECONDARY_TIMEOUT*this.wait)&&this._throttledRequestHandler(),d>Math.floor(Strophe.TIMEOUT*this.wait)&&(Strophe.warn("Request "+this._requests[0].id+" timed out, over "+Math.floor(Strophe.TIMEOUT*this.wait)+" seconds since last activity"),this._throttledRequestHandler())}},_onRequestStateChange:function(a,b){if(Strophe.debug("request id "+b.id+"."+b.sends+" state changed to "+b.xhr.readyState),b.abort)return void(b.abort=!1);var c;if(4==b.xhr.readyState){c=0;try{c=b.xhr.status}catch(d){}if("undefined"==typeof c&&(c=0),this.disconnecting&&c>=400)return void this._hitError(c);var e=this._requests[0]==b,f=this._requests[1]==b;(c>0&&500>c||b.sends>5)&&(this._removeRequest(b),Strophe.debug("request id "+b.id+" should now be removed")),200==c?((f||e&&this._requests.length>0&&this._requests[0].age()>Math.floor(Strophe.SECONDARY_TIMEOUT*this.wait))&&this._restartRequest(0),Strophe.debug("request id "+b.id+"."+b.sends+" got 200"),a(b),this.errors=0):(Strophe.error("request id "+b.id+"."+b.sends+" error "+c+" happened"),(0===c||c>=400&&600>c||c>=12e3)&&(this._hitError(c),c>=400&&500>c&&(this._conn._changeConnectStatus(Strophe.Status.DISCONNECTING,null),this._conn._doDisconnect()))),c>0&&500>c||b.sends>5||this._throttledRequestHandler()}},_processRequest:function(a){var b=this,c=this._requests[a],d=-1;try{4==c.xhr.readyState&&(d=c.xhr.status)}catch(e){Strophe.error("caught an error in _requests["+a+"], reqStatus: "+d)}if("undefined"==typeof d&&(d=-1),c.sends>this.maxRetries)return void this._onDisconnectTimeout();var f=c.age(),g=!isNaN(f)&&f>Math.floor(Strophe.TIMEOUT*this.wait),h=null!==c.dead&&c.timeDead()>Math.floor(Strophe.SECONDARY_TIMEOUT*this.wait),i=4==c.xhr.readyState&&(1>d||d>=500);if((g||h||i)&&(h&&Strophe.error("Request "+this._requests[a].id+" timed out (secondary), restarting"),c.abort=!0,c.xhr.abort(),c.xhr.onreadystatechange=function(){},this._requests[a]=new Strophe.Request(c.xmlData,c.origFunc,c.rid,c.sends),c=this._requests[a]),0===c.xhr.readyState){Strophe.debug("request id "+c.id+"."+c.sends+" posting");try{c.xhr.open("POST",this._conn.service,this._conn.options.sync?!1:!0)}catch(j){return Strophe.error("XHR open failed."),this._conn.connected||this._conn._changeConnectStatus(Strophe.Status.CONNFAIL,"bad-service"),void this._conn.disconnect()}var k=function(){if(c.date=new Date,b._conn.options.customHeaders){var a=b._conn.options.customHeaders;for(var d in a)a.hasOwnProperty(d)&&c.xhr.setRequestHeader(d,a[d])}c.xhr.send(c.data)};if(c.sends>1){var l=1e3*Math.min(Math.floor(Strophe.TIMEOUT*this.wait),Math.pow(c.sends,3));setTimeout(k,l)}else k();c.sends++,this._conn.xmlOutput!==Strophe.Connection.prototype.xmlOutput&&(c.xmlData.nodeName===this.strip&&c.xmlData.childNodes.length?this._conn.xmlOutput(c.xmlData.childNodes[0]):this._conn.xmlOutput(c.xmlData)),this._conn.rawOutput!==Strophe.Connection.prototype.rawOutput&&this._conn.rawOutput(c.data)}else Strophe.debug("_processRequest: "+(0===a?"first":"second")+" request has readyState of "+c.xhr.readyState)},_removeRequest:function(a){Strophe.debug("removing request");var b;for(b=this._requests.length-1;b>=0;b--)a==this._requests[b]&&this._requests.splice(b,1);a.xhr.onreadystatechange=function(){},this._throttledRequestHandler()},_restartRequest:function(a){var b=this._requests[a];null===b.dead&&(b.dead=new Date),this._processRequest(a)},_reqToData:function(a){try{return a.getResponse()}catch(b){if("parsererror"!=b)throw b;this._conn.disconnect("strophe-parsererror")}},_sendTerminate:function(a){Strophe.info("_sendTerminate was called");var b=this._buildBody().attrs({type:"terminate"});a&&b.cnode(a.tree());var c=new Strophe.Request(b.tree(),this._onRequestStateChange.bind(this,this._conn._dataRecv.bind(this._conn)),b.tree().getAttribute("rid"));this._requests.push(c),this._throttledRequestHandler()},_send:function(){clearTimeout(this._conn._idleTimeout),this._throttledRequestHandler(),this._conn._idleTimeout=setTimeout(this._conn._onIdle.bind(this._conn),100)},_sendRestart:function(){this._throttledRequestHandler(),clearTimeout(this._conn._idleTimeout)},_throttledRequestHandler:function(){this._requests?Strophe.debug("_throttledRequestHandler called with "+this._requests.length+" requests"):Strophe.debug("_throttledRequestHandler called with undefined requests"),this._requests&&0!==this._requests.length&&(this._requests.length>0&&this._processRequest(0),this._requests.length>1&&Math.abs(this._requests[0].rid-this._requests[1].rid)<this.window&&this._processRequest(1))}},Strophe.Websocket=function(a){this._conn=a,this.strip="stream:stream";var b=a.service;if(0!==b.indexOf("ws:")&&0!==b.indexOf("wss:")){var c="";c+="ws"===a.options.protocol&&"https:"!==window.location.protocol?"ws":"wss",c+="://"+window.location.host,c+=0!==b.indexOf("/")?window.location.pathname+b:b,a.service=c}},Strophe.Websocket.prototype={_buildStream:function(){return $build("stream:stream",{to:this._conn.domain,xmlns:Strophe.NS.CLIENT,"xmlns:stream":Strophe.NS.STREAM,version:"1.0"})},_check_streamerror:function(a,b){var c=a.getElementsByTagName("stream:error");if(0===c.length)return!1;for(var d=c[0],e="",f="",g="urn:ietf:params:xml:ns:xmpp-streams",h=0;h<d.childNodes.length;h++){var i=d.childNodes[h];if(i.getAttribute("xmlns")!==g)break;"text"===i.nodeName?f=i.textContent:e=i.nodeName}var j="WebSocket stream error: ";return j+=e?e:"unknown",f&&(j+=" - "+e),Strophe.error(j),this._conn._changeConnectStatus(b,e),this._conn._doDisconnect(),!0},_reset:function(){},_connect:function(){this._closeSocket(),this.socket=new WebSocket(this._conn.service,"xmpp"),this.socket.onopen=this._onOpen.bind(this),this.socket.onerror=this._onError.bind(this),this.socket.onclose=this._onClose.bind(this),this.socket.onmessage=this._connect_cb_wrapper.bind(this)},_connect_cb:function(a){var b=this._check_streamerror(a,Strophe.Status.CONNFAIL);return b?Strophe.Status.CONNFAIL:void 0},_handleStreamStart:function(a){var b=!1,c=a.getAttribute("xmlns");"string"!=typeof c?b="Missing xmlns in stream:stream":c!==Strophe.NS.CLIENT&&(b="Wrong xmlns in stream:stream: "+c);var d=a.namespaceURI;"string"!=typeof d?b="Missing xmlns:stream in stream:stream":d!==Strophe.NS.STREAM&&(b="Wrong xmlns:stream in stream:stream: "+d);var e=a.getAttribute("version");return"string"!=typeof e?b="Missing version in stream:stream":"1.0"!==e&&(b="Wrong version in stream:stream: "+e),b?(this._conn._changeConnectStatus(Strophe.Status.CONNFAIL,b),this._conn._doDisconnect(),!1):!0},_connect_cb_wrapper:function(a){if(0===a.data.indexOf("<stream:stream ")||0===a.data.indexOf("<?xml")){var b=a.data.replace(/^(<\?.*?\?>\s*)*/,"");if(""===b)return;b=a.data.replace(/<stream:stream (.*[^\/])>/,"<stream:stream $1/>");var c=(new DOMParser).parseFromString(b,"text/xml").documentElement;this._conn.xmlInput(c),this._conn.rawInput(a.data),this._handleStreamStart(c)&&(this._connect_cb(c),this.streamStart=a.data.replace(/^<stream:(.*)\/>$/,"<stream:$1>"))}else{if("</stream:stream>"===a.data)return this._conn.rawInput(a.data),this._conn.xmlInput(document.createElement("stream:stream")),this._conn._changeConnectStatus(Strophe.Status.CONNFAIL,"Received closing stream"),void this._conn._doDisconnect();var d=this._streamWrap(a.data),e=(new DOMParser).parseFromString(d,"text/xml").documentElement;this.socket.onmessage=this._onMessage.bind(this),this._conn._connect_cb(e,null,a.data)}},_disconnect:function(a){if(this.socket.readyState!==WebSocket.CLOSED){a&&this._conn.send(a);var b="</stream:stream>";this._conn.xmlOutput(document.createElement("stream:stream")),this._conn.rawOutput(b);try{this.socket.send(b)}catch(c){Strophe.info("Couldn't send closing stream tag.")}}this._conn._doDisconnect()},_doDisconnect:function(){Strophe.info("WebSockets _doDisconnect was called"),this._closeSocket()},_streamWrap:function(a){return this.streamStart+a+"</stream:stream>"},_closeSocket:function(){if(this.socket)try{this.socket.close()}catch(a){}this.socket=null},_emptyQueue:function(){return!0},_onClose:function(){this._conn.connected&&!this._conn.disconnecting?(Strophe.error("Websocket closed unexcectedly"),this._conn._doDisconnect()):Strophe.info("Websocket closed")},_no_auth_received:function(a){Strophe.error("Server did not send any auth methods"),this._conn._changeConnectStatus(Strophe.Status.CONNFAIL,"Server did not send any auth methods"),a&&(a=a.bind(this._conn))(),this._conn._doDisconnect()},_onDisconnectTimeout:function(){},_onError:function(a){Strophe.error("Websocket error "+a),this._conn._changeConnectStatus(Strophe.Status.CONNFAIL,"The WebSocket connection could not be established was disconnected."),this._disconnect()},_onIdle:function(){var a=this._conn._data;if(a.length>0&&!this._conn.paused){for(var b=0;b<a.length;b++)if(null!==a[b]){var c,d;"restart"===a[b]?(c=this._buildStream(),d=this._removeClosingTag(c),c=c.tree()):(c=a[b],d=Strophe.serialize(c)),this._conn.xmlOutput(c),this._conn.rawOutput(d),this.socket.send(d)}this._conn._data=[]}},_onMessage:function(a){var b,c;if("</stream:stream>"===a.data){var d="</stream:stream>";return this._conn.rawInput(d),this._conn.xmlInput(document.createElement("stream:stream")),void(this._conn.disconnecting||this._conn._doDisconnect())}if(0===a.data.search("<stream:stream ")){if(c=a.data.replace(/<stream:stream (.*[^\/])>/,"<stream:stream $1/>"),b=(new DOMParser).parseFromString(c,"text/xml").documentElement,!this._handleStreamStart(b))return}else c=this._streamWrap(a.data),b=(new DOMParser).parseFromString(c,"text/xml").documentElement;if(!this._check_streamerror(b,Strophe.Status.ERROR))return this._conn.disconnecting&&"presence"===b.firstChild.nodeName&&"unavailable"===b.firstChild.getAttribute("type")?(this._conn.xmlInput(b),void this._conn.rawInput(Strophe.serialize(b))):void this._conn._dataRecv(b,a.data)},_onOpen:function(){Strophe.info("Websocket open");var a=this._buildStream();this._conn.xmlOutput(a.tree());var b=this._removeClosingTag(a);this._conn.rawOutput(b),this.socket.send(b)},_removeClosingTag:function(a){var b=Strophe.serialize(a);return b=b.replace(/<(stream:stream .*[^\/])\/>$/,"<$1>")},_reqToData:function(a){return a},_send:function(){this._conn.flush()},_sendRestart:function(){clearTimeout(this._conn._idleTimeout),this._conn._onIdle.bind(this._conn)()}},function(){var a,b,c,d=function(a,b){return function(){return a.apply(b,arguments)}};Strophe.addConnectionPlugin("muc",{_connection:null,rooms:{},roomNames:[],init:function(a){return this._connection=a,this._muc_handler=null,Strophe.addNamespace("MUC_OWNER",Strophe.NS.MUC+"#owner"),Strophe.addNamespace("MUC_ADMIN",Strophe.NS.MUC+"#admin"),Strophe.addNamespace("MUC_USER",Strophe.NS.MUC+"#user"),Strophe.addNamespace("MUC_ROOMCONF",Strophe.NS.MUC+"#roomconfig")},join:function(a,b,d,e,f,g,h){var i,j;return j=this.test_append_nick(a,b),i=$pres({from:this._connection.jid,to:j}).c("x",{xmlns:Strophe.NS.MUC}),null!=h&&(i=i.c("history",h).up),null!=g&&i.cnode(Strophe.xmlElement("password",[],g)),"undefined"!=typeof extended_presence&&null!==extended_presence&&i.up.cnode(extended_presence),null==this._muc_handler&&(this._muc_handler=this._connection.addHandler(function(b){return function(c){var d,e,f,g,h,i,j,k,l,m;if(d=c.getAttribute("from"),!d)return!0;if(h=d.split("/")[0],!b.rooms[h])return!0;if(a=b.rooms[h],f={},"message"===c.nodeName)f=a._message_handlers;else if("presence"===c.nodeName&&(k=c.getElementsByTagName("x"),k.length>0))for(l=0,m=k.length;m>l;l++)if(i=k[l],j=i.getAttribute("xmlns"),j&&j.match(Strophe.NS.MUC)){f=a._presence_handlers;break}for(g in f)e=f[g],e(c,a)||delete f[g];return!0}}(this))),this.rooms.hasOwnProperty(a)||(this.rooms[a]=new c(this,a,b,g),this.roomNames.push(a)),e&&this.rooms[a].addHandler("presence",e),d&&this.rooms[a].addHandler("message",d),f&&this.rooms[a].addHandler("roster",f),this._connection.send(i)},leave:function(a,b,c,d){var e,f,g,h;return e=this.roomNames.indexOf(a),delete this.rooms[a],e>=0&&(this.roomNames.splice(e,1),0===this.roomNames.length&&(this._connection.deleteHandler(this._muc_handler),this._muc_handler=null)),h=this.test_append_nick(a,b),g=this._connection.getUniqueId(),f=$pres({type:"unavailable",id:g,from:this._connection.jid,to:h}),null!=d&&f.c("status",d),null!=c&&this._connection.addHandler(c,null,"presence",null,g),this._connection.send(f),g},message:function(a,b,c,d,e){var f,g,h,i;return i=this.test_append_nick(a,b),e=e||(null!=b?"chat":"groupchat"),g=this._connection.getUniqueId(),f=$msg({to:i,from:this._connection.jid,type:e,id:g}).c("body",{xmlns:Strophe.NS.CLIENT}).t(c),f.up(),null!=d&&(f.c("html",{xmlns:Strophe.NS.XHTML_IM}).c("body",{xmlns:Strophe.NS.XHTML}).h(d),0===f.node.childNodes.length?(h=f.node.parentNode,f.up().up(),f.node.removeChild(h)):f.up().up()),f.c("x",{xmlns:"jabber:x:event"}).c("composing"),this._connection.send(f),g},groupchat:function(a,b,c){return this.message(a,null,b,c)},invite:function(a,b,c){var d,e;return e=this._connection.getUniqueId(),d=$msg({from:this._connection.jid,to:a,id:e}).c("x",{xmlns:Strophe.NS.MUC_USER}).c("invite",{to:b}),null!=c&&d.c("reason",c),this._connection.send(d),e},directInvite:function(a,b,c,d){var e,f,g;return g=this._connection.getUniqueId(),e={xmlns:"jabber:x:conference",jid:a},null!=c&&(e.reason=c),null!=d&&(e.password=d),f=$msg({from:this._connection.jid,to:b,id:g}).c("x",e),this._connection.send(f),g},queryOccupants:function(a,b,c){var d,e;return d={xmlns:Strophe.NS.DISCO_ITEMS},e=$iq({from:this._connection.jid,to:a,type:"get"}).c("query",d),this._connection.sendIQ(e,b,c)},configure:function(a,b,c){var d,e;return d=$iq({to:a,type:"get"}).c("query",{xmlns:Strophe.NS.MUC_OWNER}),e=d.tree(),this._connection.sendIQ(e,b,c)},cancelConfigure:function(a){var b,c;return b=$iq({to:a,type:"set"}).c("query",{xmlns:Strophe.NS.MUC_OWNER}).c("x",{xmlns:"jabber:x:data",type:"cancel"}),c=b.tree(),this._connection.sendIQ(c)},saveConfiguration:function(a,b,c,d){var e,f,g,h,i;if(f=$iq({to:a,type:"set"}).c("query",{xmlns:Strophe.NS.MUC_OWNER}),"undefined"!=typeof Form&&b instanceof Form)b.type="submit",f.cnode(b.toXML());else for(f.c("x",{xmlns:"jabber:x:data",type:"submit"}),h=0,i=b.length;i>h;h++)e=b[h],f.cnode(e).up();return g=f.tree(),this._connection.sendIQ(g,c,d)},createInstantRoom:function(a,b,c){var d;return d=$iq({to:a,type:"set"}).c("query",{xmlns:Strophe.NS.MUC_OWNER}).c("x",{xmlns:"jabber:x:data",type:"submit"}),this._connection.sendIQ(d.tree(),b,c)},setTopic:function(a,b){var c;return c=$msg({to:a,from:this._connection.jid,type:"groupchat"}).c("subject",{xmlns:"jabber:client"}).t(b),this._connection.send(c.tree())},_modifyPrivilege:function(a,b,c,d,e){var f;return f=$iq({to:a,type:"set"}).c("query",{xmlns:Strophe.NS.MUC_ADMIN}).cnode(b.node),null!=c&&f.c("reason",c),this._connection.sendIQ(f.tree(),d,e)},modifyRole:function(a,b,c,d,e,f){var g;return g=$build("item",{nick:b,role:c}),this._modifyPrivilege(a,g,d,e,f)},kick:function(a,b,c,d,e){return this.modifyRole(a,b,"none",c,d,e)},voice:function(a,b,c,d,e){return this.modifyRole(a,b,"participant",c,d,e)},mute:function(a,b,c,d,e){return this.modifyRole(a,b,"visitor",c,d,e)},op:function(a,b,c,d,e){return this.modifyRole(a,b,"moderator",c,d,e)},deop:function(a,b,c,d,e){return this.modifyRole(a,b,"participant",c,d,e)},modifyAffiliation:function(a,b,c,d,e,f){var g;return g=$build("item",{jid:b,affiliation:c}),this._modifyPrivilege(a,g,d,e,f)},ban:function(a,b,c,d,e){return this.modifyAffiliation(a,b,"outcast",c,d,e)},member:function(a,b,c,d,e){return this.modifyAffiliation(a,b,"member",c,d,e)},revoke:function(a,b,c,d,e){return this.modifyAffiliation(a,b,"none",c,d,e)},owner:function(a,b,c,d,e){return this.modifyAffiliation(a,b,"owner",c,d,e)},admin:function(a,b,c,d,e){return this.modifyAffiliation(a,b,"admin",c,d,e)},changeNick:function(a,b){var c,d;return d=this.test_append_nick(a,b),c=$pres({from:this._connection.jid,to:d,id:this._connection.getUniqueId()}),this._connection.send(c.tree())},setStatus:function(a,b,c,d){var e,f;return f=this.test_append_nick(a,b),e=$pres({from:this._connection.jid,to:f}),null!=c&&e.c("show",c).up(),null!=d&&e.c("status",d),this._connection.send(e.tree())},listRooms:function(a,b,c){var d;return d=$iq({to:a,from:this._connection.jid,type:"get"}).c("query",{xmlns:Strophe.NS.DISCO_ITEMS}),this._connection.sendIQ(d,b,c)},test_append_nick:function(a,b){var c,d;return d=Strophe.escapeNode(Strophe.getNodeFromJid(a)),c=Strophe.getDomainFromJid(a),d+"@"+c+(null!=b?"/"+b:"")}}),c=function(){function b(a,b,c,e){this.client=a,this.name=b,this.nick=c,this.password=e,this._roomRosterHandler=d(this._roomRosterHandler,this),this._addOccupant=d(this._addOccupant,this),this.roster={},this._message_handlers={},this._presence_handlers={},this._roster_handlers={},this._handler_ids=0,a.muc&&(this.client=a.muc),this.name=Strophe.getBareJidFromJid(b),this.addHandler("presence",this._roomRosterHandler)}return b.prototype.join=function(a,b,c){return this.client.join(this.name,this.nick,a,b,c,this.password)},b.prototype.leave=function(a,b){return this.client.leave(this.name,this.nick,a,b),delete this.client.rooms[this.name]},b.prototype.message=function(a,b,c,d){return this.client.message(this.name,a,b,c,d)},b.prototype.groupchat=function(a,b){return this.client.groupchat(this.name,a,b)},b.prototype.invite=function(a,b){return this.client.invite(this.name,a,b)},b.prototype.directInvite=function(a,b){return this.client.directInvite(this.name,a,b,this.password)},b.prototype.configure=function(a){return this.client.configure(this.name,a)},b.prototype.cancelConfigure=function(){return this.client.cancelConfigure(this.name)},b.prototype.saveConfiguration=function(a){return this.client.saveConfiguration(this.name,a)},b.prototype.queryOccupants=function(a,b){return this.client.queryOccupants(this.name,a,b)},b.prototype.setTopic=function(a){return this.client.setTopic(this.name,a)},b.prototype.modifyRole=function(a,b,c,d,e){return this.client.modifyRole(this.name,a,b,c,d,e)},b.prototype.kick=function(a,b,c,d){return this.client.kick(this.name,a,b,c,d)},b.prototype.voice=function(a,b,c,d){return this.client.voice(this.name,a,b,c,d)},b.prototype.mute=function(a,b,c,d){return this.client.mute(this.name,a,b,c,d)},b.prototype.op=function(a,b,c,d){return this.client.op(this.name,a,b,c,d)},b.prototype.deop=function(a,b,c,d){return this.client.deop(this.name,a,b,c,d)},b.prototype.modifyAffiliation=function(a,b,c,d,e){return this.client.modifyAffiliation(this.name,a,b,c,d,e)},b.prototype.ban=function(a,b,c,d){return this.client.ban(this.name,a,b,c,d)},b.prototype.member=function(a,b,c,d){return this.client.member(this.name,a,b,c,d)},b.prototype.revoke=function(a,b,c,d){return this.client.revoke(this.name,a,b,c,d)},b.prototype.owner=function(a,b,c,d){return this.client.owner(this.name,a,b,c,d)},b.prototype.admin=function(a,b,c,d){return this.client.admin(this.name,a,b,c,d)},b.prototype.changeNick=function(a){return this.nick=a,this.client.changeNick(this.name,a)},b.prototype.setStatus=function(a,b){return this.client.setStatus(this.name,this.nick,a,b)},b.prototype.addHandler=function(a,b){var c;switch(c=this._handler_ids++,a){case"presence":this._presence_handlers[c]=b;break;case"message":this._message_handlers[c]=b;break;case"roster":this._roster_handlers[c]=b;break;default:return this._handler_ids--,null}return c},b.prototype.removeHandler=function(a){return delete this._presence_handlers[a],delete this._message_handlers[a],delete this._roster_handlers[a]},b.prototype._addOccupant=function(b){var c;return c=new a(b,this),this.roster[c.nick]=c,c},b.prototype._roomRosterHandler=function(a){var c,d,e,f,g,h;switch(c=b._parsePresence(a),g=c.nick,f=c.newnick||null,c.type){case"error":return;case"unavailable":f&&(c.nick=f,this.roster[g]&&this.roster[f]&&(this.roster[g].update(this.roster[f]),this.roster[f]=this.roster[g]),this.roster[g]&&!this.roster[f]&&(this.roster[f]=this.roster[g].update(c))),delete this.roster[g];break;default:this.roster[g]?this.roster[g].update(c):this._addOccupant(c)}h=this._roster_handlers;for(e in h)d=h[e],d(this.roster,this)||delete this._roster_handlers[e];return!0},b._parsePresence=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;for(e={},b=a.attributes,e.nick=Strophe.getResourceFromJid(b.from.textContent),e.type=(null!=(j=b.type)?j.textContent:void 0)||null,e.states=[],k=a.childNodes,f=0,h=k.length;h>f;f++)switch(c=k[f],c.nodeName){case"status":e.status=c.textContent||null;break;case"show":e.show=c.textContent||null;break;case"x":if(b=c.attributes,(null!=(l=b.xmlns)?l.textContent:void 0)===Strophe.NS.MUC_USER)for(m=c.childNodes,g=0,i=m.length;i>g;g++)switch(d=m[g],d.nodeName){case"item":b=d.attributes,e.affiliation=(null!=(n=b.affiliation)?n.textContent:void 0)||null,e.role=(null!=(o=b.role)?o.textContent:void 0)||null,e.jid=(null!=(p=b.jid)?p.textContent:void 0)||null,e.newnick=(null!=(q=b.nick)?q.textContent:void 0)||null;break;case"status":d.attributes.code&&e.states.push(d.attributes.code.textContent)}}return e},b}(),b=function(){function a(a){this.parse=d(this.parse,this),null!=a&&this.parse(a)}return a.prototype.parse=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;for(g=a.getElementsByTagName("query")[0].childNodes,this.identities=[],this.features=[],this.x=[],h=0,k=g.length;k>h;h++)switch(d=g[h],c=d.attributes,d.nodeName){case"identity":for(f={},i=0,l=c.length;l>i;i++)b=c[i],f[b.name]=b.textContent;this.identities.push(f);break;case"feature":this.features.push(c["var"].textContent);break;case"x":if(c=d.childNodes[0].attributes,"FORM_TYPE"===!c["var"].textContent||"hidden"===!c.type.textContent)break;for(n=d.childNodes,j=0,m=n.length;m>j;j++)e=n[j],e.attributes.type||(c=e.attributes,this.x.push({"var":c["var"].textContent,label:c.label.textContent||"",value:e.firstChild.textContent||""}))}return{identities:this.identities,features:this.features,x:this.x}},a}(),a=function(){function a(a,b){this.room=b,this.update=d(this.update,this),this.admin=d(this.admin,this),this.owner=d(this.owner,this),this.revoke=d(this.revoke,this),this.member=d(this.member,this),this.ban=d(this.ban,this),this.modifyAffiliation=d(this.modifyAffiliation,this),this.deop=d(this.deop,this),this.op=d(this.op,this),this.mute=d(this.mute,this),this.voice=d(this.voice,this),this.kick=d(this.kick,this),this.modifyRole=d(this.modifyRole,this),this.update(a)}return a.prototype.modifyRole=function(a,b,c,d){return this.room.modifyRole(this.nick,a,b,c,d)},a.prototype.kick=function(a,b,c){return this.room.kick(this.nick,a,b,c)},a.prototype.voice=function(a,b,c){return this.room.voice(this.nick,a,b,c)},a.prototype.mute=function(a,b,c){return this.room.mute(this.nick,a,b,c)},a.prototype.op=function(a,b,c){return this.room.op(this.nick,a,b,c)},a.prototype.deop=function(a,b,c){return this.room.deop(this.nick,a,b,c)},a.prototype.modifyAffiliation=function(a,b,c,d){return this.room.modifyAffiliation(this.jid,a,b,c,d)},a.prototype.ban=function(a,b,c){return this.room.ban(this.jid,a,b,c)},a.prototype.member=function(a,b,c){return this.room.member(this.jid,a,b,c)},a.prototype.revoke=function(a,b,c){return this.room.revoke(this.jid,a,b,c)},a.prototype.owner=function(a,b,c){return this.room.owner(this.jid,a,b,c)},a.prototype.admin=function(a,b,c){return this.room.admin(this.jid,a,b,c)},a.prototype.update=function(a){return this.nick=a.nick||null,this.affiliation=a.affiliation||null,this.role=a.role||null,this.jid=a.jid||null,this.status=a.status||null,this.show=a.show||null,this},a}()}.call(this),Strophe.addConnectionPlugin("roster",{init:function(a){this._connection=a,this._callbacks=[],this._callbacks_request=[],items=[],ver=null;var b,c=this,d=a.connect,e=a.attach,f=function(d){if(d==Strophe.Status.ATTACHED||d==Strophe.Status.CONNECTED)try{a.addHandler(c._onReceivePresence.bind(c),null,"presence",null,null,null),a.addHandler(c._onReceiveIQ.bind(c),Strophe.NS.ROSTER,"iq","set",null,null)}catch(e){Strophe.error(e)}null!==b&&b.apply(this,arguments)};a.connect=function(c,e,g,h,i,j){b=g,"undefined"==typeof c&&(c=null),"undefined"==typeof e&&(e=null),g=f,d.apply(a,[c,e,g,h,i,j])},a.attach=function(c,d,g,h,i,j,k){b=h,"undefined"==typeof c&&(c=null),"undefined"==typeof d&&(d=null),"undefined"==typeof g&&(g=null),h=f,e.apply(a,[c,d,g,h,i,j,k])},Strophe.addNamespace("ROSTER_VER","urn:xmpp:features:rosterver"),Strophe.addNamespace("NICK","http://jabber.org/protocol/nick")},supportVersioning:function(){return this._connection.features&&this._connection.features.getElementsByTagName("ver").length>0},get:function(a,b,c){var d={xmlns:Strophe.NS.ROSTER};this.items=[],this.supportVersioning()&&(d.ver=b||"",this.items=c||[]);var e=$iq({type:"get",id:this._connection.getUniqueId("roster")}).c("query",d);return this._connection.sendIQ(e,this._onReceiveRosterSuccess.bind(this,a),this._onReceiveRosterError.bind(this,a))},registerCallback:function(a){this._callbacks.push(a)},registerRequestCallback:function(a){this._callbacks_request.push(a)},findItem:function(a){for(var b=0;b<this.items.length;b++)if(this.items[b]&&this.items[b].jid==a)return this.items[b];return!1},removeItem:function(a){for(var b=0;b<this.items.length;b++)if(this.items[b]&&this.items[b].jid==a)return this.items.splice(b,1),!0;return!1},subscribe:function(a,b,c){var d=$pres({to:a,type:"subscribe"});b&&""!==b&&d.c("status").t(b).up(),c&&""!==c&&d.c("nick",{xmlns:Strophe.NS.NICK}).t(c).up(),this._connection.send(d)},unsubscribe:function(a,b){var c=$pres({to:a,type:"unsubscribe"});b&&""!==b&&c.c("status").t(b),this._connection.send(c)},authorize:function(a,b){var c=$pres({to:a,type:"subscribed"});b&&""!==b&&c.c("status").t(b),this._connection.send(c)},unauthorize:function(a,b){var c=$pres({to:a,type:"unsubscribed"});b&&""!==b&&c.c("status").t(b),this._connection.send(c)},add:function(a,b,c,d){for(var e=$iq({type:"set"}).c("query",{xmlns:Strophe.NS.ROSTER}).c("item",{jid:a,name:b}),f=0;f<c.length;f++)e.c("group").t(c[f]).up();this._connection.sendIQ(e,d,d)},update:function(a,b,c,d){var e=this.findItem(a);if(!e)throw"item not found";for(var f=b||e.name,g=c||e.groups,h=$iq({type:"set"}).c("query",{xmlns:Strophe.NS.ROSTER}).c("item",{jid:e.jid,name:f}),i=0;i<g.length;i++)h.c("group").t(g[i]).up();return this._connection.sendIQ(h,d,d)},remove:function(a,b){
var c=this.findItem(a);if(!c)throw"item not found";var d=$iq({type:"set"}).c("query",{xmlns:Strophe.NS.ROSTER}).c("item",{jid:c.jid,subscription:"remove"});this._connection.sendIQ(d,b,b)},_onReceiveRosterSuccess:function(a,b){this._updateItems(b),this._call_backs(this.items),a(this.items)},_onReceiveRosterError:function(a,b){a(this.items)},_onReceivePresence:function(a){var b=a.getAttribute("from"),c=Strophe.getBareJidFromJid(b),d=this.findItem(c),e=a.getAttribute("type");if(!d)return"subscribe"===e&&this._call_backs_request(c),!0;if("unavailable"==e)delete d.resources[Strophe.getResourceFromJid(b)];else{if(e)return!0;d.resources[Strophe.getResourceFromJid(b)]={show:0!==a.getElementsByTagName("show").length?Strophe.getText(a.getElementsByTagName("show")[0]):"",status:0!==a.getElementsByTagName("status").length?Strophe.getText(a.getElementsByTagName("status")[0]):"",priority:0!==a.getElementsByTagName("priority").length?Strophe.getText(a.getElementsByTagName("priority")[0]):""}}return this._call_backs(this.items,d),!0},_call_backs_request:function(a){for(var b=0;b<this._callbacks_request.length;b++)this._callbacks_request[b](a)},_call_backs:function(a,b){for(var c=0;c<this._callbacks.length;c++)this._callbacks[c](a,b)},_onReceiveIQ:function(a){var b=a.getAttribute("id"),c=a.getAttribute("from");if(c&&""!==c&&c!=this._connection.jid&&c!=Strophe.getBareJidFromJid(this._connection.jid))return!0;var d=$iq({type:"result",id:b,from:this._connection.jid});return this._connection.send(d),this._updateItems(a),!0},_updateItems:function(a){var b=a.getElementsByTagName("query");if(0!==b.length){this.ver=b.item(0).getAttribute("ver");var c=this;Strophe.forEachChild(b.item(0),"item",function(a){c._updateItem(a)})}},_updateItem:function(a){var b=a.getAttribute("jid"),c=a.getAttribute("name"),d=a.getAttribute("subscription"),e=a.getAttribute("ask"),f=[];return Strophe.forEachChild(a,"group",function(a){f.push(Strophe.getText(a))}),"remove"==d?(this.removeItem(b),void this._call_backs(this.items,{jid:b,subscription:"remove"})):(a=this.findItem(b),a?(a.name=c,a.subscription=d,a.ask=e,a.groups=f):(a={name:c,jid:b,subscription:d,ask:e,groups:f,resources:{}},this.items.push(a)),void this._call_backs(this.items,a))}}),Strophe.addConnectionPlugin("disco",{_connection:null,_identities:[],_features:[],_items:[],init:function(a){this._connection=a,this._identities=[],this._features=[],this._items=[],a.addHandler(this._onDiscoInfo.bind(this),Strophe.NS.DISCO_INFO,"iq","get",null,null),a.addHandler(this._onDiscoItems.bind(this),Strophe.NS.DISCO_ITEMS,"iq","get",null,null)},addIdentity:function(a,b,c,d){for(var e=0;e<this._identities.length;e++)if(this._identities[e].category==a&&this._identities[e].type==b&&this._identities[e].name==c&&this._identities[e].lang==d)return!1;return this._identities.push({category:a,type:b,name:c,lang:d}),!0},addFeature:function(a){for(var b=0;b<this._features.length;b++)if(this._features[b]==a)return!1;return this._features.push(a),!0},removeFeature:function(a){for(var b=0;b<this._features.length;b++)if(this._features[b]===a)return this._features.splice(b,1),!0;return!1},addItem:function(a,b,c,d){return c&&!d?!1:(this._items.push({jid:a,name:b,node:c,call_back:d}),!0)},info:function(a,b,c,d,e){var f={xmlns:Strophe.NS.DISCO_INFO};b&&(f.node=b);var g=$iq({from:this._connection.jid,to:a,type:"get"}).c("query",f);this._connection.sendIQ(g,c,d,e)},items:function(a,b,c,d,e){var f={xmlns:Strophe.NS.DISCO_ITEMS};b&&(f.node=b);var g=$iq({from:this._connection.jid,to:a,type:"get"}).c("query",f);this._connection.sendIQ(g,c,d,e)},_buildIQResult:function(a,b){var c=a.getAttribute("id"),d=a.getAttribute("from"),e=$iq({type:"result",id:c});return null!==d&&e.attrs({to:d}),e.c("query",b)},_onDiscoInfo:function(a){var b=a.getElementsByTagName("query")[0].getAttribute("node"),c={xmlns:Strophe.NS.DISCO_INFO};b&&(c.node=b);for(var d=this._buildIQResult(a,c),e=0;e<this._identities.length;e++){var c={category:this._identities[e].category,type:this._identities[e].type};this._identities[e].name&&(c.name=this._identities[e].name),this._identities[e].lang&&(c["xml:lang"]=this._identities[e].lang),d.c("identity",c).up()}for(var e=0;e<this._features.length;e++)d.c("feature",{"var":this._features[e]}).up();return this._connection.send(d.tree()),!0},_onDiscoItems:function(a){var b={xmlns:Strophe.NS.DISCO_ITEMS},c=a.getElementsByTagName("query")[0].getAttribute("node");if(c){b.node=c;for(var d=[],e=0;e<this._items.length;e++)if(this._items[e].node==c){d=this._items[e].call_back(a);break}}else var d=this._items;for(var f=this._buildIQResult(a,b),e=0;e<d.length;e++){var g={jid:d[e].jid};d[e].name&&(g.name=d[e].name),d[e].node&&(g.node=d[e].node),f.c("item",g).up()}return this._connection.send(f.tree()),!0}}),Strophe.addConnectionPlugin("caps",{HASH:"sha-1",node:"http://strophe.im/strophejs/",_ver:"",_connection:null,_knownCapabilities:{},_jidVerIndex:{},init:function(a){if(this._connection=a,Strophe.addNamespace("CAPS","http://jabber.org/protocol/caps"),!this._connection.disco)throw"Caps plugin requires the disco plugin to be installed.";this._connection.disco.addFeature(Strophe.NS.CAPS),this._connection.addHandler(this._delegateCapabilities.bind(this),Strophe.NS.CAPS)},generateCapsAttrs:function(){return{xmlns:Strophe.NS.CAPS,hash:this.HASH,node:this.node,ver:this.generateVer()}},generateVer:function(){if(""!==this._ver)return this._ver;for(var a="",b=this._connection.disco._identities.sort(this._sortIdentities),c=b.length,d=this._connection.disco._features.sort(),e=d.length,f=0;c>f;f++){var g=b[f];a+=g.category+"/"+g.type+"/"+g.lang+"/"+g.name+"<"}for(var f=0;e>f;f++)a+=d[f]+"<";return this._ver=b64_sha1(a),this._ver},getCapabilitiesByJid:function(a){return this._jidVerIndex[a]?this._knownCapabilities[this._jidVerIndex[a]]:null},_delegateCapabilities:function(a){var b=a.getAttribute("from"),c=a.querySelector("c"),d=c.getAttribute("ver"),e=c.getAttribute("node");return this._knownCapabilities[d]?(this._jidVerIndex[b]=d,this._jidVerIndex[b]&&!this._jidVerIndex[b]===d||(this._jidVerIndex[b]=d),!0):this._requestCapabilities(b,e,d)},_requestCapabilities:function(a,b,c){if(a!==this._connection.jid){var d=this._connection.disco.info(a,b+"#"+c);this._connection.addHandler(this._handleDiscoInfoReply.bind(this),Strophe.NS.DISCO_INFO,"iq","result",d,a)}return!0},_handleDiscoInfoReply:function(a){var b=a.querySelector("query"),c=b.getAttribute("node").split("#"),d=c[1],e=a.getAttribute("from");if(this._knownCapabilities[d])this._jidVerIndex[e]&&!this._jidVerIndex[e]===d||(this._jidVerIndex[e]=d);else{var f=b.childNodes,g=f.length;this._knownCapabilities[d]=[];for(var h=0;g>h;h++){var c=f[h];this._knownCapabilities[d].push({name:c.nodeName,attributes:c.attributes})}this._jidVerIndex[e]=d}return!1},_sortIdentities:function(a,b){return a.category>b.category?1:a.category<b.category?-1:a.type>b.type?1:a.type<b.type?-1:a.lang>b.lang?1:a.lang<b.lang?-1:0}});var Mustache=function(){var a=function(){};return a.prototype={otag:"{{",ctag:"}}",pragmas:{},buffer:[],pragmas_implemented:{"IMPLICIT-ITERATOR":!0},context:{},render:function(a,b,c,d){if(d||(this.context=b,this.buffer=[]),!this.includes("",a))return d?a:void this.send(a);a=this.render_pragmas(a);var e=this.render_section(a,b,c);return d?this.render_tags(e,b,c,d):void this.render_tags(e,b,c,d)},send:function(a){""!=a&&this.buffer.push(a)},render_pragmas:function(a){if(!this.includes("%",a))return a;var b=this,c=new RegExp(this.otag+"%([\\w-]+) ?([\\w]+=[\\w]+)?"+this.ctag);return a.replace(c,function(a,c,d){if(!b.pragmas_implemented[c])throw{message:"This implementation of mustache doesn't understand the '"+c+"' pragma"};if(b.pragmas[c]={},d){var e=d.split("=");b.pragmas[c][e[0]]=e[1]}return""})},render_partial:function(a,b,c){if(a=this.trim(a),!c||void 0===c[a])throw{message:"unknown_partial '"+a+"'"};return"object"!=typeof b[a]?this.render(c[a],b,c,!0):this.render(c[a],b[a],c,!0)},render_section:function(a,b,c){if(!this.includes("#",a)&&!this.includes("^",a))return a;var d=this,e=new RegExp(this.otag+"(\\^|\\#)\\s*(.+)\\s*"+this.ctag+"\n*([\\s\\S]+?)"+this.otag+"\\/\\s*\\2\\s*"+this.ctag+"\\s*","mg");return a.replace(e,function(a,e,f,g){var h=d.find(f,b);return"^"==e?!h||d.is_array(h)&&0===h.length?d.render(g,b,c,!0):"":"#"==e?d.is_array(h)?d.map(h,function(a){return d.render(g,d.create_context(a),c,!0)}).join(""):d.is_object(h)?d.render(g,d.create_context(h),c,!0):"function"==typeof h?h.call(b,g,function(a){return d.render(a,b,c,!0)}):h?d.render(g,b,c,!0):"":void 0})},render_tags:function(a,b,c,d){for(var e=this,f=function(){return new RegExp(e.otag+"(=|!|>|\\{|%)?([^\\/#\\^]+?)\\1?"+e.ctag+"+","g")},g=f(),h=function(a,d,h){switch(d){case"!":return"";case"=":return e.set_delimiters(h),g=f(),"";case">":return e.render_partial(h,b,c);case"{":return e.find(h,b);default:return e.escape(e.find(h,b))}},i=a.split("\n"),j=0;j<i.length;j++)i[j]=i[j].replace(g,h,this),d||this.send(i[j]);return d?i.join("\n"):void 0},set_delimiters:function(a){var b=a.split(" ");this.otag=this.escape_regex(b[0]),this.ctag=this.escape_regex(b[1])},escape_regex:function(a){if(!arguments.callee.sRE){var b=["/",".","*","+","?","|","(",")","[","]","{","}","\\"];arguments.callee.sRE=new RegExp("(\\"+b.join("|\\")+")","g")}return a.replace(arguments.callee.sRE,"\\$1")},find:function(a,b){function c(a){return a===!1||0===a||a}a=this.trim(a);var d;return c(b[a])?d=b[a]:c(this.context[a])&&(d=this.context[a]),"function"==typeof d?d.apply(b):void 0!==d?d:""},includes:function(a,b){return-1!=b.indexOf(this.otag+a)},escape:function(a){return a=String(null===a?"":a),a.replace(/&(?!\w+;)|["<>\\]/g,function(a){switch(a){case"&":return"&amp;";case"\\":return"\\\\";case'"':return'"';case"<":return"&lt;";case">":return"&gt;";default:return a}})},create_context:function(a){if(this.is_object(a))return a;var b=".";this.pragmas["IMPLICIT-ITERATOR"]&&(b=this.pragmas["IMPLICIT-ITERATOR"].iterator);var c={};return c[b]=a,c},is_object:function(a){return a&&"object"==typeof a},is_array:function(a){return"[object Array]"===Object.prototype.toString.call(a)},trim:function(a){return a.replace(/^\s*|\s*$/g,"")},map:function(a,b){if("function"==typeof a.map)return a.map(b);for(var c=[],d=a.length,e=0;d>e;e++)c.push(b(a[e]));return c}},{name:"mustache.js",version:"0.3.0",to_html:function(b,c,d,e){var f=new a;return e&&(f.send=e),f.render(b,c,d),e?void 0:f.buffer.join("\n")}}}();!function(a){var b=Array.prototype.slice,c={dict:null,load:function(b){null!==this.dict?a.extend(this.dict,b):this.dict=b},_:function(a){return dict=this.dict,dict&&dict.hasOwnProperty(a)&&(a=dict[a]),args=b.call(arguments),args[0]=a,this.printf.apply(this,args)},printf:function(c,d){return arguments.length<2?c:(d=a.isArray(d)?d:b.call(arguments,1),c.replace(/([^%]|^)%(?:(\d+)\$)?s/g,function(a,b,c){return c?b+d[parseInt(c)-1]:b+d.shift()}).replace(/%%s/g,"%s"))}};a.fn._t=function(b,d){return a(this).html(c._.apply(c,arguments))},a.i18n=c}(jQuery);var dateFormat=function(){var a=/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,b=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,c=/[^-+\dA-Z]/g,d=function(a,b){for(a=String(a),b=b||2;a.length<b;)a="0"+a;return a};return function(e,f,g){var h=dateFormat;if(1!=arguments.length||"[object String]"!=Object.prototype.toString.call(e)||/\d/.test(e)||(f=e,e=void 0),e=e?new Date(e):new Date,isNaN(e))throw SyntaxError("invalid date");f=String(h.masks[f]||f||h.masks["default"]),"UTC:"==f.slice(0,4)&&(f=f.slice(4),g=!0);var i=g?"getUTC":"get",j=e[i+"Date"](),k=e[i+"Day"](),l=e[i+"Month"](),m=e[i+"FullYear"](),n=e[i+"Hours"](),o=e[i+"Minutes"](),p=e[i+"Seconds"](),q=e[i+"Milliseconds"](),r=g?0:e.getTimezoneOffset(),s={d:j,dd:d(j),ddd:h.i18n.dayNames[k],dddd:h.i18n.dayNames[k+7],m:l+1,mm:d(l+1),mmm:h.i18n.monthNames[l],mmmm:h.i18n.monthNames[l+12],yy:String(m).slice(2),yyyy:m,h:n%12||12,hh:d(n%12||12),H:n,HH:d(n),M:o,MM:d(o),s:p,ss:d(p),l:d(q,3),L:d(q>99?Math.round(q/10):q),t:12>n?"a":"p",tt:12>n?"am":"pm",T:12>n?"A":"P",TT:12>n?"AM":"PM",Z:g?"UTC":(String(e).match(b)||[""]).pop().replace(c,""),o:(r>0?"-":"+")+d(100*Math.floor(Math.abs(r)/60)+Math.abs(r)%60,4),S:["th","st","nd","rd"][j%10>3?0:(j%100-j%10!=10)*j%10]};return f.replace(a,function(a){return a in s?s[a]:a.slice(1,a.length-1)})}}();dateFormat.masks={"default":"ddd mmm dd yyyy HH:MM:ss",shortDate:"m/d/yy",mediumDate:"mmm d, yyyy",longDate:"mmmm d, yyyy",fullDate:"dddd, mmmm d, yyyy",shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:ss",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"},dateFormat.i18n={dayNames:["Sun","Mon","Tue","Wed","Thu","Fri","Sat","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],monthNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec","January","February","March","April","May","June","July","August","September","October","November","December"]},Date.prototype.format=function(a,b){return dateFormat(this,a,b)};
\ No newline at end of file
{
"name": "candy",
"version": "2.2.0",
"description": "Multi-user XMPP web client",
"main": "candy.min.js",
"directories": {
"doc": "docs",
"example": "example"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "git://github.com/candy-chat/candy.git"
},
"keywords": [
"xmpp",
"muc",
"multi-user",
"websocket",
"bosh",
"chat"
],
"contributors": [
{
"name": "Michael Weibel",
"email": "michael.weibel@gmail.com"
},
{
"name": "Patrick Stadler",
"email": "patrick.stadler@gmail.com",
"url": "http://pstadler.sh"
}
],
"license": "MIT",
"bugs": {
"url": "https://github.com/candy-chat/candy/issues"
},
"homepage": "http://candy-chat.github.io/candy/",
"devDependencies": {
"grunt": "^0.4.5",
"grunt-clear": "^0.2.1",
"grunt-contrib-clean": "^0.5.0",
"grunt-contrib-compress": "^0.13.0",
"grunt-contrib-concat": "^0.5.1",
"grunt-contrib-cssmin": "^0.14.0",
"grunt-contrib-jshint": "^0.10.0",
"grunt-contrib-uglify": "^0.4.0",
"grunt-contrib-watch": "^0.6.1",
"grunt-coveralls": "^0.3.0",
"grunt-github-releaser": "^0.1.17",
"grunt-mkdir": "^0.1.1",
"grunt-natural-docs": "^0.1.1",
"grunt-notify": "^0.3.0",
"grunt-prompt": "^1.3.0",
"grunt-sync-pkg": "^0.1.2",
"grunt-todo": "~0.4.0",
"intern": "^2.0.1",
"jshint-stylish": "^0.2.0",
"lolex": "^1.2.0",
"sinon": "^1.10.3",
"sinon-chai": "^2.5.0"
}
}
/** File: default.css
* Candy - Chats are not dead yet.
*
* Legal: See the LICENSE file at the top-level directory of this distribution and at https://github.com/candy-chat/candy/blob/master/LICENSE
*/
html, body {
margin: 0;
padding: 0;
font-family: 'Helvetica Neue', Helvetica, sans-serif;
}
#candy {
position: absolute;
top: 0;
bottom: 0;
right: 0;
left: 0;
background-color: #444;
color: #333;
overflow: hidden;
}
a {
color: #333;
text-decoration: none;
}
ul {
list-style: none;
padding: 0;
margin: 0;
}
#chat-tabs {
list-style: none;
margin: 0 200px 0 0;
padding: 0;
overflow: auto;
overflow-y: hidden;
}
#chat-tabs li {
margin: 0;
float: left;
position: relative;
white-space: nowrap;
margin: 3px 0 0 3px;
}
#chat-tabs a {
padding: 4px 50px 4px 10px;
display: inline-block;
color: #ccc;
height: 20px;
background-color: #666;
border-radius: 3px 3px 0 0;
}
#chat-tabs .active a {
background-color: #eee;
color: black;
}
#chat-tabs .transition {
position: absolute;
top: 0;
right: 0;
padding: 0;
width: 30px;
height: 30px;
background: url(img/tab-transitions.png) repeat-y left;
border-radius: 0 3px 0 0;
}
#chat-tabs a.close {
background-color: transparent;
position: absolute;
right: -2px;
top: -3px;
height: auto;
padding: 5px;
margin: 0 5px 0 2px;
color: #999;
}
#chat-tabs .active .transition {
background: url(img/tab-transitions.png) repeat-y -50px;
}
#chat-tabs .close:hover {
color: black;
}
#chat-tabs .unread {
color: white;
background-color: #9b1414;
padding: 2px 4px;
font-weight: bold;
font-size: 10px;
position: absolute;
top: 5px;
right: 22px;
border-radius: 3px;
}
#chat-tabs .offline .label {
text-decoration: line-through;
}
#chat-toolbar {
position: fixed;
bottom: 0;
right: 0;
font-size: 11px;
color: #666;
width: 200px;
height: 24px;
padding-top: 7px;
background-color: #444;
display: none;
border-top: 1px solid black;
box-shadow: 0 1px 0 0 #555 inset;
}
#chat-toolbar li {
width: 16px;
height: 16px;
margin-left: 5px;
float: left;
display: inline-block;
cursor: pointer;
background-position: top left;
background-repeat: no-repeat;
}
#chat-toolbar #emoticons-icon {
background-image: url(img/action/emoticons.png);
}
#chat-toolbar .context {
background-image: url(img/action/settings.png);
display: none;
}
.role-moderator #chat-toolbar .context, .affiliation-owner #chat-toolbar .context {
display: inline-block;
}
#chat-sound-control {
background-image: url(img/action/sound-off.png);
}
#chat-sound-control.checked {
background-image: url(img/action/sound-on.png);
}
#chat-autoscroll-control {
background-image: url(img/action/autoscroll-off.png);
}
#chat-autoscroll-control.checked {
background-image: url(img/action/autoscroll-on.png);
}
#chat-statusmessage-control {
background-image: url(img/action/statusmessage-off.png);
}
#chat-statusmessage-control.checked {
background-image: url(img/action/statusmessage-on.png);
}
#chat-toolbar .usercount {
background-image: url(img/action/usercount.png);
cursor: default;
padding-left: 20px;
width: auto;
margin-right: 5px;
float: right;
}
.usercount span {
display: inline-block;
padding: 1px 3px;
background-color: #666;
font-weight: bold;
border-radius: 3px;
color: #ccc;
}
.room-pane {
display: none;
}
.roster-pane {
position: absolute;
overflow: auto;
top: 0;
right: 0;
bottom: 0;
width: 200px;
margin: 30px 0 31px 0;
background-color: #333;
border-top: 1px solid black;
box-shadow: inset 0 1px 0 0 #555;
}
.roster-pane .user {
cursor: pointer;
padding: 7px 10px;
font-size: 12px;
opacity: 0;
display: none;
color: #ccc;
clear: both;
height: 14px;
border-bottom: 1px solid black;
box-shadow: 0 1px 0 0 #555;
}
.roster-pane .user:hover {
background-color: #222;
}
.roster-pane .user.status-ignored {
cursor: default;
}
.roster-pane .user.me {
font-weight: bold;
cursor: default;
}
.roster-pane .user.me:hover {
background-color: transparent;
}
.roster-pane .label {
float: left;
width: 110px;
overflow: hidden;
white-space: nowrap;
text-shadow: 1px 1px black;
}
.roster-pane li {
width: 16px;
height: 16px;
float: right;
display: block;
margin-left: 3px;
background-repeat: no-repeat;
background-position: center;
}
.roster-pane li.role {
cursor: default;
display: none;
}
.roster-pane li.role-moderator {
background-image: url(img/roster/role-moderator.png);
display: block;
}
.roster-pane li.affiliation-owner {
background-image: url(img/roster/affiliation-owner.png);
display: block;
}
.roster-pane li.ignore {
background-image: url(img/roster/ignore.png);
display: none;
}
.roster-pane .status-ignored li.ignore {
display: block;
}
.roster-pane li.context {
color: #999;
text-align: center;
cursor: pointer;
}
.roster-pane li.context:hover {
background-color: #666;
border-radius: 4px;
}
.roster-pane .me li.context {
display: none;
}
.message-pane-wrapper {
clear: both;
overflow: auto;
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
height: auto;
width: auto;
margin: 30px 200px 31px 0;
background-color: #eee;
font-size: 13px;
padding: 0 5px;
}
.message-pane {
padding-top: 1px;
}
.message-pane li {
cursor: default;
border-bottom: 1px solid #ccc;
box-shadow: 0 1px 0 0 white;
}
.message-pane small {
display: none;
color: #a00;
font-size: 10px;
position: absolute;
background-color: #f7f7f7;
text-align: center;
line-height: 20px;
margin: 4px 0;
padding: 0 5px;
right: 5px;
}
.message-pane li:hover {
background-color: #f7f7f7;
}
.message-pane li:hover small {
display: block;
}
.message-pane li>div {
overflow: auto;
padding: 2px 0 2px 130px;
line-height: 24px;
white-space: -o-pre-wrap; /* Opera */
word-wrap: break-word; /* Internet Explorer 5.5+ */
}
.message-pane li>div p {
margin: 0;
}
.message-pane .label {
font-weight: bold;
white-space: nowrap;
display: block;
margin-left: -130px;
width: 110px;
float: left;
overflow: hidden;
text-align: right;
color: black;
}
.message-pane .label:hover,
.message-pane .label:focus {
color: inherit;
}
.message-pane .spacer {
color: #aaa;
font-weight: bold;
margin-left: -14px;
float: left;
}
.message-pane .subject, .message-pane .subject .label {
color: #a00;
font-weight: bold;
}
.message-pane .adminmessage {
color: #a00;
font-weight: bold;
}
.message-pane .infomessage {
color: #888;
font-style: italic;
}
.message-pane div>a {
color: #a00;
}
.message-pane a:hover {
text-decoration: underline;
}
.message-pane .emoticon {
vertical-align: text-bottom;
height: 15px;
width: 15px;
}
.message-form-wrapper {
position: fixed;
bottom: 0;
left: 0;
right: 0;
width: auto;
margin-right: 200px;
border-top: 1px solid #ccc;
background-color: white;
height: 31px;
}
.message-form {
position: fixed;
bottom: 0;
left: 0;
right: 0;
margin-right: 320px;
padding: 0;
}
.message-form input {
border: 0 none;
padding: 5px 10px;
font-size: 14px;
width: 100%;
display: block;
outline-width: 0;
background-color: white;
}
.message-form input.submit {
cursor: pointer;
background-color: #ccc;
color: #666;
position: fixed;
bottom: 0;
right: 0;
margin: 3px 203px 3px 3px;
padding: 0 10px;
width: auto;
font-size: 12px;
line-height: 12px;
height: 25px;
font-weight: bold;
border-radius: 3px;
}
#tooltip {
position: absolute;
z-index: 10;
display: none;
margin: 13px -18px -3px -2px;
color: #333;
font-size: 11px;
padding: 5px 0;
}
#tooltip div {
background-color: #f7f7f7;
padding: 2px 5px;
zoom: 1;
box-shadow: 0 1px 2px rgba(0, 0, 0, .75);
}
.arrow {
background: url(img/tooltip-arrows.gif) no-repeat left bottom;
height: 5px;
display: block;
position: relative;
z-index: 11;
}
.right-bottom .arrow-bottom {
background-position: right bottom;
}
.arrow-top {
display: none;
background-position: left top;
}
.right-top .arrow-top {
display: block;
background-position: right top;
}
.left-top .arrow-top {
display: block;
}
.left-top .arrow-bottom,
.right-top .arrow-bottom {
display: none;
}
#context-menu {
position: absolute;
z-index: 10;
display: none;
padding: 5px 10px;
margin: 13px -28px -3px -12px;
}
#context-menu ul {
background-color: #f7f7f7;
color: #333;
font-size: 12px;
padding: 2px;
zoom: 1;
box-shadow: 0 1px 2px rgba(0, 0, 0, .75);
}
#context-menu li {
padding: 3px 5px 3px 20px;
line-height: 12px;
cursor: pointer;
margin-bottom: 2px;
background: 1px no-repeat;
white-space: nowrap;
}
#context-menu li:hover {
background-color: #ccc;
}
#context-menu li:last-child {
margin-bottom: 0;
}
#context-menu .private {
background-image: url(img/action/private.png);
}
#context-menu .ignore {
background-image: url(img/action/ignore.png);
}
#context-menu .unignore {
background-image: url(img/action/unignore.png);
}
#context-menu .kick {
background-image: url(img/action/kick.png);
}
#context-menu .ban {
background-image: url(img/action/ban.png);
}
#context-menu .subject {
background-image: url(img/action/subject.png);
}
#context-menu .emoticons {
padding-left: 5px;
width: 85px;
white-space: normal;
}
#context-menu .emoticons:hover {
background-color: transparent;
}
#context-menu .emoticons img {
cursor: pointer;
margin: 3px;
height: 15px;
width: 15px;
}
#chat-modal.modal-common {
background: #eee;
width: 300px;
padding: 20px 5px;
color: #333;
font-size: 16px;
position: fixed;
left: 50%;
top: 50%;
margin-left: -160px;
margin-top: -45px;
text-align: center;
display: none;
z-index: 100;
border: 5px solid #888;
border-radius: 5px;
box-shadow: 0 0 5px black;
}
#chat-modal-overlay {
position: absolute;
left: 0;
top: 0;
right: 0;
bottom: 0;
z-index: 90;
background-image: url(img/overlay.png);
}
#chat-modal.modal-login {
display: block;
margin-top: -100px;
}
#chat-modal-spinner {
display: none;
margin-left: 15px;
}
#chat-modal form {
margin: 15px 0;
}
#chat-modal label, #chat-modal input, #chat-modal select {
display: block;
float: left;
line-height: 26px;
font-size: 16px;
margin: 5px 0;
}
#chat-modal input, #chat-modal select {
padding: 2px;
line-height: 16px;
width: 150px;
}
#chat-modal input[type='text'],
#chat-modal input[type='password'] {
background-color: white;
border: 1px solid #ccc;
padding: 4px;
font-size: 14px;
color: #333;
}
#chat-modal.login-with-domains {
width: 650px;
margin-left: -330px;
}
#chat-modal span.at-symbol {
float: left;
padding: 6px;
font-size: 14px;
}
#chat-modal select[name=domain] {
width: 320px;
}
#chat-modal label {
text-align: right;
padding-right: 1em;
clear: both;
width: 100px;
}
#chat-modal input.button {
float: none;
display: block;
margin: 5px auto;
clear: both;
position: relative;
top: 10px;
width: 200px;
}
#chat-modal .close {
position: absolute;
right: 0;
display: none;
padding: 0 5px;
margin: -17px 3px 0 0;
color: #999;
border-radius: 3px;
}
#chat-modal .close:hover {
color: #333;
background-color: #aaa;
}
/**
* Bootstrap Responsive Design styles
* It add styles to every element so we need to override some to keep the look of Candy
*/
*, :after, :before {
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
box-sizing: content-box;
}
label {
font-weight: normal;
}
.label {
font-size: 100%;
font-weight: normal;
text-align: left;
line-height: inherit;
padding: 0;
color: inherit;
}
.close {
font-size: inherit;
line-height: inherit;
opacity: 1;
text-shadow: none;
}
#mobile-roster-icon {
display: none;
}
/*
* Responsive specific styles for devices under 600px
* Mainly changing the size of room, roster and message panes when opened / closed
*/
@media (max-width: 599px) {
.room-pane .message-pane-wrapper {
margin-right: 50px;
}
.room-pane:not(.open) .roster-pane {
right: -150px;
}
.roster-pane {
z-index: 10;
}
.message-pane li>div {
padding-left: 10px;
}
.message-pane li>div.infomessage {
padding-left: 30px;
}
.message-pane .label {
width: auto;
margin-left: 0;
}
.message-pane .spacer {
margin: 0 5px;
}
.room-pane:not(.open) .message-form-wrapper {
margin-right: 50px;
}
.room-pane:not(.open) .message-form {
margin-right: 150px;
}
.room-pane:not(.open) .message-form input.submit {
margin-right: 53px;
}
#mobile-roster-icon {
position: fixed;
top: 0;
right: 0;
}
/*
* These are for the hamburger icon. The box-shadow adds the extra lines
*/
.box-shadow-icon {
position: relative;
display: block;
width: 50px;
height: 30px;
cursor: pointer;
}
.box-shadow-icon:before {
content: "";
position: absolute;
left: 15px;
top: 9px;
width: 20px;
height: 2px;
background: #aaa;
box-shadow: 0 5px 0 0 #aaa, 0 10px 0 0 #aaa;
}
.box-shadow-icon:hover {
background: #222;
}
}
Simple Smileys is a set of 49 clean, free as in freedom, Public Domain smileys.
For more packages or older versions, visit http://simplesmileys.org
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Candy - Chats are not dead yet</title>
<link rel="shortcut icon" href="candy/res/img/favicon.png" type="image/gif" />
<link rel="stylesheet" type="text/css" href="candy/libs.min.css" />
<link rel="stylesheet" type="text/css" href="candy/res/default.css" />
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="candy/libs.min.js"></script>
<script src="candy/candy.min.js"></script>
<script>
$( document ).ready( function()
{
var config = {};
$.getJSON( 'config.json', function ( config )
{
Candy.init( config.endpoint, config);
Candy.Core.connect();
});
});
</script>
</head>
<body>
<div id="candy"></div>
</body>
</html>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<plugin>
<class>org.igniterealtime.openfire.plugin.candy.CandyPlugin</class>
<name>Candy</name>
<description>Adds the (third-party) Candy web client to Openfire.</description>
<author>Guus der Kinderen</author>
<version>2.2.0 Release 1</version>
<date>06/19/2017</date>
<minServerVersion>4.1.5</minServerVersion>
<adminconsole>
<tab id="tab-server">
<sidebar id="webclients" name="${admin.sidebar.webclients.name}" description="${admin.sidebar.webclients.description}">
<item id="candy-config" name="${admin.sidebar.webclients.item.candy.name}" description="${admin.sidebar.webclients.item.candy.description}" url="candy-config.jsp"/>
</sidebar>
</tab>
</adminconsole>
</plugin>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>plugins</artifactId>
<groupId>org.igniterealtime.openfire</groupId>
<version>4.2.0-SNAPSHOT</version>
</parent>
<groupId>org.igniterealtime.openfire.plugins</groupId>
<artifactId>candy</artifactId>
<name>Candy Webchat Plugin</name>
<version>2.2.0-release-1</version>
<build>
<sourceDirectory>src/java</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
</plugin>
<!-- Compiles the Openfire Admin Console JSP pages. -->
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-jspc-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<artifactId>json</artifactId>
<groupId>org.json</groupId>
<version>20160810</version>
</dependency>
</dependencies>
</project>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Candy Plugin Readme</title>
<style type="text/css">
BODY {
font-size : 100%;
}
BODY, TD, TH {
font-family : tahoma, verdana, arial, helvetica, sans-serif;
font-size : 0.8em;
}
H3 {
font-size : 10pt;
font-style: italic;
color: #004444;
}
H2 {
font-size : 10pt;
font-weight : bold;
}
A:hover {
text-decoration : none;
}
H1 {
font-family : tahoma, arial, helvetica, sans-serif;
font-size : 1.4em;
font-weight: bold;
border-bottom : 1px #ccc solid;
padding-bottom : 2px;
}
TT {
font-family : courier new;
font-weight : bold;
color : #060;
}
PRE {
font-family : courier new;
font-size : 100%;
}
#datatable TH {
color : #fff;
background-color : #2A448C;
text-align : left;
}
#datatable TD {
background-color : #FAF6EF;
}
#datatable .name {
background-color : #DCE2F5;
}
</style>
</head>
<body>
<h1>
Candy Plugin Readme
</h1>
<h2>Overview</h2>
<p>
The Candy plugin adds the web client to Openfire. Candy is a third party web client implementation. It's project
home page is <a href="https://candy-chat.github.io/candy/">https://candy-chat.github.io/candy/</a>
</p>
<h2>Installation</h2>
<p>
Copy candy.jar into the plugins directory of your Openfire installation. The plugin will then be automatically
deployed. To upgrade to a new version, copy the new candy.jar file over the existing file.
</p>
<h2>Configuration</h2>
<p>
The plugin is configured via the Openfire Admin Console. After installation, a new Admin Console page is available.
The page can be found under the "Server" tab and "Web Clients" sub-tab. The name of the page is "Candy".
</p>
<h3>Important! Before the plugin can be used, it must be configured! </h3>
<p>
When logged in, users of the Candy web chat will automatically join one or more pre-defined Group Chat Rooms. When
installing the Candy plugin, you must configure what rooms the Candy users will join. This is done in two steps:
</p>
<ol>
<li>
Create the Group Chat Room(s) that you wish to use. If desired, existing rooms can be used. In Openfire, Group
Chat Rooms are managed in the Admin Console, via the tab "Group Chat".
</li>
<li>
In the "Candy" Admin Console configuration page ('Server' > 'Web Clients' > 'Candy'), add the names of the Group
Chat Rooms to the list of Auto-join rooms.
</li>
</ol>
<p>
Candy depends on HTTP binding, and will not work if the HTTP binding service of Openfire is disabled.
</p>
<h2>Using the Plugin</h2>
<p>
When properly configured, the Candy web client will be made available on the same ports as the HTTP binding
interface. The exact URLs for your instance of Openfire are displayed on the Candy Configuration Admin Console page.
By default, these URLs are:
</p>
<ul>
<li><tt>http://&lt;your-server-name&gt;:7070/candy/</tt> (unencrypted HTTP)</li>
<li><tt>https://&lt;your-server-name&gt;:7443/candy/</tt> (encrypted HTTPS)</li>
</ul>
<p>
After opening one of these addresses in a browser, the user is presented with a login form. After logging in, the
user will automatically join all of the configured auto-join rooms.
</p>
</body>
</html>
admin.sidebar.webclients.name=Web Clients
admin.sidebar.webclients.description=Manage Web Clients
admin.sidebar.webclients.item.candy.name=Candy
admin.sidebar.webclients.item.candy.description=Manage Candy Webchat
global.click_edit=Click to edit...
global.save_settings=Save Settings
admin.error=Internal server error
global.csrf.failed=CSRF Error: No changes made, you'll need to retry.
warning.httpbinding.disabled=The HTTP Binding service appears to be disabled! Candy will not work without this service. {0}Please enable the HTTP Binding service here!{1}
warning.nonexisting.room=This appears to be a non-existing room. {0}Please create it here!{1}
warning.autojoin.empty=The list of auto-join rooms is empty! Most Candy users will see a black, empty screen. Please configure at least one auto-join room in the form below.
properties.save.success=Properties successfully saved.
config.page.title=Candy Web Client Configuration
config.page.description=This page allows you to configure the Candy web chat application.
config.page.link.unsecure=End-users can use Candy (using an unencrypted HTTP connection) by opening the following address in a browser: <a href="{0}">{0}</a>.
config.page.link.secure=Candy is available via an encrypted HTTPS address at: <a href="{0}">{0}</a>.
config.page.debug.header=Webclient Debug Setting
config.page.debug.enabled=Enabled
config.page.debug.enabled_info=Debug information will be printed to the Javascript console of the client browser.
config.page.debug.disabled=Disabled
config.page.debug.disabled_info=Client-sided debug information will not be generated.
config.page.autojoin.header=Auto-join Rooms
config.page.autojoin.description=When using the Candy web chat interface, a user will automatically join the group chat rooms listed in the following table. Use the form below to change the list of rooms that are automatically joined.
config.page.autojoin.header.room=Room
config.page.autojoin.header.description=Description
config.page.autojoin.header.users=Users
config.page.autojoin.header.delete=Delete
config.page.autojoin.no-rooms=<i>(no rooms)</i>
config.page.autojoin.label.newroom=Room Name (or JID)
config.page.autojoin.label.addroom=Add Room
config.page.autojoin.button.delete=Click to delete...
config.page.autojoin.addroom.success=Successfully added room to the auto-join list.
config.page.autojoin.deleteroom.success=Successfully removed room from the auto-join list.
config.page.language.header=Candy Language
config.page.language.description=The selection made here affects the language of the Candy user interface.
\ No newline at end of file
/*
* Copyright (C) 2017 Ignite Realtime Foundation. All rights reserved.
*
* Licensed 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.igniterealtime.openfire.plugin.candy;
import org.apache.tomcat.InstanceManager;
import org.apache.tomcat.SimpleInstanceManager;
import org.eclipse.jetty.apache.jsp.JettyJasperInitializer;
import org.eclipse.jetty.plus.annotation.ContainerInitializer;
import org.eclipse.jetty.webapp.WebAppContext;
import org.jivesoftware.admin.AuthCheckFilter;
import org.jivesoftware.openfire.container.Plugin;
import org.jivesoftware.openfire.container.PluginManager;
import org.jivesoftware.openfire.http.HttpBindManager;
import org.jivesoftware.util.JiveGlobals;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
import java.util.*;
/**
* An Openfire plugin that integrates the Candy web client.
*
* @author Guus der Kinderen, guus.der.kinderen@gmail.com
*/
public class CandyPlugin implements Plugin
{
private static final Logger Log = LoggerFactory.getLogger( CandyPlugin.class );
private final String[] publicResources = new String[]
{
"candy/candy",
"candy/index.html",
"candy/config.json"
};
private WebAppContext context = null;
@Override
public void initializePlugin( PluginManager manager, File pluginDirectory )
{
for ( final String publicResource : publicResources )
{
AuthCheckFilter.addExclude( publicResource );
}
// Add the Webchat sources to the same context as the one that's providing the BOSH interface.
context = new WebAppContext( null, pluginDirectory.getPath() + File.separator + "classes", "/candy" );
context.setClassLoader( this.getClass().getClassLoader() );
// Ensure the JSP engine is initialized correctly (in order to be able to cope with Tomcat/Jasper precompiled JSPs).
final List<ContainerInitializer> initializers = new ArrayList<>();
initializers.add( new ContainerInitializer( new JettyJasperInitializer(), null ) );
context.setAttribute("org.eclipse.jetty.containerInitializers", initializers);
context.setAttribute( InstanceManager.class.getName(), new SimpleInstanceManager());
HttpBindManager.getInstance().addJettyHandler( context );
}
@Override
public void destroyPlugin()
{
if ( context != null )
{
HttpBindManager.getInstance().removeJettyHandler( context );
context.destroy();
context = null;
}
for ( final String publicResource : publicResources )
{
AuthCheckFilter.removeExclude( publicResource );
}
}
public static Language getLanguage()
{
final String candyLanguage = JiveGlobals.getProperty( "candy.config.language" );
if ( candyLanguage != null )
{
final Language result = Language.byCandyCode( candyLanguage );
if ( result != null )
{
return result;
}
else
{
Log.warn( "The value '{}' of property 'candy.config.language' cannot be mapped to a language code that is understood by Candy.", candyLanguage );
}
}
final Language result = Language.byLocale( JiveGlobals.getLocale() );
if ( result != null )
{
return result;
}
else
{
Log.warn( "The Openfire locale '{}' cannot be mapped to a language code that is understood by Candy.", JiveGlobals.getLocale() );
}
return Language.English;
}
}
/*
* Copyright (C) 2017 Ignite Realtime Foundation. All rights reserved.
*
* Licensed 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.igniterealtime.openfire.plugin.candy;
import org.jivesoftware.util.JiveGlobals;
import org.jivesoftware.util.StringUtils;
import org.json.JSONArray;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.xmpp.packet.JID;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.Writer;
import java.util.HashSet;
import java.util.Set;
/**
* Generates a JSON object that contains configuration for the Candy web application.
*
* @author Guus der Kinderen, guus@gmail.com
*/
public class ConfigServlet extends HttpServlet
{
private static final Logger Log = LoggerFactory.getLogger( ConfigServlet.class );
public void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException
{
Log.trace( "Processing doGet()" );
final String endpoint = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + "/http-bind/";
final boolean debug = JiveGlobals.getBooleanProperty( "candy.config.debug", false );
final Set<JID> autojoinRooms = new HashSet<>();
for ( final String autojoinRoom : JiveGlobals.getProperties( "candy.config.autojoin" ) )
{
try
{
autojoinRooms.add( new JID( autojoinRoom ) );
}
catch ( IllegalArgumentException ex )
{
Log.error( "Unable to add this value as an auto-join room to the configuration of Candy: ", autojoinRoom, ex );
}
}
// Generating a resource string that's sufficiently random for security purposes.
final String resource = "openfire-candy-" + StringUtils.randomString( 8 );
// The language of the Candy UI.
final Language language = CandyPlugin.getLanguage();
final JSONObject config = new JSONObject();
config.put( "endpoint", endpoint );
final JSONObject core = new JSONObject();
config.put( "core", core );
core.put( "debug", debug );
if ( autojoinRooms.isEmpty() )
{
core.put( "autojoin", true );
}
else
{
final JSONArray roomlist = new JSONArray();
for ( final JID autojoinRoom : autojoinRooms )
{
roomlist.put( autojoinRoom.toBareJID() );
}
core.put( "autojoin", roomlist );
}
core.put( "resource", resource );
final JSONObject view = new JSONObject();
config.put( "view", view );
view.put( "language", language.getCode() );
view.put( "assets", "candy/res/" );
try ( final Writer writer = response.getWriter() )
{
writer.write( config.toString( 2 ) );
writer.flush();
}
}
}
\ No newline at end of file
/*
* Copyright (C) 2017 Ignite Realtime Foundation. All rights reserved.
*
* Licensed 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.igniterealtime.openfire.plugin.candy;
import java.util.Locale;
/**
* Languages as defined by Candy.
*
* @author Guus der Kinderen, guus.der.kinderen@gmail.com
*/
public enum Language
{
English ("en"),
Catalan ("ca"),
Chinese ("cn"),
Czech ("cs"),
Dutch ("nl"),
French ("fr"),
German ("de"),
Hebrew ("he"),
Italian ("it"),
Japanese ("ja"),
Polish ("pl"),
Portuguese ("pt"),
BrazilianPortuguese ("pt_br"),
Russian ("ru"),
Spanish ("es"),
Swedish ("sv");
private final String code;
Language( String code )
{
this.code = code;
}
public String getCode()
{
return code;
}
public static Language byCandyCode( final String candyCode )
{
for ( final Language language : values() )
{
if ( language.getCode().equalsIgnoreCase( candyCode ) )
{
return language;
}
}
return null;
}
public static Language byLocale( final Locale locale )
{
for ( final Language language : values() )
{
if ( locale.getLanguage().equals( new Locale( language.getCode() ).getLanguage() ) )
{
return language;
}
}
return null;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
</web-app>
\ No newline at end of file
<!--
- Copyright (C) 2017 Ignite Realtime Foundation. All rights reserved.
-
- Licensed 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.
-->
<%@ page errorPage="error.jsp" %>
<%@ page import="org.jivesoftware.openfire.XMPPServer" %>
<%@ page import="org.jivesoftware.util.CookieUtils" %>
<%@ page import="org.jivesoftware.util.ParamUtils" %>
<%@ page import="org.jivesoftware.util.StringUtils" %>
<%@ page import="org.jivesoftware.util.JiveGlobals" %>
<%@ page import="java.util.List" %>
<%@ page import="org.xmpp.packet.JID" %>
<%@ page import="org.jivesoftware.openfire.muc.MultiUserChatService" %>
<%@ page import="org.jivesoftware.openfire.muc.MUCRoom" %>
<%@ page import="java.net.URLEncoder" %>
<%@ page import="java.net.URLDecoder" %>
<%@ page import="org.jivesoftware.openfire.http.HttpBindManager" %>
<%@ page import="org.igniterealtime.openfire.plugin.candy.Language" %>
<%@ page import="org.igniterealtime.openfire.plugin.candy.CandyPlugin" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<jsp:useBean id="webManager" class="org.jivesoftware.util.WebManager" />
<% webManager.init(request, response, session, application, out ); %>
<%
String deleteRoom = request.getParameter( "deleteRoom" );
if ( deleteRoom != null )
{
deleteRoom = URLDecoder.decode( deleteRoom, "UTF-8" );
}
String newRoom = request.getParameter( "newRoom" );
if ( newRoom != null )
{
newRoom = URLDecoder.decode( newRoom, "UTF-8" );
}
boolean update = request.getParameter("update") != null;
String success = request.getParameter("success");
String error = null;
final Cookie csrfCookie = CookieUtils.getCookie( request, "csrf");
String csrfParam = ParamUtils.getParameter( request, "csrf");
if (update || deleteRoom != null || newRoom != null) {
if (csrfCookie == null || csrfParam == null || !csrfCookie.getValue().equals(csrfParam)) {
update = false;
deleteRoom = null;
newRoom = null;
error = "csrf";
}
}
csrfParam = StringUtils.randomString( 15 );
CookieUtils.setCookie(request, response, "csrf", csrfParam, -1);
pageContext.setAttribute("csrf", csrfParam);
HttpBindManager httpBindManager = HttpBindManager.getInstance();
if ( error == null )
{
if ( deleteRoom != null )
{
for ( final String propertyName : JiveGlobals.getPropertyNames( "candy.config.autojoin" ) )
{
final String propertyValue = JiveGlobals.getProperty( propertyName );
if ( deleteRoom.equals( propertyValue ) )
{
JiveGlobals.deleteProperty( propertyName );
response.sendRedirect("candy-config.jsp?success=deleteRoom");
return;
}
}
}
if ( newRoom != null )
{
// When just the room name was provided, append with the service domain.
if ( !newRoom.contains( "@" ) )
{
final String mucDomain = XMPPServer.getInstance().getMultiUserChatManager().getMultiUserChatServices().get( 0 ).getServiceDomain();
newRoom = newRoom + "@" + mucDomain;
}
JiveGlobals.setProperty( "candy.config.autojoin." + StringUtils.randomString( 10 ), new JID( newRoom ).toBareJID() );
response.sendRedirect("candy-config.jsp?success=addRoom");
return;
}
if ( update )
{
if ( ParamUtils.getParameter( request, "debugEnabled" ) != null )
{
JiveGlobals.setProperty( "candy.config.debug", Boolean.toString( ParamUtils.getBooleanParameter( request, "debugEnabled" ) ) );
}
if ( ParamUtils.getParameter( request, "language" ) != null )
{
JiveGlobals.setProperty( "candy.config.language", URLEncoder.encode( ParamUtils.getParameter( request, "language" ) , "UTF-8" ) );
}
response.sendRedirect("candy-config.jsp?success=update");
return;
}
}
// Read all updated values from the properties.
final boolean debugEnabled = JiveGlobals.getBooleanProperty( "candy.config.debug", false );
final List<String> autojoinRooms = JiveGlobals.getProperties( "candy.config.autojoin" );
%>
<html>
<head>
<title><fmt:message key="config.page.title"/></title>
<meta name="pageID" content="candy-config"/>
</head>
<body>
<% if ( autojoinRooms.isEmpty() ) { %>
<div class="jive-warning">
<table cellpadding="0" cellspacing="0" border="0">
<tbody>
<tr><td class="jive-icon"><img src="images/warning-16x16.gif" width="16" height="16" border="0" alt=""></td>
<td class="jive-icon-label">
<fmt:message key="warning.autojoin.empty"/>
</td></tr>
</tbody>
</table>
</div><br>
<% } %>
<% if ( !httpBindManager.isHttpBindEnabled() ) { %>
<div class="jive-warning">
<table cellpadding="0" cellspacing="0" border="0">
<tbody>
<tr><td class="jive-icon"><img src="images/warning-16x16.gif" width="16" height="16" border="0" alt=""></td>
<td class="jive-icon-label">
<fmt:message key="warning.httpbinding.disabled">
<fmt:param value="<a href=\"../../http-bind.jsp\">"/>
<fmt:param value="</a>"/>
</fmt:message>
</td></tr>
</tbody>
</table>
</div><br>
<% } %>
<% if (error != null) { %>
<div class="jive-error">
<table cellpadding="0" cellspacing="0" border="0">
<tbody>
<tr><td class="jive-icon"><img src="images/error-16x16.gif" width="16" height="16" border="0" alt=""></td>
<td class="jive-icon-label">
<% if ( "csrf".equalsIgnoreCase( error ) ) { %>
<fmt:message key="global.csrf.failed" />
<% } else { %>
<fmt:message key="admin.error" />: <c:out value="error"></c:out>
<% } %>
</td></tr>
</tbody>
</table>
</div><br>
<% } %>
<% if (success != null) { %>
<div class="jive-success">
<table cellpadding="0" cellspacing="0" border="0">
<tbody>
<tr><td class="jive-icon"><img src="images/success-16x16.gif" width="16" height="16" border="0" alt=""></td>
<td class="jive-icon-label">
<% if ( "addRoom".equalsIgnoreCase( success ) ) { %>
<fmt:message key="config.page.autojoin.addroom.success" />
<% } else if ( "deleteRoom".equalsIgnoreCase( success ) ) { %>
<fmt:message key="config.page.autojoin.deleteroom.success" />
<% } else { %>
<fmt:message key="properties.save.success" />
<% } %>
</td></tr>
</tbody>
</table>
</div><br>
<% } %>
<p>
<fmt:message key="config.page.description">
<fmt:param value=""/>
</fmt:message>
<% if ( httpBindManager.isHttpBindActive() ) {
final String unsecuredAddress = "http://" + XMPPServer.getInstance().getServerInfo().getHostname() + ":" + httpBindManager.getHttpBindUnsecurePort() + "/candy/";
%>
<fmt:message key="config.page.link.unsecure">
<fmt:param value="<%=unsecuredAddress%>"/>
</fmt:message>
<% } %>
<% if ( httpBindManager.isHttpsBindActive() ) {
final String securedAddress = "https://" + XMPPServer.getInstance().getServerInfo().getHostname() + ":" + httpBindManager.getHttpBindSecurePort() + "/candy/";
%>
<fmt:message key="config.page.link.secure">
<fmt:param value="<%=securedAddress%>"/>
</fmt:message>
<% } %>
</p>
<div class="jive-contentBoxHeader"><fmt:message key="config.page.autojoin.header" /></div>
<div class="jive-contentBox">
<p><fmt:message key="config.page.autojoin.description" /></p>
<form action="candy-config.jsp">
<input type="hidden" name="csrf" value="${csrf}">
<table class="jive-table" cellpadding="3" cellspacing="0" border="0">
<thead>
<tr>
<th width="1%">&nbsp;</th>
<th width="35%" nowrap><fmt:message key="config.page.autojoin.header.room" /></th>
<th width="55%" nowrap><fmt:message key="config.page.autojoin.header.description" /></th>
<th width="1%" nowrap><fmt:message key="config.page.autojoin.header.users" /></th>
<th width="1%" nowrap><fmt:message key="config.page.autojoin.header.delete" /></th>
</tr>
</thead>
<tbody>
<%
int i=0;
if ( autojoinRooms.isEmpty() ) {
%>
<tr>
<td align="center" colspan="5"><fmt:message key="config.page.autojoin.no-rooms" /></td>
</tr>
<%
} else {
for ( final String autojoinRoom : autojoinRooms )
{
i++;
final JID roomJID = new JID( autojoinRoom );
final MultiUserChatService service = XMPPServer.getInstance().getMultiUserChatManager().getMultiUserChatService( roomJID );
MUCRoom room = null;
if ( service != null )
{
room = service.getChatRoom( roomJID.getNode() );
}
%>
<tr class="jive-<%= i%2==0 ? "even":"odd" %>">
<%
if ( room != null ) {
%>
<td></td>
<td>
<a href="../../muc-room-edit-form.jsp?roomJID=<%= URLEncoder.encode(room.getJID().toBareJID(), "UTF-8") %>"title="<fmt:message key="global.click_edit" />">
<%= StringUtils.escapeHTMLTags(room.getName()) %>
</a>
</td>
<td>
<% if (!"".equals(room.getDescription())) { %>
<%= StringUtils.escapeHTMLTags(room.getDescription()) %>
<% }
else { %>
&nbsp;
<% } %>
</td>
<td style="text-align: center;"><nobr><%= room.getOccupantsCount() %> / <%= room.getMaxUsers() %></nobr></td>
<td style="text-align: center;"><a href="candy-config.jsp?deleteRoom=<%= URLEncoder.encode(room.getJID().toBareJID(), "UTF-8") %>&csrf=${csrf}" title="<fmt:message key="config.page.autojoin.button.delete" />"><img src="images/delete-16x16.gif" width="16" height="16" border="0" alt=""></a></td>
<% } else { %>
<td></td>
<td colspan="3">
<img src="images/warning-16x16.gif" width="16" height="16" border="0" alt="">&nbsp;<%=StringUtils.escapeHTMLTags(autojoinRoom)%>
<i><fmt:message key="warning.nonexisting.room">
<fmt:param value="<a href=\"../../muc-room-edit-form.jsp?create=true\">"/>
<fmt:param value="</a>"/>
</fmt:message>
</i>
</td>
<td style="text-align: center;"><a href="candy-config.jsp?deleteRoom=<%= URLEncoder.encode(autojoinRoom, "UTF-8") %>&csrf=${csrf}" title="<fmt:message key="config.page.autojoin.button.delete" />"><img src="images/delete-16x16.gif" width="16" height="16" border="0" alt=""></a></td>
<% } %>
</tr>
<%
}
}
%>
</tbody>
</table>
<br>
<table cellpadding="3" cellspacing="1" border="0">
<tbody>
<tr>
<td nowrap="" width="1%">
<label for="newRoom"><fmt:message key="config.page.autojoin.label.newroom" /></label>
</td>
<td>
<input type="text" size="40" name="newRoom" id="newRoom">&nbsp;<input type="submit" name="update" value="<fmt:message key="config.page.autojoin.label.addroom" />">
</td>
</tr>
</tbody>
</table>
</form>
</div>
<br>
<div class="jive-contentBoxHeader"><fmt:message key="config.page.language.header" /></div>
<div class="jive-contentBox">
<p><fmt:message key="config.page.language.description" /></p>
<form action="candy-config.jsp">
<input type="hidden" name="csrf" value="${csrf}">
<table cellpadding="3" cellspacing="0" border="0">
<tbody>
<%
final Language currentLanguage = CandyPlugin.getLanguage();
for ( final Language language : Language.values() )
{
%>
<tr valign="top">
<td width="1%" nowrap>
<input type="radio" name="language" value="<%=language.getCode()%>" id="<%=language.getCode()%>" <%= (currentLanguage == language ? "checked" : "") %>>
</td>
<td width="99%">
<label for="<%=language.getCode()%>">
<%= language %>
</label>
</td>
</tr>
<%
}
%>
</tbody>
</table>
<br>
<input type="submit" name="update" value="<fmt:message key="global.save_settings" />">
</form>
</div>
<br>
<div class="jive-contentBoxHeader"><fmt:message key="config.page.debug.header" /></div>
<div class="jive-contentBox">
<form action="candy-config.jsp">
<input type="hidden" name="csrf" value="${csrf}">
<table cellpadding="3" cellspacing="0" border="0">
<tbody>
<tr valign="top">
<td width="1%" nowrap>
<input type="radio" name="debugEnabled" value="true" id="rb01" <%= (debugEnabled ? "checked" : "") %>>
</td>
<td width="99%">
<label for="rb01">
<b><fmt:message key="config.page.debug.enabled" /></b> - <fmt:message key="config.page.debug.enabled_info" />
</label>
</td>
</tr>
<tr valign="top">
<td width="1%" nowrap>
<input type="radio" name="debugEnabled" value="false" id="rb02" <%= (!debugEnabled ? "checked" : "") %>>
</td>
<td width="99%">
<label for="rb02">
<b><fmt:message key="config.page.debug.disabled" /></b> - <fmt:message key="config.page.debug.disabled_info" />
</label>
</td>
</tr>
</tbody>
</table>
<br>
<input type="submit" name="update" value="<fmt:message key="global.save_settings" />">
</form>
</div>
</body>
</html>
......@@ -13,6 +13,7 @@
<module>bookmarks</module>
<module>broadcast</module>
<module>callbackOnOffline</module>
<module>candy</module>
<module>clientControl</module>
<!-- Needs coherence.jar -->
<!--<module>clustering</module>-->
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment