| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 | 
							- /* global config */
 - 
 - /**
 -  * Defines some utility methods that are used before the other JS files are
 -  * loaded.
 -  */
 - 
 - 
 - /**
 -  * Builds and returns the room name.
 -  */
 - function getRoomName () {
 -     var path = window.location.pathname;
 -     var roomName;
 - 
 -     // determinde the room node from the url
 -     // TODO: just the roomnode or the whole bare jid?
 -     if (config.getroomnode && typeof config.getroomnode === 'function') {
 -         // custom function might be responsible for doing the pushstate
 -         roomName = config.getroomnode(path);
 -     } else {
 -         /* fall back to default strategy
 -          * this is making assumptions about how the URL->room mapping happens.
 -          * It currently assumes deployment at root, with a rewrite like the
 -          * following one (for nginx):
 -          location ~ ^/([a-zA-Z0-9]+)$ {
 -          rewrite ^/(.*)$ / break;
 -          }
 -         */
 -         if (path.length > 1) {
 -             roomName = path.substr(1).toLowerCase();
 -         }
 -     }
 - 
 -     return roomName;
 - }
 - 
 - /**
 -  * Parses the parameters from the URL and returns them as a JS object.
 -  * @param source {string} values - "hash"/"search" if "search" the parameters
 -  * will parsed from location.search otherwise from location.hash
 -  * @param dontParse if false or undefined some transformations
 -  * (for parsing the value as JSON) are going to be executed
 -  */
 - function getConfigParamsFromUrl(source, dontParse) {
 -     var paramStr = (source === "search")? location.search : location.hash;
 -     if (!paramStr)
 -         return {};
 -     paramStr = paramStr.substr(1);
 -     var result = {};
 -     paramStr.split("&").forEach(function (part) {
 -         var item = part.split("=");
 -         var value;
 -         try {
 -             value = (dontParse)? item[1] : JSON.parse(
 -                 decodeURIComponent(item[1]).replace(/\\&/, "&"));
 -         } catch (e) {
 -             console.warn("Failed to parse URL argument", e);
 -             if(window.onerror)
 -                 window.onerror("Failed to parse URL argument", null, null,
 -                     null, e);
 -             return;
 -         }
 -         result[item[0]] = value;
 -     });
 -     return result;
 - }
 
 
  |