]> git.rmz.io Git - dotfiles.git/blobdiff - dwb/greasemonkey/ponyhoof.user.js
move battery notification to the top_right
[dotfiles.git] / dwb / greasemonkey / ponyhoof.user.js
index c71c00bf71efc2da58d4ba85d7e8ca4a69d85842..be24c83170d44bc050483739845fdcaf969bda9f 100644 (file)
@@ -2,7 +2,7 @@
 // @name        Ponyhoof
 // @namespace   http://www.facebook.com/ponyhoof
 // @run-at      document-start
 // @name        Ponyhoof
 // @namespace   http://www.facebook.com/ponyhoof
 // @run-at      document-start
-// @version     1.631
+// @version     1.701
 // @installURL  https://hoof.little.my/files/ponyhoof.user.js
 // @updateURL   https://hoof.little.my/files/ponyhoof.meta.js
 // @icon        https://hoof.little.my/files/app32.png
 // @installURL  https://hoof.little.my/files/ponyhoof.user.js
 // @updateURL   https://hoof.little.my/files/ponyhoof.meta.js
 // @icon        https://hoof.little.my/files/app32.png
@@ -13,7 +13,7 @@
 // @contributor James
 // @contributor http://ponyhoof.little.my/credits
 // @homepage    http://ponyhoof.little.my
 // @contributor James
 // @contributor http://ponyhoof.little.my/credits
 // @homepage    http://ponyhoof.little.my
-// @supportURL  http://www.facebook.com/Ponyhoof
+// @supportURL  https://www.facebook.com/Ponyhoof
 // @contributionURL http://ponyhoof.little.my/donate
 // @include http://*.facebook.com/*
 // @include https://*.facebook.com/*
 // @contributionURL http://ponyhoof.little.my/donate
 // @include http://*.facebook.com/*
 // @include https://*.facebook.com/*
 
 
 (function() {
 
 
 (function() {
+       if (typeof WScript !== 'undefined' && typeof window === 'undefined') {
+               WScript.echo("Ponyhoof is not run by double-clicking a file in Windows.\n\nPlease visit http://jointheherd.little.my for proper installation.");
+               WScript.quit(1);
+       }
+
        if (window.location.hostname.indexOf('facebook.com') == -1 && window.location.hostname.indexOf('little.my') == -1) {
                return;
        }
        if (window.location.hostname.indexOf('facebook.com') == -1 && window.location.hostname.indexOf('little.my') == -1) {
                return;
        }
@@ -67,11 +72,14 @@ var userSettings = {};
 
 var USERAGENT = w.navigator.userAgent.toLowerCase();
 var ISOPERABLINK = /OPR\//.test(w.navigator.userAgent);
 
 var USERAGENT = w.navigator.userAgent.toLowerCase();
 var ISOPERABLINK = /OPR\//.test(w.navigator.userAgent);
-var ISOPERA = !ISOPERABLINK && (typeof opera != 'undefined' || /opera/i.test(USERAGENT));
-var ISCHROME = !ISOPERABLINK && (typeof chrome != 'undefined' || /chrome/i.test(USERAGENT));
-var ISFIREFOX = /firefox/i.test(USERAGENT);
-var ISSAFARI = !ISOPERABLINK && !ISCHROME && /safari/i.test(USERAGENT);
+var ISOPERA = !ISOPERABLINK && (typeof opera !== 'undefined' || /opera/.test(USERAGENT));
+var ISMAXTHON = /maxthon/i.test(USERAGENT);
+var ISMSIE = !ISMAXTHON && !ISOPERA && typeof opera === 'undefined' && /trident/.test(USERAGENT);
 var ISMOBILE = /iphone|ipad|ipod|android|blackberry|mini|windows\sce|palm/i.test(USERAGENT);
 var ISMOBILE = /iphone|ipad|ipod|android|blackberry|mini|windows\sce|palm/i.test(USERAGENT);
+var ISCHROME = !ISMAXTHON && !ISOPERABLINK && /chrome/i.test(USERAGENT) && typeof chrome !== 'undefined' && typeof chrome.webstore !== 'undefined' && typeof chrome.webstore.install !== 'undefined' && chrome.webstore.install;
+var ISFIREFOX = /firefox/i.test(USERAGENT);
+var ISSAFARI = !ISOPERABLINK && !ISCHROME && !/chrome/i.test(USERAGENT) && /safari/i.test(USERAGENT);
+var ISAVANT = /avant/i.test(USERAGENT);
 
 // R.I.P. unsafeWindow in Chrome 27+ http://crbug.com/222652
 if (typeof unsafeWindow == 'undefined') {
 
 // R.I.P. unsafeWindow in Chrome 27+ http://crbug.com/222652
 if (typeof unsafeWindow == 'undefined') {
@@ -205,14 +213,10 @@ function clickLink(el) {
                return false;
        }
        
                return false;
        }
        
-       try {
-               var evt = d.createEvent('MouseEvents');
-               evt.initMouseEvent('click', true, true, w, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
-               el.dispatchEvent(evt);
-               return true;
-       } catch (e) {
-               return false;
-       }
+       var evt = d.createEvent('MouseEvents');
+       evt.initMouseEvent('click', true, true, USW, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
+       el.dispatchEvent(evt);
+       return true;
 }
 
 function cookie(n) {
 }
 
 function cookie(n) {
@@ -545,7 +549,7 @@ var Menu = function(id, p) {
        
        k.injectStyle = function() {
                var css = '';
        
        k.injectStyle = function() {
                var css = '';
-               css += 'html .ponyhoof_dialog .ponyhoof_button_menu, .ponyhoof_menuitem_checked {background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfQAAADdCAYAAABNAoDAAAADbElEQVR42u3Xv06aARTG4XN93oYm7eDgakw7OXsD3oBpByevBhRKVVSooIDrKR9TGxOhSRM5n8+T/MKf8C1neUMkAFBeLF5eUpIk1S4W80VKkqTaxXw+T0mSVLuYzeYpSZJqF7PnWUqSpNrF0/NTSpKk2sX0aZqSJKl2MZ0u30iSpHdtZ+90bW89H5PJJCVJ0vu3e3iWRycXr2q+X/dsPD7+SkmStB19/vr9rzFvPm/yXIzH45QkSdvTwfH5asyb102fifFo+UaSJG1VqzH/h9/HaPSQkiSpdvFwf5+SJKl2cXd3l5IkqXYxHA5TkiTVLm5vb1OSJNUurm9uUpIk1S6ur3+mJEmqXQwGg5QkSbWLH/1+SpKk2kW/30tJklS76F31UpIk1S6uLi9TkiTVLrrdbkqSpNpFp9NJSZJUO4MuSZJBlyRJBl2SJBl0SZJk0CVJMuiSJMmgS5Ikgy5Jkgy6JEkGXZIkGXRJkmTQJUmSQZckyaBLkiSDLkmSDLokSTLokiQZdEmSZNAlSZJBlyRJBl2SpPYPOgAAAAAAAAAAAAAAAAAAAAAAAAD/WW7AlQCg+Ki7DgAUH3VXAYDio+4aAFB81F0BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4cHb2TnNdrgQABewenuXRycWrmu9dBwAK+fTl2+TPMW8+uwoAFHRwfL4a8+bVNQCg+Ki7AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW29/fz9dAQCKj7lBB4AWjLlBB4BC423MAaAl/8aNOQC0YNCNOQC0aNRdAwCKj7orAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwBq55AoAUHzMDToAtGDMDToAFBpvYw4ALfk3bswBoAWDbswBoEWj7hoAUHzUXQEAAAAAAN7yG6s7d/s7eB9vAAAAAElFTkSuQmCC") !important;background-repeat:no-repeat;-webkit-background-size:500px 221px;-moz-background-size:500px 221px;background-size:500px 221px;}';
+               css += 'html .ponyhoof_dialog .ponyhoof_button_menu, .ponyhoof_menuitem_checked {background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfQAAADdCAMAAAB63HDyAAAAaVBMVEUAAABnfapKZJtjeahofqtsbGxwhK97jrXb29vc3Nze3d3f3t/g4N/h4ODi4uLk5OPk5eXm5ubn5+fo6Ojq6enr6+rs6+zs7Ozu7u3v7+/w8PDw8fDx8vHz8vPz8/T09PT19PX19vb////xKBXBAAAAAnRSTlMA70YmMtEAAAFWSURBVHja7d05UsNQFETRNjIS8zzPeP+LxK7CmA04UZ8T6aV968fKijr5pk6+qJNP6uSDOnmnTt6ok1fq5IXZO9j6vfPM/A3TxrA980SB5br58u/KIw3GadwdeaDC+O8799TJHXVyS53cUCfX1MkVdXJJnVxQJ+fUyRl1ckqdnFAnx9TJEXVEFx3RER3RER3RER3RER3RER3RER3RER3REV10REd05hMdAAAAANij3V/4qKtuiL7qZuirboS+6iYAAAAAAAAAAAAAAAAAAAAAAAAAAACA/TrYMkWRYdoYDFFlsW6+MEOZcRqN0FfdBAAAAAAAAAAAAAAAAAAAAAAAAABzcWiCvuaiFzYXvaq35o2PXPPC6JpXVjdCX3UTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBnZYK+5qIXNhe9qrfmjY9c88LomldWN0JfdRMAzMcPe9ehQpH/3pgAAAAASUVORK5CYII=") !important;background-repeat:no-repeat;-webkit-background-size:500px 221px;-moz-background-size:500px 221px;background-size:500px 221px;}';
                
                css += 'html .ponyhoof_dialog .ponyhoof_button_menu {background-position:right 0;padding-right:23px;}';
                css += 'html .ponyhoof_button_menu:active {background-position:right -98px;}';
                
                css += 'html .ponyhoof_dialog .ponyhoof_button_menu {background-position:right 0;padding-right:23px;}';
                css += 'html .ponyhoof_button_menu:active {background-position:right -98px;}';
@@ -574,9 +578,9 @@ var Menu = function(id, p) {
                css += '.ponyhoof_menuitem:hover, .ponyhoof_menuitem:active, .ponyhoof_menuitem:focus {background-color:#6d84b4;border-color:#3b5998;color:#fff;text-decoration:none;}';
                css += '.ponyhoof_menuitem_checked {background-position:0 -146px;font-weight:bold;}';
                css += '.ponyhoof_menuitem_checked:hover, .ponyhoof_menuitem_checked:active, .ponyhoof_menuitem_checked:focus {background-position:0 -206px;}';
                css += '.ponyhoof_menuitem:hover, .ponyhoof_menuitem:active, .ponyhoof_menuitem:focus {background-color:#6d84b4;border-color:#3b5998;color:#fff;text-decoration:none;}';
                css += '.ponyhoof_menuitem_checked {background-position:0 -146px;font-weight:bold;}';
                css += '.ponyhoof_menuitem_checked:hover, .ponyhoof_menuitem_checked:active, .ponyhoof_menuitem_checked:focus {background-position:0 -206px;}';
-               css += '.ponyhoof_menuitem_span {white-space:nowrap;text-overflow:ellipsis;display:inline-block;overflow:hidden;padding-right:16px;max-width:400px;}';
+               css += '.ponyhoof_menuitem_span {white-space:nowrap;text-overflow:ellipsis;display:inline-block;overflow:hidden;padding-right:16px;max-width:400px;vertical-align:top;}';
 
 
-               css += '.ponyhoof_button_clipped .uiButtonText {text-overflow:ellipsis;overflow:hidden;}';
+               css += '.ponyhoof_button_clipped > .uiButtonText {text-overflow:ellipsis;overflow:hidden;vertical-align:top;}';
 
                injectManualStyle(css, 'menu');
        };
 
                injectManualStyle(css, 'menu');
        };
@@ -590,7 +594,7 @@ var Menu = function(id, p) {
                        addClass(k.menuInner.parentNode, 'overflow');
                }
 
                        addClass(k.menuInner.parentNode, 'overflow');
                }
 
-               if (k.canSearch) {
+               if (k.canSearch && !ISMOBILE) {
                        var scrollTop = k.selectorMenu.scrollTop;
                        k.menuSearchInput.focus();
                        k.menuSearchInput.select();
                        var scrollTop = k.selectorMenu.scrollTop;
                        k.menuSearchInput.focus();
                        k.menuSearchInput.select();
@@ -796,7 +800,7 @@ var MenuItem = function(menu) {
 
 // Dialog
 var DIALOGS = {};
 
 // Dialog
 var DIALOGS = {};
-var DIALOGCOUNT = 400;
+var DIALOGCOUNT = 2000;
 var Dialog = function(id) {
        var k = this;
        
 var Dialog = function(id) {
        var k = this;
        
@@ -898,7 +902,7 @@ var Dialog = function(id) {
                css += '.ponyhoof_dialog .wrap {background:#fff;color:#000;}';
                css += '.ponyhoof_dialog h3 {background-color:#6D84B4;border:1px solid #3B5998;border-bottom:0;color:#fff;font-size:14px !important;font-weight:bold !important;padding:5px 5px 5px 10px;cursor:help;min-height:17px;font-family:\'lucida grande\',tahoma,verdana,arial,sans-serif !important;line-height:1.28 !important;}';
                css += cx+' .ponyhoof_dialog h3 {background:#f5f6f7;border:0;border-bottom:1px solid #e5e5e5;-moz-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;color:#4e5665;line-height:19px !important;padding:10px 12px;text-shadow:0 1px 0 #fff;font-family:\'Helvetica Neue\', Helvetica, Arial, \'lucida grande\',tahoma,verdana,arial,sans-serif !important;}';
                css += '.ponyhoof_dialog .wrap {background:#fff;color:#000;}';
                css += '.ponyhoof_dialog h3 {background-color:#6D84B4;border:1px solid #3B5998;border-bottom:0;color:#fff;font-size:14px !important;font-weight:bold !important;padding:5px 5px 5px 10px;cursor:help;min-height:17px;font-family:\'lucida grande\',tahoma,verdana,arial,sans-serif !important;line-height:1.28 !important;}';
                css += cx+' .ponyhoof_dialog h3 {background:#f5f6f7;border:0;border-bottom:1px solid #e5e5e5;-moz-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;color:#4e5665;line-height:19px !important;padding:10px 12px;text-shadow:0 1px 0 #fff;font-family:\'Helvetica Neue\', Helvetica, Arial, \'lucida grande\',tahoma,verdana,arial,sans-serif !important;}';
-               css += '.ponyhoof_dialog h3:before {background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABDUlEQVQ4y43TzytEURQH8BnDyGKKZIGlHwtTrKZQNmJPWMxO2VopKdkoCzul7PwBkpK17NlYkGz8G7LzsXBe3cbz3tz69s65536/nfe951ZQ6cAkWjn7ucjb3MdjxFWMJLVlrJYJTGAp4l4coBH5A95C+F+BFH14QTPyRawUdVDHcJLX/K52tx70YxuXmMZ6CNxFfQEzZR7UcRvEr/h+4hnv3QhkuPF3bRT9whZOMRB5u4P8gdkwNlfgPA5WMZYQv5N4raiDKcxjEFc4w2EQX3GCC4yXeTCE0eRW4CipX2Ov20GqhPM7yWRmHRUKzOEePTgOgzOBXWyWCTTxFIRWCHb9GrMRbsSN1AK5Z38AQdAu/IfZJw8AAAAASUVORK5CYII=");background-repeat: no-repeat;display:inline-block;float:right;content:" ";width:16px;height:16px;opacity:.713;}';
+               css += '.ponyhoof_dialog h3:before {background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAA90lEQVQYGQXBP0oWAADA0ff9NURBRAVDMBcHl9SpIbCamsOhcOsMObiEICJ2gJYQWhqkscmWTlFeoJbASacIfr4ngaZtAZAGJBLoRV+hDdKjdpJIoJl2oGPopEsSCdAA+tksLfWEREIakcb963ljGpJIoNe9a7eX1beGLbdOIoF01m231U2/um6RRELzpI9V1V2bkEja7qi55npfVf3pbRMSSQddN2ml31XV//YgkTTpWZM+d9xh9aMPfWq3QSKhcQ8a01p/O+hxC522n0gAWqWrnjag750nEqCHXTTbeWs07U3biQRosS9Ne9UIWm6YSABap3kAkntUReU7PxfnpgAAAABJRU5ErkJggg==");background-repeat: no-repeat;display:inline-block;float:right;content:" ";width:16px;height:16px;opacity:.713;}';
                css += cx+' .ponyhoof_dialog h3:before {display:none;}';
                css += '.ponyhoof_dialog .body {border:1px solid #555;border-top-width:0;}';
                css += '.ponyhoof_dialog h3.hidden_elem + .body {border-top-width:1px;}';
                css += cx+' .ponyhoof_dialog h3:before {display:none;}';
                css += '.ponyhoof_dialog .body {border:1px solid #555;border-top-width:0;}';
                css += '.ponyhoof_dialog h3.hidden_elem + .body {border-top-width:1px;}';
@@ -956,7 +960,7 @@ var Dialog = function(id) {
                                k.onclosefinish();
                        });
                        if (callback) {
                                k.onclosefinish();
                        });
                        if (callback) {
-                               log("Legacy dialog close code found");
+                               log("Legacy dialog close code found [Dialog.close()]");
                        }
 
                        if (ISOPERA) {
                        }
 
                        if (ISOPERA) {
@@ -1041,7 +1045,7 @@ var Dialog = function(id) {
                k.dialog.querySelector('.bottom .uiButton').addEventListener('click', function(e) {
                        k.close(function() {
                                if (callback) {
                k.dialog.querySelector('.bottom .uiButton').addEventListener('click', function(e) {
                        k.close(function() {
                                if (callback) {
-                                       log("Legacy dialog close code found");
+                                       log("Legacy dialog close code found [Dialog.addCloseButton()]");
                                        callback();
                                }
                        });
                                        callback();
                                }
                        });
@@ -1106,6 +1110,8 @@ var Dialog = function(id) {
 
 function createSimpleDialog(id, title, message) {
        if (DIALOGS[id]) {
 
 function createSimpleDialog(id, title, message) {
        if (DIALOGS[id]) {
+               DIALOGS[id].changeTitle(title);
+               DIALOGS[id].changeContent(message);
                DIALOGS[id].show();
                return DIALOGS[id];
        }
                DIALOGS[id].show();
                return DIALOGS[id];
        }
@@ -1178,9 +1184,28 @@ var isPageHidden = function() {
 
        return document[prop];
 };
 
        return document[prop];
 };
+
+// http://stackoverflow.com/a/2745459
+var isCanvasSupported = function() {
+       return !!w.CanvasRenderingContext2D;
+};
+
+// http://stackoverflow.com/a/10930441
+var isWebPSupported = function(callback) {
+       var webp = new w.Image();
+       try {
+               webp.onload = webp.onerror = function() {
+                       callback(webp.height === 2);
+               };
+               webp.src = 'data:image/webp;base64,UklGRjoAAABXRUJQVlA4IC4AAACyAgCdASoCAAIALmk0mk0iIiIiIgBoSygABc6WWgAA/veff/0PP8bA//LwYAAA';
+       } catch (e) {
+               callback(false);
+       }
+};
+
        // http://www.myersdaily.org/joseph/javascript/md5.js
 function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-680876936),e=ff(e,b,a,d,c[1],12,-389564586),d=ff(d,e,b,a,c[2],17,606105819),a=ff(a,d,e,b,c[3],22,-1044525330),b=ff(b,a,d,e,c[4],7,-176418897),e=ff(e,b,a,d,c[5],12,1200080426),d=ff(d,e,b,a,c[6],17,-1473231341),a=ff(a,d,e,b,c[7],22,-45705983),b=ff(b,a,d,e,c[8],7,1770035416),e=ff(e,b,a,d,c[9],12,-1958414417),d=ff(d,e,b,a,c[10],17,-42063),a=ff(a,d,e,b,c[11],22,-1990404162),b=ff(b,a,d,e,c[12],7,1804603682),e=ff(e,b,a,d,c[13],12,-40341101),d=ff(d,e,b,a,c[14],17,-1502002290),a=ff(a,d,e,b,c[15],22,1236535329),b=gg(b,a,d,e,c[1],5,-165796510),e=gg(e,b,a,d,c[6],9,-1069501632),d=gg(d,e,b,a,c[11],14,643717713),a=gg(a,d,e,b,c[0],20,-373897302),b=gg(b,a,d,e,c[5],5,-701558691),e=gg(e,b,a,d,c[10],9,38016083),d=gg(d,e,b,a,c[15],14,-660478335),a=gg(a,d,e,b,c[4],20,-405537848),b=gg(b,a,d,e,c[9],5,568446438),e=gg(e,b,a,d,c[14],9,-1019803690),d=gg(d,e,b,a,c[3],14,-187363961),a=gg(a,d,e,b,c[8],20,1163531501),b=gg(b,a,d,e,c[13],5,-1444681467),e=gg(e,b,a,d,c[2],9,-51403784),d=gg(d,e,b,a,c[7],14,1735328473),a=gg(a,d,e,b,c[12],20,-1926607734),b=hh(b,a,d,e,c[5],4,-378558),e=hh(e,b,a,d,c[8],11,-2022574463),d=hh(d,e,b,a,c[11],16,1839030562),a=hh(a,d,e,b,c[14],23,-35309556),b=hh(b,a,d,e,c[1],4,-1530992060),e=hh(e,b,a,d,c[4],11,1272893353),d=hh(d,e,b,a,c[7],16,-155497632),a=hh(a,d,e,b,c[10],23,-1094730640),b=hh(b,a,d,e,c[13],4,681279174),e=hh(e,b,a,d,c[0],11,-358537222),d=hh(d,e,b,a,c[3],16,-722521979),a=hh(a,d,e,b,c[6],23,76029189),b=hh(b,a,d,e,c[9],4,-640364487),e=hh(e,b,a,d,c[12],11,-421815835),d=hh(d,e,b,a,c[15],16,530742520),a=hh(a,d,e,b,c[2],23,-995338651),b=ii(b,a,d,e,c[0],6,-198630844),e=ii(e,b,a,d,c[7],10,1126891415),d=ii(d,e,b,a,c[14],15,-1416354905),a=ii(a,d,e,b,c[5],21,-57434055),b=ii(b,a,d,e,c[12],6,1700485571),e=ii(e,b,a,d,c[3],10,-1894986606),d=ii(d,e,b,a,c[10],15,-1051523),a=ii(a,d,e,b,c[1],21,-2054922799),b=ii(b,a,d,e,c[8],6,1873313359),e=ii(e,b,a,d,c[15],10,-30611744),d=ii(d,e,b,a,c[6],15,-1560198380),a=ii(a,d,e,b,c[13],21,1309151649),b=ii(b,a,d,e,c[4],6,-145523070),e=ii(e,b,a,d,c[11],10,-1120210379),d=ii(d,e,b,a,c[2],15,718787259),a=ii(a,d,e,b,c[9],21,-343485551);f[0]=add32(b,f[0]);f[1]=add32(a,f[1]);f[2]=add32(d,f[2]);f[3]=add32(e,f[3])}function cmn(f,c,b,a,d,e){c=add32(add32(c,f),add32(a,e));return add32(c<<d|c>>>32-d,b)}function ff(f,c,b,a,d,e,g){return cmn(c&b|~c&a,f,c,d,e,g)}function gg(f,c,b,a,d,e,g){return cmn(c&a|b&~a,f,c,d,e,g)}function hh(f,c,b,a,d,e,g){return cmn(c^b^a,f,c,d,e,g)}function ii(f,c,b,a,d,e,g){return cmn(b^(c|~a),f,c,d,e,g)}function md51(f){var txt="";var c=f.length,b=[1732584193,-271733879,-1732584194,271733878],a;for(a=64;a<=f.length;a+=64)md5cycle(b,md5blk(f.substring(a-64,a)));f=f.substring(a-64);var d=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(a=0;a<f.length;a++)d[a>>2]|=f.charCodeAt(a)<<(a%4<<3);d[a>>2]|=128<<(a%4<<3);if(55<a){md5cycle(b,d);for(a=0;16>a;a++)d[a]=0}d[14]=8*c;md5cycle(b,d);return b}function md5blk(f){var c=[],b;for(b=0;64>b;b+=4)c[b>>2]=f.charCodeAt(b)+(f.charCodeAt(b+1)<<8)+(f.charCodeAt(b+2)<<16)+(f.charCodeAt(b+3)<<24);return c}var hex_chr="0123456789abcdef".split("");function rhex(f){for(var c="",b=0;4>b;b++)c+=hex_chr[f>>8*b+4&15]+hex_chr[f>>8*b&15];return c}function hex(f){for(var c=0;c<f.length;c++)f[c]=rhex(f[c]);return f.join("")}function md5(f){return hex(md51(f))}function add32(f,c){return f+c&4294967295}"5d41402abc4b2a76b9719d911017c592"!=md5("hello")&&(add32=function(f,c){var b=(f&65535)+(c&65535);return(f>>16)+(c>>16)+(b>>16)<<16|b&65535});        
        // http://www.myersdaily.org/joseph/javascript/md5.js
 function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-680876936),e=ff(e,b,a,d,c[1],12,-389564586),d=ff(d,e,b,a,c[2],17,606105819),a=ff(a,d,e,b,c[3],22,-1044525330),b=ff(b,a,d,e,c[4],7,-176418897),e=ff(e,b,a,d,c[5],12,1200080426),d=ff(d,e,b,a,c[6],17,-1473231341),a=ff(a,d,e,b,c[7],22,-45705983),b=ff(b,a,d,e,c[8],7,1770035416),e=ff(e,b,a,d,c[9],12,-1958414417),d=ff(d,e,b,a,c[10],17,-42063),a=ff(a,d,e,b,c[11],22,-1990404162),b=ff(b,a,d,e,c[12],7,1804603682),e=ff(e,b,a,d,c[13],12,-40341101),d=ff(d,e,b,a,c[14],17,-1502002290),a=ff(a,d,e,b,c[15],22,1236535329),b=gg(b,a,d,e,c[1],5,-165796510),e=gg(e,b,a,d,c[6],9,-1069501632),d=gg(d,e,b,a,c[11],14,643717713),a=gg(a,d,e,b,c[0],20,-373897302),b=gg(b,a,d,e,c[5],5,-701558691),e=gg(e,b,a,d,c[10],9,38016083),d=gg(d,e,b,a,c[15],14,-660478335),a=gg(a,d,e,b,c[4],20,-405537848),b=gg(b,a,d,e,c[9],5,568446438),e=gg(e,b,a,d,c[14],9,-1019803690),d=gg(d,e,b,a,c[3],14,-187363961),a=gg(a,d,e,b,c[8],20,1163531501),b=gg(b,a,d,e,c[13],5,-1444681467),e=gg(e,b,a,d,c[2],9,-51403784),d=gg(d,e,b,a,c[7],14,1735328473),a=gg(a,d,e,b,c[12],20,-1926607734),b=hh(b,a,d,e,c[5],4,-378558),e=hh(e,b,a,d,c[8],11,-2022574463),d=hh(d,e,b,a,c[11],16,1839030562),a=hh(a,d,e,b,c[14],23,-35309556),b=hh(b,a,d,e,c[1],4,-1530992060),e=hh(e,b,a,d,c[4],11,1272893353),d=hh(d,e,b,a,c[7],16,-155497632),a=hh(a,d,e,b,c[10],23,-1094730640),b=hh(b,a,d,e,c[13],4,681279174),e=hh(e,b,a,d,c[0],11,-358537222),d=hh(d,e,b,a,c[3],16,-722521979),a=hh(a,d,e,b,c[6],23,76029189),b=hh(b,a,d,e,c[9],4,-640364487),e=hh(e,b,a,d,c[12],11,-421815835),d=hh(d,e,b,a,c[15],16,530742520),a=hh(a,d,e,b,c[2],23,-995338651),b=ii(b,a,d,e,c[0],6,-198630844),e=ii(e,b,a,d,c[7],10,1126891415),d=ii(d,e,b,a,c[14],15,-1416354905),a=ii(a,d,e,b,c[5],21,-57434055),b=ii(b,a,d,e,c[12],6,1700485571),e=ii(e,b,a,d,c[3],10,-1894986606),d=ii(d,e,b,a,c[10],15,-1051523),a=ii(a,d,e,b,c[1],21,-2054922799),b=ii(b,a,d,e,c[8],6,1873313359),e=ii(e,b,a,d,c[15],10,-30611744),d=ii(d,e,b,a,c[6],15,-1560198380),a=ii(a,d,e,b,c[13],21,1309151649),b=ii(b,a,d,e,c[4],6,-145523070),e=ii(e,b,a,d,c[11],10,-1120210379),d=ii(d,e,b,a,c[2],15,718787259),a=ii(a,d,e,b,c[9],21,-343485551);f[0]=add32(b,f[0]);f[1]=add32(a,f[1]);f[2]=add32(d,f[2]);f[3]=add32(e,f[3])}function cmn(f,c,b,a,d,e){c=add32(add32(c,f),add32(a,e));return add32(c<<d|c>>>32-d,b)}function ff(f,c,b,a,d,e,g){return cmn(c&b|~c&a,f,c,d,e,g)}function gg(f,c,b,a,d,e,g){return cmn(c&a|b&~a,f,c,d,e,g)}function hh(f,c,b,a,d,e,g){return cmn(c^b^a,f,c,d,e,g)}function ii(f,c,b,a,d,e,g){return cmn(b^(c|~a),f,c,d,e,g)}function md51(f){var txt="";var c=f.length,b=[1732584193,-271733879,-1732584194,271733878],a;for(a=64;a<=f.length;a+=64)md5cycle(b,md5blk(f.substring(a-64,a)));f=f.substring(a-64);var d=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(a=0;a<f.length;a++)d[a>>2]|=f.charCodeAt(a)<<(a%4<<3);d[a>>2]|=128<<(a%4<<3);if(55<a){md5cycle(b,d);for(a=0;16>a;a++)d[a]=0}d[14]=8*c;md5cycle(b,d);return b}function md5blk(f){var c=[],b;for(b=0;64>b;b+=4)c[b>>2]=f.charCodeAt(b)+(f.charCodeAt(b+1)<<8)+(f.charCodeAt(b+2)<<16)+(f.charCodeAt(b+3)<<24);return c}var hex_chr="0123456789abcdef".split("");function rhex(f){for(var c="",b=0;4>b;b++)c+=hex_chr[f>>8*b+4&15]+hex_chr[f>>8*b&15];return c}function hex(f){for(var c=0;c<f.length;c++)f[c]=rhex(f[c]);return f.join("")}function md5(f){return hex(md51(f))}function add32(f,c){return f+c&4294967295}"5d41402abc4b2a76b9719d911017c592"!=md5("hello")&&(add32=function(f,c){var b=(f&65535)+(c&65535);return(f>>16)+(c>>16)+(b>>16)<<16|b&65535});        
-       var VERSION = 1.631;
+       var VERSION = 1.701;
        var FRIENDLYNAME = 'P'+'onyh'+'oof';
        var SIG = '['+FRIENDLYNAME+' v'+VERSION+']';
        var DISTRIBUTION = 'userjs';
        var FRIENDLYNAME = 'P'+'onyh'+'oof';
        var SIG = '['+FRIENDLYNAME+' v'+VERSION+']';
        var DISTRIBUTION = 'userjs';
@@ -1198,6 +1223,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
        var CURRENTLANG = {};
        var ISUSINGPAGE = false;
        var ISUSINGBUSINESS = false;
        var CURRENTLANG = {};
        var ISUSINGPAGE = false;
        var ISUSINGBUSINESS = false;
+       var ONPLUGINPAGE = false;
 
        var SETTINGSPREFIX = '';
        var globalSettings = {};
 
        var SETTINGSPREFIX = '';
        var globalSettings = {};
@@ -1207,23 +1233,24 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                'globalSettingsMigrated':false, 'lastUserId':0, 'lastVersion':''
        };
        
                'globalSettingsMigrated':false, 'lastUserId':0, 'lastVersion':''
        };
        
-       var PONIES = [{"code":"trixie","name":"Trixie","users":["trixie"],"menu_title":"The Great and Powerful Trixie demands your attention!","color":["6e98b4","3a7196"],"icon16":"trixie\/icon16_2.png","soundNotif":"trixie\/notif","loadingText":"Performing magic..."},{"code":"twilight","name":"Twilight Sparkle","users":["twilight","spark","tw\u0131l\u0131ght","twilite","twi light","\u0162wilight"],"search":"twilight sparkle|twilightsparkle|princess twilight","menu_title":"To switch to Princess Twilight, go to Misc > Appearance","color":["9f6eb4","7a3a96"],"mane6":true,"loadingText":"Studying friendship..."},{"code":"dash","name":"Rainbow Dash","users":["rainbow","dash"],"search":"rainbow dash|rainbowdash|dashie","color":["6e9db4","3a7796"],"soundNotif":"dash\/notif","mane6":true,"loadingText":"Loading... in ten seconds flat!","successText":"Aww yeah!"},{"code":"pinkie","name":"Pinkie Pie","users":["pink"],"search":"pinkie pie|pinkiepie|pinkamena diane pie","color":["b46e8a","963a5f"],"soundNotif":"pinkie\/notif2","mane6":true,"loadingText":"Come on everypony!"},{"code":"applej","name":"Applejack","users":["apple j","applej"],"search":"applejack|apple jack","color":["b4976e","96703a"],"soundNotif":"applej\/notif2","mane6":true,"loadingText":"Hold on there sugarcube!","successText":"Yeehaw!"},{"code":"flutter","name":"Fluttershy","users":["flutter","flut ter"],"search":"fluttershy|flutter shy","color":["b4ae6e","968e3a"],"soundNotif":"flutter\/notif2","mane6":true,"loadingText":"Screaming...","successText":"Yay!"},{"code":"rarity","name":"Rarity","users":["rarity"],"color":["9b6eb4","763a96"],"soundNotif":"rarity\/notif","mane6":true,"loadingText":"Whining...","seperator":true},{"code":"applebloom","name":"Apple Bloom","users":["appleb","apple b"],"search":"apple bloom|applebloom|cmc|cutie mark crusaders","color":["b46e8d","963a63"],"soundNotif":"applebloom\/notif","loadingText":"Getting her cutie mark...","nocutie":true},{"code":"aloe","name":"Aloe","users":["aloe"],"search":"aloe|spa pony|spa ponies","color":["b46e91","963a68"]},{"code":"babsseed","name":"Babs Seed","users":["babs","seed"],"search":"babs seed|babsseed|cmc|cutie mark crusaders","color":["b4976e","96703a"],"nocutie":true},{"code":"berry","name":"Berry Punch","users":["berry"],"color":["a56eb4","823a96"]},{"code":"bigmac","name":"Big Macintosh","users":["bigmac","big mac"],"search":"bigmacintosh|big macintosh|big mcintosh|bigmcintosh","color":["b46e75","963a43"],"soundNotif":"bigmac\/notif","loadingText":"Saying eeyup..."},{"code":"bonbon","name":"Bon Bon","users":["bon bon","bonbon","bon-bon"],"search":"bon bon|bonbon","color":["6e89b4","3a5d96"]},{"code":"braeburn","name":"Braeburn","users":["braeburn","breaburn"],"search":"braeburn|breaburn","color":["b4a86e","96873a"],"icon16":"braeburn\/icon16_2.png"},{"code":"cadance","name":"Cadance","users":["cadance","cadence"],"search":"cadance|cadence|princess cadance|princess cadence","color":["b46e96","963a6e"]},{"code":"carrot","name":"Carrot Top","users":["golden","carrot"],"search":"carrot top|carrottop|golden harvest","menu_title":"Also known as Golden Harvest","color":["b2b46e","93963a"]},{"code":"celestia","name":"Celestia","users":["celestia","trollestia","molestia"],"search":"celestia|princess celestia","color":["b46e98","963a71"],"loadingText":"Raising the sun..."},{"code":"cheerilee","name":"Cheerilee","users":["cheerilee"],"color":["b46e96","963a6e"]},{"code":"colgate","name":"Colgate","users":["colgate","minuette"],"search":"colgate|minuette|minette","menu_title":"Also known as Minuette","color":["6e99b4","3a7396"],"soundNotif":"colgate\/notif","loadingText":"Brushing..."},{"code":"cloudchaser","name":"Cloudchaser","users":["cloudch","cloud ch"],"search":"cloudchaser|cloud chaser|stormwalker|storm walker","menu_title":"Also known as Stormwalker","color":["856eb4","593a96"]},{"code":"daring","name":"Daring Do","users":["daring"],"search":"daring do|daringdo","color":["b4a76e","96853a"]},{"code":"derpy","name":"Derpy Hooves","users":["derpy"],"color":["b4b46e","96963a"],"fbIndex_swf":"derpy\/fbIndex.swf","soundNotif":"derpy\/notif","loadingText":"Wondering what went wrong..."},{"code":"diamondtiara","name":"Diamond Tiara","users":["tiara"],"search":"diamond tiara|diamondtiara","color":["926eb4","6a3a96"],"stack":"villian"},{"code":"discord","name":"Discord","users":["discord"],"color":["b46f6e","963c3a"],"stack":"villian","loadingText":"CHOCOLATE RAIN","nocutie":true},{"code":"whooves","name":"Doctor Whooves","users":["whooves","time turn"],"search":"doctor whooves|doctor hooves|time turner","menu_title":"Also known as Time Turner","color":["b4a06e","967c3a"]},{"code":"fleur","name":"Fleur De Lis","users":["fleur","fluer"],"search":"fleur de lis|fluer de lis|fleur dis lee|fluer dis lee","color":["b46eb4","963a96"]},{"code":"flimflam","name":"Flim and Flam","users":["flim","flam"],"color":["b0b46e","91963a"],"loadingText":"Giving opportunities..."},{"code":"flitter","name":"Flitter","users":["Flitter"],"color":["846eb4","573a96"]},{"code":"gilda","name":"Gilda","users":["gilda"],"color":["b49a6e","96743a"],"stack":"villian","nocutie":true},{"code":"sombra","name":"King Sombra","users":["sombra"],"color":["6eb46e","3a963a"],"stack":"villian","nocutie":true},{"code":"lightningdust","name":"Lightning Dust","users":["lightning"],"color":["6eb4ad","3a968d"]},{"code":"lotus","name":"Lotus","users":["lotus"],"search":"lotus|spa pony|spa ponies","color":["6ea0b4","3a7c96"]},{"code":"luna","name":"Luna","users":["luna"],"search":"luna|princess luna","color":["6e7eb4","3a5096"],"soundNotif":"luna\/notif","loadingText":"Doubling the fun...","successText":"Huzzah!"},{"code":"lyra","name":"Lyra","users":["lyra"],"search":"lyra heartstrings","color":["6eb49d","3a9677"]},{"code":"nightmaremoon","name":"Nightmare Moon","users":["nightmare"],"search":"nightmare moon|nightmaremoon","color":["6e7fb4","3a5196"],"stack":"villian"},{"code":"nurseredheart","name":"Nurse Redheart","users":["nurse","redheart"],"color":["b46e76","963a45"]},{"code":"octavia","name":"Octavia","users":["octavia"],"color":["b4a76e","96853a"]},{"code":"pinkamena","name":"Pinkamena","users":["pinkamena"],"search":"pinkamena diane pie","color":["b46e8c","963a62"],"stack":"villian"},{"code":"chrysalis","name":"Queen Chrysalis","users":["chrysalis"],"search":"queen chrysalis|changeling","color":["6ea2b4","3a7f96"],"stack":"chrysalis","loadingText":"Feeding...","nocutie":true},{"code":"roidrage","name":"Roid Rage","users":["snowflake","roid","rage"],"search":"snowflake|roidrage|roid rage","menu_title":"Also known as Snowflake","color":["b4ae6e","968e3a"],"soundNotif":"_sound\/roidrage_yeah","successText":"YEAH!"},{"code":"rose","name":"Rose","users":["rose"],"search":"roseluck","menu_title":"Also known as Roseluck","color":["b46e8c","963a62"]},{"code":"scootaloo","name":"Scootaloo","users":["scootaloo"],"search":"scootaloo|cmc|cutie mark crusaders|chicken","color":["b4996e","96733a"],"loadingText":"Getting her cutie mark...","nocutie":true},{"code":"shiningarmor","name":"Shining Armor","users":["shining armor"],"search":"shining armor|shiningarmor","color":["6e7bb4","3a4b96"]},{"code":"silverspoon","name":"Silver Spoon","users":["spoon"],"search":"silver spoon|silverspoon","color":["6e97b4","3a7096"],"stack":"villian"},{"code":"soarin","name":"Soarin'","users":["soarin"],"search":"soarin'|wonderbolts","color":["6e9db4","3a7796"]},{"code":"spike","name":"Spike","users":["spike"],"color":["a26eb4","7f3a96"],"nocutie":true},{"code":"spitfire","name":"Spitfire","users":["spitfire"],"search":"spitfire|wonderbolts","color":["b4ae6e","968e3a"],"icon16":"spitfire\/icon16_2.png"},{"code":"sweetieb","name":"Sweetie Belle","users":["sweetieb","sweetie b"],"search":"sweetiebelle|sweetie belle|cmc|cutie mark crusaders","color":["a06eb4","7c3a96"],"soundNotif":"sweetieb\/notif","loadingText":"Getting her cutie mark...","nocutie":true},{"code":"vinyl","name":"Vinyl Scratch","users":["vinyl","vinyx","dj p"],"search":"vinyl scratch|dj pon3|dj-pon3|dj pon 3|dj pon-3","menu_title":"Also known as DJ Pon-3","color":["6ea9b4","3a8896"],"soundNotif":"vinyl\/notif","loadingText":"Wubbing..."},{"code":"zecora","name":"Zecora","users":["zecora"],"color":["b4af6e","96903a"]},{"code":"blank","name":"(Blank)","color":["b46e6e","963a3a"],"hidden":true,"nocutie":true},{"code":"bloomberg","name":"Bloomberg","color":["9fb46e","7a963a"],"hidden":true,"nocutie":true},{"code":"mono","name":"Mono","color":["b46e6e","963a3a"],"stack":"mono","hidden":true},{"code":"taugeh","name":"Taugeh","color":["b4b46e","96963a"],"hidden":true,"nocutie":true}];
-       var LANG = {"af_ZA":{"sniff_comment_tooltip_like":"Hou van hierdie opmerking","sniff_comment_tooltip_unlike":"Hou nie meer van hierdie opmerking nie"},"ar_AR":{"sniff_comment_tooltip_like":"\u0627\u0644\u0625\u0639\u062c\u0627\u0628 \u0628\u0627\u0644\u062a\u0639\u0644\u064a\u0642","sniff_comment_tooltip_unlike":"\u0625\u0644\u063a\u0627\u0621 \u0625\u0639\u062c\u0627\u0628\u064a \u0628\u0647\u0630\u0627 \u0627\u0644\u062a\u0639\u0644\u064a\u0642"},"az_AZ":{"sniff_comment_tooltip_like":"Bu r\u0259yi b\u0259y\u0259n","sniff_comment_tooltip_unlike":"Bu \u015f\u0259rhi b\u0259y\u0259nm\u0259"},"be_BY":{"sniff_comment_tooltip_like":"\u041f\u0430\u0434\u0430\u0431\u0430\u0435\u0446\u0446\u0430","sniff_comment_tooltip_unlike":"\u041c\u043d\u0435 \u0431\u043e\u043b\u044c\u0448 \u043d\u0435 \u043f\u0430\u0434\u0430\u0431\u0430\u0435\u0446\u0446\u0430 \u0433\u044d\u0442\u044b \u043a\u0430\u043c\u044d\u043d\u0442\u0430\u0440"},"bg_BG":{"sniff_comment_tooltip_like":"\u0425\u0430\u0440\u0435\u0441\u0432\u0430\u043c \u0442\u043e\u0437\u0438 \u043a\u043e\u043c\u0435\u043d\u0442\u0430\u0440","sniff_comment_tooltip_unlike":"\u0412\u0435\u0447\u0435 \u043d\u0435 \u0445\u0430\u0440\u0435\u0441\u0432\u0430\u043c"},"bn_IN":{"sniff_comment_tooltip_like":"\u09ae\u09a8\u09cd\u09a4\u09ac\u09cd\u09af\u099f\u09bf \u09ad\u09be\u09b2\u09cb \u09b2\u09c7\u0997\u09c7\u099b\u09c7","sniff_comment_tooltip_unlike":"\u09ad\u09be\u09b2\u09cb \u09b2\u09be\u0997\u09c7\u09a8\u09bf"},"bs_BA":{"sniff_comment_tooltip_like":"Svi\u0111a mi se ovaj komentar","sniff_comment_tooltip_unlike":"Ne svi\u0111a mi se komentar"},"ca_ES":{"sniff_comment_tooltip_like":"M'agrada aquest comentari","sniff_comment_tooltip_unlike":"Ja no m'agrada aquest comentari."},"cs_CZ":{"sniff_comment_tooltip_like":"Tento koment\u00e1\u0159 se mi l\u00edb\u00ed.","sniff_comment_tooltip_unlike":"Koment\u00e1\u0159 se mi u\u017e nel\u00edb\u00ed","close":"Zav\u0159\u00edt"},"cy_GB":{"sniff_comment_tooltip_like":"Hoffi'r sylw hwn","sniff_comment_tooltip_unlike":"Peidio hoffi'r sylw hwn"},"da_DK":{"fb_composer_lessons":"Hvilke lektioner i venskab har du l\u00e6rt idag?","sniff_comment_tooltip_like":"Tilkendegiv, at du synes godt om denne kommentar","sniff_comment_tooltip_unlike":"Synes ikke godt om denne kommentar l\u00e6ngere","close":"Luk"},"de_DE":{"fb_composer_lessons":"Welche Lektionen \u00fcber Freundschaft hast Du heute gelernt?","sniff_comment_tooltip_like":"Dieser Kommentar gef\u00e4llt mir","sniff_comment_tooltip_unlike":"Dieser Kommentar gef\u00e4llt mir nicht mehr","close":"Schlie\u00dfen"},"el_GR":{"sniff_comment_tooltip_like":"\u039c\u03bf\u03c5 \u03b1\u03c1\u03ad\u03c3\u03b5\u03b9 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03c3\u03c7\u03cc\u03bb\u03b9\u03bf","sniff_comment_tooltip_unlike":"\"\u0394\u03b5\u03bd \u03bc\u03bf\u03c5 \u03b1\u03c1\u03ad\u03c3\u03b5\u03b9!\" \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03c3\u03c7\u03cc\u03bb\u03b9\u03bf"},"en_PI":{"sniff_comment_tooltip_like":"This comment be pleasin","sniff_comment_tooltip_unlike":"Care not fer such trifles"},"en_US":{"fb_composer_lessons":"What lessons in friendship have you learned today?","fb_comment_box":"Write a friendship letter...","fb_search_box":"Search for ponies, places and things","fb_search_boxAlt":"Type to search for ponies, places and things","fb_composer_coolstory":"Write a cool story...","fb_composer_ponies":"Ponies!","fb_composer_ponies_caps":"PONIES!!!","fb_share_tooltip":"Remember! You gotta share... You gotta care...","sniff_comment_tooltip_like":"Like this comment","sniff_comment_tooltip_unlike":"Unlike this comment","sniff_fb_search_boxAlt":"Type to search","close":"Close","reloadNow":"Reload now","notNow":"Not now","invertSelection":"Invert selection","finish":"Finish","done":"Eeyup","options_title":"Ponyhoof Options","options_tabs_main":"General","options_tabs_background":"Background","options_tabs_sounds":"Sounds","options_tabs_extras":"Misc","options_tabs_advanced":"Debug","options_tabs_about":"About","settings_disable_runForNewUsers_explain":"If you enable this, Ponyhoof will not automatically run for other Facebook accounts that did not activate Ponyhoof yet. They can still open Ponyhoof Options to re-enable Ponyhoof if they wish to.","settings_extras_login_bg":"Use alternate background","settings_sounds":"Play sounds (e.g. notifications and dialogs)","settings_sounds_noNotification":"Play sounds (e.g. dialogs)","settings_extras_runForNewUsers_explain":"If you disable this, Ponyhoof will not automatically run for other Facebook accounts that did not activate Ponyhoof yet. They can still open Ponyhoof Options to re-enable Ponyhoof if they wish to.","settings_main_visitPage":"Visit the Ponyhoof page for news and help","settings_main_visitPageBusiness":"Visit the Ponyhoof page for news","settings_sounds_unavailable":"Notification sounds are not available on your browser. Please update your browser if possible.","updater_title":"Update Ponyhoof","costume_tooltip":"Limited to certain characters only"},"eo_EO":{"sniff_comment_tooltip_like":"\u015cati \u0109i tiun komenton","sniff_comment_tooltip_unlike":"Ne plu \u015dati \u0109i tiun komenton"},"es_ES":{"sniff_comment_tooltip_like":"Me gusta este comentario","sniff_comment_tooltip_unlike":"Ya no me gusta este comentario","close":"Cerrar"},"es_LA":{"fb_composer_lessons":"\u00bfQue has aprendido hoy sobre la amistad?","fb_comment_box":"Escribe un reporte de amistad...","sniff_comment_tooltip_like":"Me gusta este comentario","sniff_comment_tooltip_unlike":"Ya no me gusta este comentario","close":"Cerrar"},"et_EE":{"sniff_comment_tooltip_like":"Meeldib see kommentaar","sniff_comment_tooltip_unlike":"Ei meeldi enam"},"eu_ES":{"sniff_comment_tooltip_like":"Iruzkin hau atsegin dut","sniff_comment_tooltip_unlike":"Iruzkin hau desatsegin"},"fa_IR":{"sniff_comment_tooltip_like":"\u0627\u06cc\u0646 \u062f\u06cc\u062f\u06af\u0627\u0647 \u0631\u0627 \u0645\u06cc\u200c\u067e\u0633\u0646\u062f\u0645","sniff_comment_tooltip_unlike":"\u0627\u06cc\u0646 \u062f\u06cc\u062f\u06af\u0627\u0647 \u0631\u0627 \u0646\u067e\u0633\u0646\u062f\u06cc\u062f\u0645"},"fb_LT":{"fb_composer_lessons":"W|-|47 \u00a33550|\\|5 !|\\| |=|2!3|\\||)5|-|!|* |-|4\\\/3 '\/0|_| \u00a334|2|\\|3|) 70|)4'\/?","fb_comment_box":"W|2!73 4 |=|2!3|\\||)5|-|!|* \u00a33773|2...","fb_search_box":"S34|2(|-| |=0|2 |*0|\\|!35, |*\u00a34(35 4|\\||) 7|-|!|\\|95","fb_search_boxAlt":"T'\/|*3 70 534|2(|-| |=0|2 |*0|\\|!35, |*\u00a34(35 4|\\||) 7|-|!|\\|95","fb_composer_coolstory":"W|2!73 4 (00\u00a3 570|2'\/...","fb_composer_ponies":"P0|\\|!35!","fb_composer_ponies_caps":"PONIES!!!","fb_share_tooltip":"R3|\\\/|3|\\\/|83|2! Y0|_| 90774 5|-|4|23... Y0|_| 90774 (4|23...","close":"Alt+F4","reloadNow":"R3\u00a304|) |\\|0vv","notNow":"N07 |\\|0vv","invertSelection":"I|\\|\\\/3|27 53\u00a33(7!0|\\|","finish":"F!|\\|!5|-|","done":"E3'\/|_||*","options_title":"P0|\\|'\/|-|00|= O|*7!0|\\|5","options_tabs_main":"G3|\\|3|24\u00a3","options_tabs_background":"B4(k9|20|_||\\||)","options_tabs_sounds":"S0|_||\\||)5","options_tabs_extras":"M!5(","options_tabs_advanced":"D38|_|9","options_tabs_about":"A80|_|7","settings_disable_runForNewUsers_explain":"I|= '\/0|_| 3|\\|48\u00a33 7|-|!5, P0|\\|'\/|-|00|= vv!\u00a3\u00a3 |\\|07 4|_|70|\\\/|47!(4\u00a3\u00a3'\/ |2|_||\\| |=0|2 07|-|3|2 F4(3800k 4((0|_||\\|75 7|-|47 |)!|) |\\|07 4(7!\\\/473 P0|\\|'\/|-|00|= '\/37. T|-|3'\/ (4|\\| 57!\u00a3\u00a3 0|*3|\\| P0|\\|'\/|-|00|= O|*7!0|\\|5 70 |23-3|\\|48\u00a33 P0|\\|'\/|-|00|= !|= 7|-|3'\/ vv!5|-| 70.","settings_extras_login_bg":"U53 4\u00a373|2|\\|473 84(k9|20|_||\\||)","settings_sounds":"P\u00a34'\/ 50|_||\\||)5 (3.9. |\\|07!|=!(47!0|\\|5 4|\\||) |)!4\u00a3095)","settings_sounds_noNotification":"P\u00a34'\/ 50|_||\\||)5 (3.9. |)!4\u00a3095)","settings_extras_runForNewUsers_explain":"I|= '\/0|_| |)!548\u00a33 7|-|!5, P0|\\|'\/|-|00|= vv!\u00a3\u00a3 |\\|07 4|_|70|\\\/|47!(4\u00a3\u00a3'\/ |2|_||\\| |=0|2 07|-|3|2 F4(3800k 4((0|_||\\|75 7|-|47 |)!|) |\\|07 4(7!\\\/473 P0|\\|'\/|-|00|= '\/37. T|-|3'\/ (4|\\| 57!\u00a3\u00a3 0|*3|\\| P0|\\|'\/|-|00|= O|*7!0|\\|5 70 |23-3|\\|48\u00a33 P0|\\|'\/|-|00|= !|= 7|-|3'\/ vv!5|-| 70.","settings_main_visitPage":"V!5!7 7|-|3 P0|\\|'\/|-|00|= |*493 |=0|2 |\\|3vv5 4|\\||) |-|3\u00a3|*","settings_main_visitPageBusiness":"V!5!7 7|-|3 P0|\\|'\/|-|00|= |*493 |=0|2 |\\|3vv5","settings_sounds_unavailable":"N07!|=!(47!0|\\| 50|_||\\||)5 4|23 |\\|07 4\\\/4!\u00a348\u00a33 0|\\| '\/0|_||2 8|20vv53|2. P\u00a33453 |_||*|)473 '\/0|_||2 8|20vv53|2 !|= |*055!8\u00a33.","updater_title":"U|*|)473 P0|\\|'\/|-|00|=","costume_tooltip":"L!|\\\/|!73|) 70 (3|274!|\\| (|-|4|24(73|25 0|\\|\u00a3'\/","sniff_comment_tooltip_like":"<3"},"fi_FI":{"fb_composer_lessons":"Mit\u00e4 oppeja yst\u00e4vyydest\u00e4 olet oppinut t\u00e4n\u00e4\u00e4n?","sniff_comment_tooltip_like":"Tykk\u00e4\u00e4 t\u00e4st\u00e4 kommentista","sniff_comment_tooltip_unlike":"En tykk\u00e4\u00e4k\u00e4\u00e4n","close":"Sulje"},"fo_FO":{"sniff_comment_tooltip_like":"M\u00e6r d\u00e1mar vi\u00f0merkingina"},"fr_CA":{"fb_composer_lessons":"Quelles le\u00e7ons sur l'amiti\u00e9 avez-vous appris aujourd'hui ?","sniff_comment_tooltip_like":"J\u2019aime ce commentaire","sniff_comment_tooltip_unlike":"Je n\u2019aime plus ce commentaire","close":"Fermer"},"fr_FR":{"fb_composer_lessons":"Quelles le\u00e7ons sur l'amiti\u00e9 avez-vous appris aujourd'hui ?","sniff_comment_tooltip_like":"J\u2019aime ce commentaire","sniff_comment_tooltip_unlike":"Je n\u2019aime plus ce commentaire","close":"Fermer"},"fy_NL":{"sniff_comment_tooltip_like":"Leuke reaksje","sniff_comment_tooltip_unlike":"Ik mei net mear oer dit berjocht"},"ga_IE":{"fb_composer_lessons":"cad ceachtanna i cairdeas ad'fhoghlaim t\u00fa inniu?","sniff_comment_tooltip_like":"L\u00e9irigh gur maith leat an tr\u00e1cht seo","sniff_comment_tooltip_unlike":"N\u00ed maith liom an tr\u00e1cht seo","close":"D\u00fan"},"gl_ES":{"sniff_comment_tooltip_like":"G\u00fastame este comentario","sniff_comment_tooltip_unlike":"Xa non me gusta"},"he_IL":{"fb_composer_lessons":"\u05d0\u05d9\u05dc\u05d5 \u05dc\u05e7\u05d7\u05d9\u05dd \u05d1\u05d9\u05d3\u05d9\u05d3\u05d5\u05ea \u05dc\u05de\u05d3\u05ea \u05d4\u05d9\u05d5\u05dd?","sniff_comment_tooltip_like":"\u05d0\u05d5\u05d4\u05d1 \u05d0\u05ea \u05d4\u05ea\u05d2\u05d5\u05d1\u05d4","sniff_comment_tooltip_unlike":"\u05dc\u05d0 \u05d0\u05d4\u05d1\/\u05d4 \u05d0\u05ea \u05ea\u05d2\u05d5\u05d1\u05d4 \u05d6\u05d5","close":"\u05e1\u05d2\u05d5\u05e8"},"hi_IN":{"sniff_comment_tooltip_like":"\u091f\u093f\u092a\u094d\u092a\u0923\u0940 \u092a\u0938\u0902\u0926 \u0915\u0930\u0947\u0902","sniff_comment_tooltip_unlike":"\u0907\u0938 \u091f\u093f\u092a\u094d\u092a\u0923\u0940 \u0915\u094b \u0928\u093e\u092a\u0938\u0902\u0926 \u0915\u0930\u0947\u0902"},"hr_HR":{"sniff_comment_tooltip_like":"Svi\u0111a mi se ovaj komentar","sniff_comment_tooltip_unlike":"Ne svi\u0111a mi se"},"hu_HU":{"fb_composer_lessons":"Mit tanult\u00e1l ma a bar\u00e1ts\u00e1gr\u00f3l?","sniff_comment_tooltip_like":"Tetszik a bejegyz\u00e9s.","sniff_comment_tooltip_unlike":"M\u00e9gsem tetszik","close":"Bez\u00e1r\u00e1s"},"hy_AM":{"sniff_comment_tooltip_like":"\u0540\u0561\u057e\u0561\u0576\u0565\u056c \u0561\u0575\u057d \u0574\u0565\u056f\u0576\u0561\u0562\u0561\u0576\u0578\u0582\u0569\u0575\u0578\u0582\u0576\u0568","sniff_comment_tooltip_unlike":"\u0549\u0570\u0561\u057e\u0561\u0576\u0565\u056c \u0561\u0575\u057d \u0574\u0565\u056f\u0576\u0561\u0562\u0561\u0576\u0578\u0582\u0569\u0575\u0578\u0582\u0576\u0568"},"id_ID":{"fb_composer_lessons":"Apa pelajaran yang kalian dapat tentang persahabatan hari ini?","sniff_comment_tooltip_like":"Suka komentar ini","sniff_comment_tooltip_unlike":"Tidak suka komentar ini","close":"Tutup"},"is_IS":{"sniff_comment_tooltip_like":"L\u00edkar vi\u00f0 \u00feessi umm\u00e6li","sniff_comment_tooltip_unlike":"L\u00edka ekki vi\u00f0 \u00feessi umm\u00e6li"},"it_IT":{"fb_composer_lessons":"Che cosa hai imparato oggi sull'amicizia?","sniff_comment_tooltip_like":"Di' che ti piace questo commento","sniff_comment_tooltip_unlike":"Di' che non ti piace pi\u00f9 questo commento","close":"Chiudi"},"ja_JP":{"fb_composer_lessons":"\u4eca\u65e5\u306f\u53cb\u60c5\u306b\u3069\u306e\u3088\u3046\u306a\u6559\u8a13\u3092\u5b66\u3073\u307e\u3057\u305f\u304b\uff1f","sniff_comment_tooltip_like":"\u3053\u306e\u30b3\u30e1\u30f3\u30c8\u306f\u3044\u3044\u306d\uff01","sniff_comment_tooltip_unlike":"\u3044\u3044\u306d\uff01\u3092\u53d6\u308a\u6d88\u3059","close":"\u9589\u3058\u308b"},"ka_GE":{"sniff_comment_tooltip_like":"\u10db\u10dd\u10d8\u10ec\u10dd\u10dc\u10d4 \u10d4\u10e1 \u10d9\u10dd\u10db\u10d4\u10dc\u10e2\u10d0\u10e0\u10d8","sniff_comment_tooltip_unlike":"\u10d0\u10e6\u10d0\u10e0 \u10db\u10dd\u10db\u10ec\u10dd\u10dc\u10e1 \u10d4\u10e1 \u10d9\u10dd\u10db\u10d4\u10dc\u10e2\u10d0\u10e0\u10d8"},"km_KH":{"sniff_comment_tooltip_like":"\u1785\u17bc\u179b\u1785\u17b7\u178f\u17d2\u178f \u179c\u17b7\u1785\u17b6\u179a \u1793\u17c1\u17c7","sniff_comment_tooltip_unlike":"\u179b\u17c2\u1784\u1785\u17bc\u179b\u1785\u17b7\u178f\u17d2\u178f\u1798\u178f\u17b7\u1793\u17c1\u17c7"},"ko_KR":{"fb_composer_lessons":"\uc6b0\uc815\uc5d0 \uad00\ud574\uc11c \uc624\ub298 \ubb34\uc5c7\uc744 \ubc30\uc6e0\ub098\uc694?","sniff_comment_tooltip_like":"\uc88b\uc544\uc694","sniff_comment_tooltip_unlike":"\uc88b\uc544\uc694 \ucde8\uc18c","close":"\ub2eb\uae30"},"ku_TR":{"sniff_comment_tooltip_like":"V\u00ea \u015f\u00eerovey\u00ea biecib\u00eene","sniff_comment_tooltip_unlike":"V\u00ea \u015firovey\u00ea neecib\u00eene"},"la_VA":[],"lt_LT":{"fb_composer_lessons":"Kokias \u017einias apie draugyst\u0119 i\u0161mokote \u0161iandien?","sniff_comment_tooltip_like":"Patinka \u0161is komentaras","sniff_comment_tooltip_unlike":"Nepatinka \u0161is komentaras","close":"U\u017edaryti"},"lv_LV":{"sniff_comment_tooltip_unlike":"Koment\u0101rs vairs nepat\u012bk"},"mk_MK":{"fb_composer_lessons":"\u041a\u043e\u0438 \u043b\u0435\u043a\u0446\u0438\u0438 \u0437\u0430 \u043f\u0440\u0438\u0458\u0430\u0442\u0435\u043b\u0441\u0442\u0432\u043e\u0442\u043e \u0434\u043e\u0437\u043d\u0430\u0432\u0442\u0435 \u0434\u0435\u043d\u0435\u0441?","sniff_comment_tooltip_like":"\u041c\u0438 \u0441\u0435 \u0434\u043e\u043f\u0430\u0453\u0430 \u043a\u043e\u043c\u0435\u043d\u0442\u0430\u0440\u043e\u0432","sniff_comment_tooltip_unlike":"\u041d\u0435 \u043c\u0438 \u0441\u0435 \u0434\u043e\u043f\u0430\u0453\u0430","close":"\u0417\u0430\u0442\u0432\u043e\u0440\u0438"},"ml_IN":{"sniff_comment_tooltip_like":"\u0d08 \u0d05\u0d2d\u0d3f\u0d2a\u0d4d\u0d30\u0d3e\u0d2f\u0d02 \u0d07\u0d37\u0d4d\u0d1f\u0d2e\u0d3e\u0d2f\u0d3f"},"ms_MY":{"fb_composer_lessons":"Apakah pelajaran tentang persahabatan yang telah anda pelajari hari ini?","fb_comment_box":"Tuliskan surat persahabatan...","fb_composer_ponies":"Kuda!","fb_composer_ponies_caps":"KUDA!!!","sniff_comment_tooltip_like":"Suka komen ini","sniff_comment_tooltip_unlike":"Tidak suka komen ini","close":"Tutup","options_title":"Opsyen Ponyhoof"},"nb_NO":{"sniff_comment_tooltip_like":"Lik denne kommentaren"},"ne_NP":[],"nl_NL":{"fb_composer_lessons":"Wat heb je vandaag geleerd over vriendschap?","sniff_comment_tooltip_like":"Leuke reactie","sniff_comment_tooltip_unlike":"Reactie niet meer leuk","close":"Sluiten"},"pa_IN":{"sniff_comment_tooltip_like":"\u0a07\u0a39 \u0a1f\u0a3f\u0a71\u0a2a\u0a23\u0a40 \u0a2a\u0a38\u0a70\u0a26 \u0a15\u0a30\u0a4b","sniff_comment_tooltip_unlike":"\u0a07\u0a39 \u0a1f\u0a3f\u0a71\u0a2a\u0a23\u0a40 \u0a28\u0a3e\u0a2a\u0a38\u0a70\u0a26 \u0a15\u0a30\u0a4b|"},"pl_PL":{"fb_composer_lessons":"Czego si\u0119 dzisiaj nauczy\u0142e\u015b o przyja\u017ani?","sniff_comment_tooltip_like":"Polub komentarz","sniff_comment_tooltip_unlike":"Nie lubi\u0119 tego komentarza","close":"Zamknij"},"ps_AF":[],"pt_BR":{"fb_composer_lessons":"Quais li\u00e7\u00f5es sobre amizade voc\u00ea aprendeu hoje?","sniff_comment_tooltip_like":"Curtir este coment\u00e1rio","sniff_comment_tooltip_unlike":"Curtir (desfazer) este coment\u00e1rio","close":"Fechar"},"pt_PT":{"fb_composer_lessons":"Que li\u00e7\u00f5es de amizade voc\u00ea aprendeu hoje?","sniff_comment_tooltip_like":"Gosto deste coment\u00e1rio","sniff_comment_tooltip_unlike":"N\u00e3o gosto deste coment\u00e1rio","close":"Fechar"},"ro_RO":{"fb_composer_lessons":"Ce lec\u0163ii despre prietenie ai \u00eenv\u0103\u0163at ast\u0103zi?","sniff_comment_tooltip_like":"\u00cemi place acest comentariu","sniff_comment_tooltip_unlike":"Nu-mi mai place acest comentariu","close":"\u00cenchide"},"ru_RU":{"fb_composer_lessons":"\u041a\u0430\u043a\u0438\u0435 \u0443\u0440\u043e\u043a\u0438 \u0434\u0440\u0443\u0436\u0431\u044b \u0432\u044b \u0432\u044b\u0443\u0447\u0438\u043b\u0438 \u0441\u0435\u0433\u043e\u0434\u043d\u044f?","sniff_comment_tooltip_like":"\u041c\u043d\u0435 \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439","sniff_comment_tooltip_unlike":"\u041d\u0435 \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f","close":"\u0417\u0430\u043a\u0440\u044b\u0442\u044c"},"sk_SK":{"fb_composer_lessons":"Ak\u00e9 lekcie priate\u013estva si sa nau\u010dil dnes?","sniff_comment_tooltip_like":"P\u00e1\u010di sa mi tento koment\u00e1r","sniff_comment_tooltip_unlike":"Tento koment\u00e1r sa mi u\u017e nep\u00e1\u010di","close":"Zavrie\u0165"},"sl_SI":{"fb_composer_lessons":"Kaj si se o prijateljstvu nau\u010dil\/-a danes?","sniff_comment_tooltip_like":"V\u0161e\u010d mi je","sniff_comment_tooltip_unlike":"Ta komentar mi ni v\u0161e\u010d","close":"Zapri"},"sq_AL":{"sniff_comment_tooltip_like":"P\u00eblqeje k\u00ebt\u00eb koment","sniff_comment_tooltip_unlike":"Mos p\u00eblqe k\u00ebt\u00eb koment"},"sr_RS":{"sniff_comment_tooltip_like":"\u0421\u0432\u0438\u0452\u0430 \u043c\u0438 \u0441\u0435 \u043a\u043e\u043c\u0435\u043d\u0442\u0430\u0440.","sniff_comment_tooltip_unlike":"\u041d\u0435 \u0441\u0432\u0438\u0452\u0430 \u043c\u0438 \u0441\u0435 \u043e\u0432\u0430\u0458 \u043a\u043e\u043c\u0435\u043d\u0442\u0430\u0440","close":"\u0417\u0430\u0442\u0432\u043e\u0440\u0438"},"sv_SE":{"fb_composer_lessons":"Vilka l\u00e4rdomar i v\u00e4nskap har du l\u00e4rt dig idag?","sniff_comment_tooltip_like":"Gilla den h\u00e4r kommentaren","sniff_comment_tooltip_unlike":"Sluta gilla den h\u00e4r kommentaren","close":"St\u00e4ng"},"sw_KE":[],"ta_IN":{"sniff_comment_tooltip_like":"\u0b87\u0b95\u0bcd\u0b95\u0bb0\u0bc1\u0ba4\u0bcd\u0ba4\u0bbf\u0ba9\u0bc8 \u0bb5\u0bbf\u0bb0\u0bc1\u0bae\u0bcd\u0baa\u0bc1\u0b95\u0bbf\u0bb1\u0bc7\u0ba9\u0bcd","sniff_comment_tooltip_unlike":"\u0b87\u0b95\u0bcd\u0b95\u0bb0\u0bc1\u0ba4\u0bcd\u0ba4\u0bbf\u0ba9\u0bc8 \u0bb5\u0bbf\u0bb0\u0bc1\u0bae\u0bcd\u0baa\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8","close":"\u0e1b\u0e34\u0e14"},"te_IN":{"sniff_comment_tooltip_unlike":"\u0c35\u0c4d\u0c2f\u0c3e\u0c16\u0c4d\u0c2f \u0c28\u0c1a\u0c4d\u0c1a\u0c32\u0c47\u0c26\u0c41"},"th_TH":{"sniff_comment_tooltip_like":"\u0e16\u0e39\u0e01\u0e43\u0e08\u0e04\u0e27\u0e32\u0e21\u0e04\u0e34\u0e14\u0e40\u0e2b\u0e47\u0e19\u0e19\u0e35\u0e49","sniff_comment_tooltip_unlike":"\u0e40\u0e25\u0e34\u0e01\u0e16\u0e39\u0e01\u0e43\u0e08\u0e04\u0e27\u0e32\u0e21\u0e04\u0e34\u0e14\u0e40\u0e2b\u0e47\u0e19\u0e19\u0e35\u0e49"},"tl_PH":{"fb_composer_lessons":"Anong mga aralin sa pagkakaibigan ang natutunan mo ngayon?","sniff_comment_tooltip_like":"Gustuhin ang komentong ito","sniff_comment_tooltip_unlike":"Ayawan ang komentong ito","close":"Isara"},"tr_TR":{"fb_composer_lessons":"Bug\u00fcn arkada\u015fl\u0131kla ilgili neler \u00f6\u011frendin?","sniff_comment_tooltip_like":"Bu yorumu be\u011fen","sniff_comment_tooltip_unlike":"Bu yorumu be\u011fenmekten vazge\u00e7","close":"Kapat"},"uk_UA":{"fb_composer_lessons":"\u042f\u043a\u0456 \u0443\u0440\u043e\u043a\u0438 \u0432 \u0434\u0440\u0443\u0436\u0431\u0456 \u0432\u0438 \u0434\u0456\u0437\u043d\u0430\u043b\u0438\u0441\u044f \u0441\u044c\u043e\u0433\u043e\u0434\u043d\u0456?","sniff_comment_tooltip_like":"\u0412\u043f\u043e\u0434\u043e\u0431\u0430\u0442\u0438 \u043a\u043e\u043c\u0435\u043d\u0442\u0430\u0440","sniff_comment_tooltip_unlike":"\u041d\u0435 \u043f\u043e\u0434\u043e\u0431\u0430\u0454\u0442\u044c\u0441\u044f \u043a\u043e\u043c\u0435\u043d\u0442\u0430\u0440","close":"\u0417\u0430\u043a\u0440\u0438\u0442\u0438"},"vi_VN":{"sniff_comment_tooltip_like":"Th\u00edch b\u00ecnh lu\u1eadn n\u00e0y","sniff_comment_tooltip_unlike":"B\u1ecf th\u00edch b\u00ecnh lu\u1eadn n\u00e0y n\u1eefa"},"zh_CN":{"sniff_comment_tooltip_like":"\u559c\u6b22\u6b64\u8bc4\u8bba","sniff_comment_tooltip_unlike":"\u4e0d\u559c\u6b22\u6b64\u8bc4\u8bba","close":"\u5173\u95ed"},"zh_HK":{"sniff_comment_tooltip_like":"\u5c0d\u9019\u5247\u7559\u8a00\u8b9a\u597d","sniff_comment_tooltip_unlike":"\u53d6\u6d88\u8b9a\u597d"},"zh_TW":{"fb_composer_lessons":"\u4f60\u4eca\u5929\u5f9e\u53cb\u60c5\u88e1\u9762\u5b78\u5230\u4e86\u4ec0\u9ebc\uff1f","sniff_comment_tooltip_like":"\u8aaa\u9019\u5247\u7559\u8a00\u8b9a","sniff_comment_tooltip_unlike":"\u6536\u56de\u8b9a","close":"\u95dc\u9589"}};
-       var SOUNDS = {"AUTO":{"name":"(Auto-select)","seperator":true},"_sound\/defaultNotification":{"name":"Casting magic","title":"This will also be used for characters that do not have their own notification sound"},"trixie\/notif":{"name":"Trixie - Watch in awe!"},"dash\/notif":{"name":"Rainbow Dash - Aww yeah!"},"pinkie\/notif2":{"name":"Pinkie Pie - *rimshot*"},"applej\/notif":{"name":"Applejack - Yeehaw!"},"flutter\/notif2":{"name":"Fluttershy - Yay!"},"rarity\/notif":{"name":"Rarity - This is whining!"},"applebloom\/notif":{"name":"Apple Bloom - That'll be four bits"},"bigmac\/notif":{"name":"Big Macintosh - Eeyup"},"colgate\/notif":{"name":"Colgate - Why you don't brush your teeth"},"derpy\/notif":{"name":"Derpy Hooves - I brought you a letter!"},"luna\/notif":{"name":"Luna - Huzzah!"},"_sound\/roidrage_yeah":{"name":"Roid Rage\/Snowflake - YEAH!"},"sweetieb\/notif":{"name":"Sweetie Belle - Oh come on!"},"vinyl\/notif":{"name":"Vinyl Scratch - Yeah!","seperator":true},"twilight\/notif":{"name":"Twilight Sparkle - It's not over yet!"},"_sound\/grin2":{"name":"Fluttershy - *squee*"},"_sound\/dash_dundundun":{"name":"Rainbow Dash - DUN DUN DUN"},"_sound\/dash_egghead":{"name":"Rainbow Dash - I'm an egghead"},"_sound\/pinkie_boring":{"name":"Pinkie Pie - Booooring!"},"_sound\/pinkie_gasp":{"name":"Pinkie Pie - *gasp*"},"_sound\/pinkie_partycannon":{"name":"Pinkie Pie - Party cannon"},"_sound\/pinkie_pinkiepiestyle":{"name":"Pinkie Pie - Pinkie Pie style!"},"_sound\/flutter_woohoo":{"name":"Fluttershy - Woo hoo"},"_sound\/octavia_nevermess":{"name":"Octavia - Never mess with Octavia"},"_sound\/rarity_dumbrock":{"name":"Rarity - Dumb rock!"},"_sound\/rarity_itison":{"name":"Rarity - Oh. It. Is. On!"},"_sound\/rarity_wahaha":{"name":"Rarity - Wahaha!"},"_sound\/vinyl_awyeah":{"name":"Vinyl Scratch - Aw yeah!"},"_sound\/vinyl_mybasscannon":{"name":"Vinyl Scratch - My bass cannon!"},"_sound\/vinyl_wubwubwub":{"name":"Vinyl Scratch - Wubwubwub"},"_sound\/vinyl_wubedubdub":{"name":"Vinyl Scratch - Wubedubdub"},"_sound\/vinyl_yougotwubs":{"name":"Vinyl Scratch - You got wubs"}};
+       var PONIES = [{"code":"trixie","name":"Trixie","users":["trixie"],"menu_title":"The Great and Powerful Trixie demands your attention!","color":["6e98b4","3a7196"],"icon16":"trixie\/icon16_2.png","soundNotif":"trixie\/notif","loadingText":"Performing magic..."},{"code":"twilight","name":"Twilight Sparkle","users":["twilight","spark","tw\u0131l\u0131ght","twilite","twi light","\u0162wilight"],"search":"twilight sparkle|twilightsparkle|princess twilight","menu_title":"To switch to Princess Twilight, go to Misc > Appearance","color":["9f6eb4","7a3a96"],"mane6":true,"loadingText":"Studying friendship..."},{"code":"dash","name":"Rainbow Dash","users":["rainbow","dash"],"search":"rainbow dash|rainbowdash|dashie","color":["6e9db4","3a7796"],"soundNotif":"dash\/notif","mane6":true,"loadingText":"Loading... in ten seconds flat!","successText":"Aww yeah!"},{"code":"pinkie","name":"Pinkie Pie","users":["pink"],"search":"pinkie pie|pinkiepie|pinkamena diane pie","color":["b46e8a","963a5f"],"soundNotif":"pinkie\/notif2","mane6":true,"loadingText":"Come on everypony!"},{"code":"applej","name":"Applejack","users":["apple j","applej"],"search":"applejack|apple jack","color":["b4976e","96703a"],"soundNotif":"applej\/notif2","mane6":true,"loadingText":"Hold on there sugarcube!","successText":"Yeehaw!"},{"code":"flutter","name":"Fluttershy","users":["flutter","flut ter"],"search":"fluttershy|flutter shy","color":["b4ae6e","968e3a"],"soundNotif":"flutter\/notif2","mane6":true,"loadingText":"Screaming...","successText":"Yay!"},{"code":"rarity","name":"Rarity","users":["rarity"],"color":["9b6eb4","763a96"],"soundNotif":"rarity\/notif","mane6":true,"loadingText":"Whining...","seperator":true},{"code":"applebloom","name":"Apple Bloom","users":["appleb","apple b"],"search":"apple bloom|applebloom|cmc|cutie mark crusaders","color":["b46e8d","963a63"],"soundNotif":"applebloom\/notif","loadingText":"Getting her cutie mark...","nocutie":true},{"code":"aloe","name":"Aloe","users":["aloe"],"search":"aloe|spa pony|spa ponies","color":["b46e91","963a68"]},{"code":"babsseed","name":"Babs Seed","users":["babs","seed"],"search":"babs seed|babsseed|cmc|cutie mark crusaders","color":["b4976e","96703a"],"nocutie":true},{"code":"berry","name":"Berry Punch","users":["berry"],"color":["a56eb4","823a96"]},{"code":"bigmac","name":"Big Macintosh","users":["bigmac","big mac"],"search":"bigmacintosh|big macintosh|big mcintosh|bigmcintosh","color":["b46e75","963a43"],"soundNotif":"bigmac\/notif","loadingText":"Saying eeyup..."},{"code":"bonbon","name":"Bon Bon","users":["bon bon","bonbon","bon-bon"],"search":"bon bon|bonbon","color":["6e89b4","3a5d96"]},{"code":"braeburn","name":"Braeburn","users":["braeburn","breaburn"],"search":"braeburn|breaburn","color":["b4a86e","96873a"],"icon16":"braeburn\/icon16_2.png"},{"code":"cadance","name":"Cadance","users":["cadance","cadence"],"search":"cadance|cadence|princess cadance|princess cadence","color":["b46e96","963a6e"]},{"code":"carrot","name":"Carrot Top","users":["golden","carrot"],"search":"carrot top|carrottop|golden harvest","menu_title":"Also known as Golden Harvest","color":["b2b46e","93963a"]},{"code":"celestia","name":"Celestia","users":["celestia","trollestia","molestia"],"search":"celestia|princess celestia","color":["b46e98","963a71"],"loadingText":"Raising the sun..."},{"code":"cheerilee","name":"Cheerilee","users":["cheerilee"],"color":["b46e96","963a6e"]},{"code":"colgate","name":"Colgate","users":["colgate","minuette"],"search":"colgate|minuette|minette","menu_title":"Also known as Minuette","color":["6e99b4","3a7396"],"soundNotif":"colgate\/notif","loadingText":"Brushing..."},{"code":"cloudchaser","name":"Cloudchaser","users":["cloudch","cloud ch"],"search":"cloudchaser|cloud chaser|stormwalker|storm walker","menu_title":"Also known as Stormwalker","color":["856eb4","593a96"]},{"code":"daring","name":"Daring Do","users":["daring"],"search":"daring do|daringdo","color":["b4a76e","96853a"]},{"code":"derpy","name":"Derpy Hooves","users":["derpy"],"color":["b4b46e","96963a"],"fbIndex_swf":"derpy\/fbIndex.swf","soundNotif":"derpy\/notif","icon16":"derpy\/icon16_2.png","loadingText":"Wondering what went wrong..."},{"code":"diamondtiara","name":"Diamond Tiara","users":["tiara"],"search":"diamond tiara|diamondtiara","color":["926eb4","6a3a96"],"stack":"villian"},{"code":"discord","name":"Discord","users":["discord"],"color":["b46f6e","963c3a"],"stack":"villian","loadingText":"CHOCOLATE RAIN","nocutie":true},{"code":"whooves","name":"Doctor Whooves","users":["whooves","time turn"],"search":"doctor whooves|doctor hooves|time turner","menu_title":"Also known as Time Turner","color":["b4a06e","967c3a"]},{"code":"fleur","name":"Fleur De Lis","users":["fleur","fluer"],"search":"fleur de lis|fluer de lis|fleur dis lee|fluer dis lee","color":["b46eb4","963a96"]},{"code":"flimflam","name":"Flim and Flam","users":["flim","flam"],"color":["b0b46e","91963a"],"loadingText":"Giving opportunities..."},{"code":"flitter","name":"Flitter","users":["Flitter"],"color":["846eb4","573a96"]},{"code":"gilda","name":"Gilda","users":["gilda"],"color":["b49a6e","96743a"],"stack":"villian","nocutie":true},{"code":"ironwill","name":"Iron Will","users":["iron will","ironwill"],"search":"ironwill|iron will","color":["6e84b4","3a5796"],"stack":"villian","nocutie":true},{"code":"sombra","name":"King Sombra","users":["sombra"],"color":["6eb46e","3a963a"],"stack":"villian","nocutie":true},{"code":"lightningdust","name":"Lightning Dust","users":["lightning"],"color":["6eb4ad","3a968d"]},{"code":"lotus","name":"Lotus","users":["lotus"],"search":"lotus|spa pony|spa ponies","color":["6ea0b4","3a7c96"]},{"code":"luna","name":"Luna","users":["luna"],"search":"luna|princess luna|nightmare moon|nightmaremoon","color":["6e7eb4","3a5096"],"soundNotif":"luna\/notif","loadingText":"Doubling the fun...","successText":"Huzzah!"},{"code":"lyra","name":"Lyra","users":["lyra"],"search":"lyra heartstrings","color":["6eb49d","3a9677"]},{"code":"nightmaremoon","name":"Nightmare Moon","users":["nightmare"],"search":"nightmare moon|nightmaremoon|luna|princess luna","color":["6e7fb4","3a5196"],"stack":"villian"},{"code":"nurseredheart","name":"Nurse Redheart","users":["nurse","redheart"],"color":["b46e76","963a45"]},{"code":"octavia","name":"Octavia","users":["octavia"],"color":["b4a76e","96853a"]},{"code":"pinkamena","name":"Pinkamena","users":["pinkamena"],"search":"pinkamena diane pie","color":["b46e8c","963a62"],"stack":"villian"},{"code":"chrysalis","name":"Queen Chrysalis","users":["chrysalis"],"search":"queen chrysalis|changeling","color":["6ea2b4","3a7f96"],"stack":"chrysalis","loadingText":"Feeding...","nocutie":true},{"code":"roidrage","name":"Roid Rage","users":["snowflake","roid","rage"],"search":"snowflake|roidrage|roid rage","menu_title":"Also known as Snowflake","color":["b4ae6e","968e3a"],"soundNotif":"_sound\/roidrage_yeah","successText":"YEAH!"},{"code":"rose","name":"Rose","users":["rose"],"search":"roseluck","menu_title":"Also known as Roseluck","color":["b46e8c","963a62"]},{"code":"scootaloo","name":"Scootaloo","users":["scootaloo"],"search":"scootaloo|cmc|cutie mark crusaders|chicken","color":["b4996e","96733a"],"loadingText":"Getting her cutie mark...","nocutie":true},{"code":"shiningarmor","name":"Shining Armor","users":["shining armor"],"search":"shining armor|shiningarmor","color":["6e7bb4","3a4b96"]},{"code":"silverspoon","name":"Silver Spoon","users":["spoon"],"search":"silver spoon|silverspoon","color":["6e97b4","3a7096"],"stack":"villian"},{"code":"soarin","name":"Soarin'","users":["soarin"],"search":"soarin'|wonderbolts","color":["6e9db4","3a7796"]},{"code":"spike","name":"Spike","users":["spike"],"color":["a26eb4","7f3a96"],"nocutie":true},{"code":"spitfire","name":"Spitfire","users":["spitfire"],"search":"spitfire|wonderbolts","color":["b4ae6e","968e3a"],"icon16":"spitfire\/icon16_2.png"},{"code":"sweetieb","name":"Sweetie Belle","users":["sweetieb","sweetie b"],"search":"sweetiebelle|sweetie belle|cmc|cutie mark crusaders","color":["a06eb4","7c3a96"],"soundNotif":"sweetieb\/notif","loadingText":"Getting her cutie mark...","nocutie":true},{"code":"vinyl","name":"Vinyl Scratch","users":["vinyl","vinyx","dj p"],"search":"vinyl scratch|dj pon3|dj-pon3|dj pon 3|dj pon-3","menu_title":"Also known as DJ Pon-3","color":["6ea9b4","3a8896"],"soundNotif":"vinyl\/notif","loadingText":"Wubbing..."},{"code":"thunderlane","name":"Thunderlane","users":["thunder"],"search":"thunderlane|thunder lane","color":["6eb4b4","3a9696"]},{"code":"zecora","name":"Zecora","users":["zecora"],"color":["b4af6e","96903a"]},{"code":"blank","name":"(Blank)","color":["b46e6e","963a3a"],"hidden":true,"nocutie":true},{"code":"bloomberg","name":"Bloomberg","color":["9fb46e","7a963a"],"hidden":true,"nocutie":true},{"code":"mono","name":"Mono","color":["b46e6e","963a3a"],"stack":"mono","hidden":true},{"code":"taugeh","name":"Taugeh","color":["b4b46e","96963a"],"hidden":true,"nocutie":true}];
+       var LANG = {"af_ZA":{"sniff_comment_tooltip_like":"Hou van hierdie opmerking","sniff_comment_tooltip_unlike":"Hou nie meer van hierdie opmerking nie"},"ar_AR":{"sniff_comment_tooltip_like":"\u0627\u0644\u0625\u0639\u062c\u0627\u0628 \u0628\u0627\u0644\u062a\u0639\u0644\u064a\u0642","sniff_comment_tooltip_unlike":"\u0625\u0644\u063a\u0627\u0621 \u0625\u0639\u062c\u0627\u0628\u064a \u0628\u0647\u0630\u0627 \u0627\u0644\u062a\u0639\u0644\u064a\u0642"},"az_AZ":{"sniff_comment_tooltip_like":"Bu r\u0259yi b\u0259y\u0259n","sniff_comment_tooltip_unlike":"Bu \u015f\u0259rhi b\u0259y\u0259nm\u0259"},"be_BY":{"sniff_comment_tooltip_like":"\u041f\u0430\u0434\u0430\u0431\u0430\u0435\u0446\u0446\u0430","sniff_comment_tooltip_unlike":"\u041c\u043d\u0435 \u0431\u043e\u043b\u044c\u0448 \u043d\u0435 \u043f\u0430\u0434\u0430\u0431\u0430\u0435\u0446\u0446\u0430 \u0433\u044d\u0442\u044b \u043a\u0430\u043c\u044d\u043d\u0442\u0430\u0440"},"bg_BG":{"sniff_comment_tooltip_like":"\u0425\u0430\u0440\u0435\u0441\u0432\u0430\u043c \u0442\u043e\u0437\u0438 \u043a\u043e\u043c\u0435\u043d\u0442\u0430\u0440","sniff_comment_tooltip_unlike":"\u0412\u0435\u0447\u0435 \u043d\u0435 \u0445\u0430\u0440\u0435\u0441\u0432\u0430\u043c"},"bn_IN":{"sniff_comment_tooltip_like":"\u09ae\u09a8\u09cd\u09a4\u09ac\u09cd\u09af\u099f\u09bf \u09ad\u09be\u09b2\u09cb \u09b2\u09c7\u0997\u09c7\u099b\u09c7","sniff_comment_tooltip_unlike":"\u09ad\u09be\u09b2\u09cb \u09b2\u09be\u0997\u09c7\u09a8\u09bf"},"bs_BA":{"sniff_comment_tooltip_like":"Svi\u0111a mi se ovaj komentar","sniff_comment_tooltip_unlike":"Ne svi\u0111a mi se komentar"},"ca_ES":{"sniff_comment_tooltip_like":"M'agrada aquest comentari","sniff_comment_tooltip_unlike":"Ja no m'agrada aquest comentari."},"cs_CZ":{"sniff_comment_tooltip_like":"Tento koment\u00e1\u0159 se mi l\u00edb\u00ed.","sniff_comment_tooltip_unlike":"Koment\u00e1\u0159 se mi u\u017e nel\u00edb\u00ed","close":"Zav\u0159\u00edt"},"cy_GB":{"sniff_comment_tooltip_like":"Hoffi'r sylw hwn","sniff_comment_tooltip_unlike":"Peidio hoffi'r sylw hwn"},"da_DK":{"fb_composer_lessons":"Hvilke lektioner i venskab har du l\u00e6rt idag?","sniff_comment_tooltip_like":"Tilkendegiv, at du synes godt om denne kommentar","sniff_comment_tooltip_unlike":"Synes ikke godt om denne kommentar l\u00e6ngere","close":"Luk"},"de_DE":{"fb_composer_lessons":"Welche Lektionen \u00fcber Freundschaft hast Du heute gelernt?","sniff_comment_tooltip_like":"Dieser Kommentar gef\u00e4llt mir","sniff_comment_tooltip_unlike":"Dieser Kommentar gef\u00e4llt mir nicht mehr","close":"Schlie\u00dfen"},"el_GR":{"sniff_comment_tooltip_like":"\u039c\u03bf\u03c5 \u03b1\u03c1\u03ad\u03c3\u03b5\u03b9 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03c3\u03c7\u03cc\u03bb\u03b9\u03bf","sniff_comment_tooltip_unlike":"\"\u0394\u03b5\u03bd \u03bc\u03bf\u03c5 \u03b1\u03c1\u03ad\u03c3\u03b5\u03b9!\" \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03c3\u03c7\u03cc\u03bb\u03b9\u03bf"},"en_PI":{"sniff_comment_tooltip_like":"This comment be pleasin","sniff_comment_tooltip_unlike":"Care not fer such trifles"},"en_US":{"fb_composer_lessons":"What lessons in friendship have you learned today?","fb_comment_box":"Write a friendship letter...","fb_search_box":"Search for ponies, places and things","fb_search_boxAlt":"Type to search for ponies, places and things","fb_composer_coolstory":"Write a cool story...","fb_composer_ponies":"Ponies!","fb_composer_ponies_caps":"PONIES!!!","fb_share_tooltip":"Remember! You gotta share... You gotta care...","sniff_comment_tooltip_like":"Like this comment","sniff_comment_tooltip_unlike":"Unlike this comment","sniff_fb_search_boxAlt":"Type to search","close":"Close","reloadNow":"Reload now","notNow":"Not now","invertSelection":"Invert selection","finish":"Finish","done":"Eeyup","options_title":"Ponyhoof Options","options_tabs_main":"General","options_tabs_background":"Background","options_tabs_sounds":"Sounds","options_tabs_extras":"Misc","options_tabs_advanced":"Debug","options_tabs_about":"About","settings_disable_runForNewUsers_explain":"If you enable this, Ponyhoof will not automatically run for other Facebook accounts that did not activate Ponyhoof yet. They can still open Ponyhoof Options to re-enable Ponyhoof if they wish to.","settings_extras_login_bg":"Use alternate background","settings_sounds":"Play sounds (e.g. notifications and dialogs)","settings_sounds_noNotification":"Play sounds (e.g. dialogs)","settings_extras_runForNewUsers_explain":"If you disable this, Ponyhoof will not automatically run for other Facebook accounts that did not activate Ponyhoof yet. They can still open Ponyhoof Options to re-enable Ponyhoof if they wish to.","settings_main_visitPage":"Visit the Ponyhoof page for news or contact us","settings_main_visitPageBusiness":"Visit the Ponyhoof page for news","settings_sounds_unavailable":"Notification sounds are not available on your browser. Please update your browser if possible.","updater_title":"Update Ponyhoof","costume_tooltip":"Limited to certain characters only"},"eo_EO":{"sniff_comment_tooltip_like":"\u015cati \u0109i tiun komenton","sniff_comment_tooltip_unlike":"Ne plu \u015dati \u0109i tiun komenton"},"es_ES":{"sniff_comment_tooltip_like":"Me gusta este comentario","sniff_comment_tooltip_unlike":"Ya no me gusta este comentario","close":"Cerrar"},"es_LA":{"fb_composer_lessons":"\u00bfQue has aprendido hoy sobre la amistad?","fb_comment_box":"Escribe un reporte de amistad...","sniff_comment_tooltip_like":"Me gusta este comentario","sniff_comment_tooltip_unlike":"Ya no me gusta este comentario","close":"Cerrar"},"et_EE":{"sniff_comment_tooltip_like":"Meeldib see kommentaar","sniff_comment_tooltip_unlike":"Ei meeldi enam"},"eu_ES":{"sniff_comment_tooltip_like":"Iruzkin hau atsegin dut","sniff_comment_tooltip_unlike":"Iruzkin hau desatsegin"},"fa_IR":{"sniff_comment_tooltip_like":"\u0627\u06cc\u0646 \u062f\u06cc\u062f\u06af\u0627\u0647 \u0631\u0627 \u0645\u06cc\u200c\u067e\u0633\u0646\u062f\u0645","sniff_comment_tooltip_unlike":"\u0627\u06cc\u0646 \u062f\u06cc\u062f\u06af\u0627\u0647 \u0631\u0627 \u0646\u067e\u0633\u0646\u062f\u06cc\u062f\u0645"},"fb_LT":{"fb_composer_lessons":"W|-|47 \u00a33550|\\|5 !|\\| |=|2!3|\\||)5|-|!|* |-|4\\\/3 '\/0|_| \u00a334|2|\\|3|) 70|)4'\/?","fb_comment_box":"W|2!73 4 |=|2!3|\\||)5|-|!|* \u00a33773|2...","fb_search_box":"S34|2(|-| |=0|2 |*0|\\|!35, |*\u00a34(35 4|\\||) 7|-|!|\\|95","fb_search_boxAlt":"T'\/|*3 70 534|2(|-| |=0|2 |*0|\\|!35, |*\u00a34(35 4|\\||) 7|-|!|\\|95","fb_composer_coolstory":"W|2!73 4 (00\u00a3 570|2'\/...","fb_composer_ponies":"P0|\\|!35!","fb_composer_ponies_caps":"PONIES!!!","fb_share_tooltip":"R3|\\\/|3|\\\/|83|2! Y0|_| 90774 5|-|4|23... Y0|_| 90774 (4|23...","close":"Alt+F4","reloadNow":"R3\u00a304|) |\\|0vv","notNow":"N07 |\\|0vv","invertSelection":"I|\\|\\\/3|27 53\u00a33(7!0|\\|","finish":"F!|\\|!5|-|","done":"E3'\/|_||*","options_title":"P0|\\|'\/|-|00|= O|*7!0|\\|5","options_tabs_main":"G3|\\|3|24\u00a3","options_tabs_background":"B4(k9|20|_||\\||)","options_tabs_sounds":"S0|_||\\||)5","options_tabs_extras":"M!5(","options_tabs_advanced":"D38|_|9","options_tabs_about":"A80|_|7","settings_disable_runForNewUsers_explain":"I|= '\/0|_| 3|\\|48\u00a33 7|-|!5, P0|\\|'\/|-|00|= vv!\u00a3\u00a3 |\\|07 4|_|70|\\\/|47!(4\u00a3\u00a3'\/ |2|_||\\| |=0|2 07|-|3|2 F4(3800k 4((0|_||\\|75 7|-|47 |)!|) |\\|07 4(7!\\\/473 P0|\\|'\/|-|00|= '\/37. T|-|3'\/ (4|\\| 57!\u00a3\u00a3 0|*3|\\| P0|\\|'\/|-|00|= O|*7!0|\\|5 70 |23-3|\\|48\u00a33 P0|\\|'\/|-|00|= !|= 7|-|3'\/ vv!5|-| 70.","settings_extras_login_bg":"U53 4\u00a373|2|\\|473 84(k9|20|_||\\||)","settings_sounds":"P\u00a34'\/ 50|_||\\||)5 (3.9. |\\|07!|=!(47!0|\\|5 4|\\||) |)!4\u00a3095)","settings_sounds_noNotification":"P\u00a34'\/ 50|_||\\||)5 (3.9. |)!4\u00a3095)","settings_extras_runForNewUsers_explain":"I|= '\/0|_| |)!548\u00a33 7|-|!5, P0|\\|'\/|-|00|= vv!\u00a3\u00a3 |\\|07 4|_|70|\\\/|47!(4\u00a3\u00a3'\/ |2|_||\\| |=0|2 07|-|3|2 F4(3800k 4((0|_||\\|75 7|-|47 |)!|) |\\|07 4(7!\\\/473 P0|\\|'\/|-|00|= '\/37. T|-|3'\/ (4|\\| 57!\u00a3\u00a3 0|*3|\\| P0|\\|'\/|-|00|= O|*7!0|\\|5 70 |23-3|\\|48\u00a33 P0|\\|'\/|-|00|= !|= 7|-|3'\/ vv!5|-| 70.","settings_main_visitPage":"V!5!7 7|-|3 P0|\\|'\/|-|00|= |*493 |=0|2 |\\|3vv5 0|2 (0|\\|74(7 |_|5","settings_main_visitPageBusiness":"V!5!7 7|-|3 P0|\\|'\/|-|00|= |*493 |=0|2 |\\|3vv5","settings_sounds_unavailable":"N07!|=!(47!0|\\| 50|_||\\||)5 4|23 |\\|07 4\\\/4!\u00a348\u00a33 0|\\| '\/0|_||2 8|20vv53|2. P\u00a33453 |_||*|)473 '\/0|_||2 8|20vv53|2 !|= |*055!8\u00a33.","updater_title":"U|*|)473 P0|\\|'\/|-|00|=","costume_tooltip":"L!|\\\/|!73|) 70 (3|274!|\\| (|-|4|24(73|25 0|\\|\u00a3'\/","sniff_comment_tooltip_like":"<3"},"fi_FI":{"fb_composer_lessons":"Mit\u00e4 oppeja yst\u00e4vyydest\u00e4 olet oppinut t\u00e4n\u00e4\u00e4n?","sniff_comment_tooltip_like":"Tykk\u00e4\u00e4 t\u00e4st\u00e4 kommentista","sniff_comment_tooltip_unlike":"En tykk\u00e4\u00e4k\u00e4\u00e4n","close":"Sulje"},"fo_FO":{"sniff_comment_tooltip_like":"M\u00e6r d\u00e1mar vi\u00f0merkingina"},"fr_CA":{"fb_composer_lessons":"Quelles le\u00e7ons sur l'amiti\u00e9 avez-vous appris aujourd'hui ?","sniff_comment_tooltip_like":"J\u2019aime ce commentaire","sniff_comment_tooltip_unlike":"Je n\u2019aime plus ce commentaire","close":"Fermer"},"fr_FR":{"fb_composer_lessons":"Quelles le\u00e7ons sur l'amiti\u00e9 avez-vous appris aujourd'hui ?","sniff_comment_tooltip_like":"J\u2019aime ce commentaire","sniff_comment_tooltip_unlike":"Je n\u2019aime plus ce commentaire","close":"Fermer"},"fy_NL":{"sniff_comment_tooltip_like":"Leuke reaksje","sniff_comment_tooltip_unlike":"Ik mei net mear oer dit berjocht"},"ga_IE":{"fb_composer_lessons":"cad ceachtanna i cairdeas ad'fhoghlaim t\u00fa inniu?","sniff_comment_tooltip_like":"L\u00e9irigh gur maith leat an tr\u00e1cht seo","sniff_comment_tooltip_unlike":"N\u00ed maith liom an tr\u00e1cht seo","close":"D\u00fan"},"gl_ES":{"sniff_comment_tooltip_like":"G\u00fastame este comentario","sniff_comment_tooltip_unlike":"Xa non me gusta"},"he_IL":{"fb_composer_lessons":"\u05d0\u05d9\u05dc\u05d5 \u05dc\u05e7\u05d7\u05d9\u05dd \u05d1\u05d9\u05d3\u05d9\u05d3\u05d5\u05ea \u05dc\u05de\u05d3\u05ea \u05d4\u05d9\u05d5\u05dd?","sniff_comment_tooltip_like":"\u05d0\u05d5\u05d4\u05d1 \u05d0\u05ea \u05d4\u05ea\u05d2\u05d5\u05d1\u05d4","sniff_comment_tooltip_unlike":"\u05dc\u05d0 \u05d0\u05d4\u05d1\/\u05d4 \u05d0\u05ea \u05ea\u05d2\u05d5\u05d1\u05d4 \u05d6\u05d5","close":"\u05e1\u05d2\u05d5\u05e8"},"hi_IN":{"sniff_comment_tooltip_like":"\u091f\u093f\u092a\u094d\u092a\u0923\u0940 \u092a\u0938\u0902\u0926 \u0915\u0930\u0947\u0902","sniff_comment_tooltip_unlike":"\u0907\u0938 \u091f\u093f\u092a\u094d\u092a\u0923\u0940 \u0915\u094b \u0928\u093e\u092a\u0938\u0902\u0926 \u0915\u0930\u0947\u0902"},"hr_HR":{"sniff_comment_tooltip_like":"Svi\u0111a mi se ovaj komentar","sniff_comment_tooltip_unlike":"Ne svi\u0111a mi se"},"hu_HU":{"fb_composer_lessons":"Mit tanult\u00e1l ma a bar\u00e1ts\u00e1gr\u00f3l?","sniff_comment_tooltip_like":"Tetszik a bejegyz\u00e9s.","sniff_comment_tooltip_unlike":"M\u00e9gsem tetszik","close":"Bez\u00e1r\u00e1s"},"hy_AM":{"sniff_comment_tooltip_like":"\u0540\u0561\u057e\u0561\u0576\u0565\u056c \u0561\u0575\u057d \u0574\u0565\u056f\u0576\u0561\u0562\u0561\u0576\u0578\u0582\u0569\u0575\u0578\u0582\u0576\u0568","sniff_comment_tooltip_unlike":"\u0549\u0570\u0561\u057e\u0561\u0576\u0565\u056c \u0561\u0575\u057d \u0574\u0565\u056f\u0576\u0561\u0562\u0561\u0576\u0578\u0582\u0569\u0575\u0578\u0582\u0576\u0568"},"id_ID":{"fb_composer_lessons":"Apa pelajaran yang kalian dapat tentang persahabatan hari ini?","sniff_comment_tooltip_like":"Suka komentar ini","sniff_comment_tooltip_unlike":"Tidak suka komentar ini","close":"Tutup"},"is_IS":{"sniff_comment_tooltip_like":"L\u00edkar vi\u00f0 \u00feessi umm\u00e6li","sniff_comment_tooltip_unlike":"L\u00edka ekki vi\u00f0 \u00feessi umm\u00e6li"},"it_IT":{"fb_composer_lessons":"Che cosa hai imparato oggi sull'amicizia?","sniff_comment_tooltip_like":"Di' che ti piace questo commento","sniff_comment_tooltip_unlike":"Di' che non ti piace pi\u00f9 questo commento","close":"Chiudi"},"ja_JP":{"fb_composer_lessons":"\u4eca\u65e5\u306f\u53cb\u60c5\u306b\u3069\u306e\u3088\u3046\u306a\u6559\u8a13\u3092\u5b66\u3073\u307e\u3057\u305f\u304b\uff1f","sniff_comment_tooltip_like":"\u3053\u306e\u30b3\u30e1\u30f3\u30c8\u306f\u3044\u3044\u306d\uff01","sniff_comment_tooltip_unlike":"\u3044\u3044\u306d\uff01\u3092\u53d6\u308a\u6d88\u3059","close":"\u9589\u3058\u308b"},"ka_GE":{"sniff_comment_tooltip_like":"\u10db\u10dd\u10d8\u10ec\u10dd\u10dc\u10d4 \u10d4\u10e1 \u10d9\u10dd\u10db\u10d4\u10dc\u10e2\u10d0\u10e0\u10d8","sniff_comment_tooltip_unlike":"\u10d0\u10e6\u10d0\u10e0 \u10db\u10dd\u10db\u10ec\u10dd\u10dc\u10e1 \u10d4\u10e1 \u10d9\u10dd\u10db\u10d4\u10dc\u10e2\u10d0\u10e0\u10d8"},"km_KH":{"sniff_comment_tooltip_like":"\u1785\u17bc\u179b\u1785\u17b7\u178f\u17d2\u178f \u179c\u17b7\u1785\u17b6\u179a \u1793\u17c1\u17c7","sniff_comment_tooltip_unlike":"\u179b\u17c2\u1784\u1785\u17bc\u179b\u1785\u17b7\u178f\u17d2\u178f\u1798\u178f\u17b7\u1793\u17c1\u17c7"},"ko_KR":{"fb_composer_lessons":"\uc6b0\uc815\uc5d0 \uad00\ud574\uc11c \uc624\ub298 \ubb34\uc5c7\uc744 \ubc30\uc6e0\ub098\uc694?","sniff_comment_tooltip_like":"\uc88b\uc544\uc694","sniff_comment_tooltip_unlike":"\uc88b\uc544\uc694 \ucde8\uc18c","close":"\ub2eb\uae30"},"ku_TR":{"sniff_comment_tooltip_like":"V\u00ea \u015f\u00eerovey\u00ea biecib\u00eene","sniff_comment_tooltip_unlike":"V\u00ea \u015firovey\u00ea neecib\u00eene"},"la_VA":[],"lt_LT":{"fb_composer_lessons":"Kokias \u017einias apie draugyst\u0119 i\u0161mokote \u0161iandien?","sniff_comment_tooltip_like":"Patinka \u0161is komentaras","sniff_comment_tooltip_unlike":"Nepatinka \u0161is komentaras","close":"U\u017edaryti"},"lv_LV":{"sniff_comment_tooltip_unlike":"Koment\u0101rs vairs nepat\u012bk"},"mk_MK":{"fb_composer_lessons":"\u041a\u043e\u0438 \u043b\u0435\u043a\u0446\u0438\u0438 \u0437\u0430 \u043f\u0440\u0438\u0458\u0430\u0442\u0435\u043b\u0441\u0442\u0432\u043e\u0442\u043e \u0434\u043e\u0437\u043d\u0430\u0432\u0442\u0435 \u0434\u0435\u043d\u0435\u0441?","sniff_comment_tooltip_like":"\u041c\u0438 \u0441\u0435 \u0434\u043e\u043f\u0430\u0453\u0430 \u043a\u043e\u043c\u0435\u043d\u0442\u0430\u0440\u043e\u0432","sniff_comment_tooltip_unlike":"\u041d\u0435 \u043c\u0438 \u0441\u0435 \u0434\u043e\u043f\u0430\u0453\u0430","close":"\u0417\u0430\u0442\u0432\u043e\u0440\u0438"},"ml_IN":{"sniff_comment_tooltip_like":"\u0d08 \u0d05\u0d2d\u0d3f\u0d2a\u0d4d\u0d30\u0d3e\u0d2f\u0d02 \u0d07\u0d37\u0d4d\u0d1f\u0d2e\u0d3e\u0d2f\u0d3f"},"ms_MY":{"fb_composer_lessons":"Apakah pelajaran tentang persahabatan yang telah anda pelajari hari ini?","fb_comment_box":"Tuliskan surat persahabatan...","fb_composer_ponies":"Kuda!","fb_composer_ponies_caps":"KUDA!!!","sniff_comment_tooltip_like":"Suka komen ini","sniff_comment_tooltip_unlike":"Tidak suka komen ini","close":"Tutup","options_title":"Opsyen Ponyhoof"},"nb_NO":{"sniff_comment_tooltip_like":"Lik denne kommentaren"},"ne_NP":[],"nl_NL":{"fb_composer_lessons":"Wat heb je vandaag geleerd over vriendschap?","sniff_comment_tooltip_like":"Leuke reactie","sniff_comment_tooltip_unlike":"Reactie niet meer leuk","close":"Sluiten"},"pa_IN":{"sniff_comment_tooltip_like":"\u0a07\u0a39 \u0a1f\u0a3f\u0a71\u0a2a\u0a23\u0a40 \u0a2a\u0a38\u0a70\u0a26 \u0a15\u0a30\u0a4b","sniff_comment_tooltip_unlike":"\u0a07\u0a39 \u0a1f\u0a3f\u0a71\u0a2a\u0a23\u0a40 \u0a28\u0a3e\u0a2a\u0a38\u0a70\u0a26 \u0a15\u0a30\u0a4b|"},"pl_PL":{"fb_composer_lessons":"Czego si\u0119 dzisiaj nauczy\u0142e\u015b o przyja\u017ani?","sniff_comment_tooltip_like":"Polub komentarz","sniff_comment_tooltip_unlike":"Nie lubi\u0119 tego komentarza","close":"Zamknij"},"ps_AF":[],"pt_BR":{"fb_composer_lessons":"Quais li\u00e7\u00f5es sobre amizade voc\u00ea aprendeu hoje?","sniff_comment_tooltip_like":"Curtir este coment\u00e1rio","sniff_comment_tooltip_unlike":"Curtir (desfazer) este coment\u00e1rio","close":"Fechar"},"pt_PT":{"fb_composer_lessons":"Que li\u00e7\u00f5es de amizade voc\u00ea aprendeu hoje?","sniff_comment_tooltip_like":"Gosto deste coment\u00e1rio","sniff_comment_tooltip_unlike":"N\u00e3o gosto deste coment\u00e1rio","close":"Fechar"},"ro_RO":{"fb_composer_lessons":"Ce lec\u0163ii despre prietenie ai \u00eenv\u0103\u0163at ast\u0103zi?","sniff_comment_tooltip_like":"\u00cemi place acest comentariu","sniff_comment_tooltip_unlike":"Nu-mi mai place acest comentariu","close":"\u00cenchide"},"ru_RU":{"fb_composer_lessons":"\u041a\u0430\u043a\u0438\u0435 \u0443\u0440\u043e\u043a\u0438 \u0434\u0440\u0443\u0436\u0431\u044b \u0432\u044b \u0432\u044b\u0443\u0447\u0438\u043b\u0438 \u0441\u0435\u0433\u043e\u0434\u043d\u044f?","sniff_comment_tooltip_like":"\u041c\u043d\u0435 \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439","sniff_comment_tooltip_unlike":"\u041d\u0435 \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f","close":"\u0417\u0430\u043a\u0440\u044b\u0442\u044c"},"sk_SK":{"fb_composer_lessons":"Ak\u00e9 lekcie priate\u013estva si sa nau\u010dil dnes?","sniff_comment_tooltip_like":"P\u00e1\u010di sa mi tento koment\u00e1r","sniff_comment_tooltip_unlike":"Tento koment\u00e1r sa mi u\u017e nep\u00e1\u010di","close":"Zavrie\u0165"},"sl_SI":{"fb_composer_lessons":"Kaj si se o prijateljstvu nau\u010dil\/-a danes?","sniff_comment_tooltip_like":"V\u0161e\u010d mi je","sniff_comment_tooltip_unlike":"Ta komentar mi ni v\u0161e\u010d","close":"Zapri"},"sq_AL":{"sniff_comment_tooltip_like":"P\u00eblqeje k\u00ebt\u00eb koment","sniff_comment_tooltip_unlike":"Mos p\u00eblqe k\u00ebt\u00eb koment"},"sr_RS":{"sniff_comment_tooltip_like":"\u0421\u0432\u0438\u0452\u0430 \u043c\u0438 \u0441\u0435 \u043a\u043e\u043c\u0435\u043d\u0442\u0430\u0440.","sniff_comment_tooltip_unlike":"\u041d\u0435 \u0441\u0432\u0438\u0452\u0430 \u043c\u0438 \u0441\u0435 \u043e\u0432\u0430\u0458 \u043a\u043e\u043c\u0435\u043d\u0442\u0430\u0440","close":"\u0417\u0430\u0442\u0432\u043e\u0440\u0438"},"sv_SE":{"fb_composer_lessons":"Vilka l\u00e4rdomar i v\u00e4nskap har du l\u00e4rt dig idag?","sniff_comment_tooltip_like":"Gilla den h\u00e4r kommentaren","sniff_comment_tooltip_unlike":"Sluta gilla den h\u00e4r kommentaren","close":"St\u00e4ng"},"sw_KE":[],"ta_IN":{"sniff_comment_tooltip_like":"\u0b87\u0b95\u0bcd\u0b95\u0bb0\u0bc1\u0ba4\u0bcd\u0ba4\u0bbf\u0ba9\u0bc8 \u0bb5\u0bbf\u0bb0\u0bc1\u0bae\u0bcd\u0baa\u0bc1\u0b95\u0bbf\u0bb1\u0bc7\u0ba9\u0bcd","sniff_comment_tooltip_unlike":"\u0b87\u0b95\u0bcd\u0b95\u0bb0\u0bc1\u0ba4\u0bcd\u0ba4\u0bbf\u0ba9\u0bc8 \u0bb5\u0bbf\u0bb0\u0bc1\u0bae\u0bcd\u0baa\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8","close":"\u0e1b\u0e34\u0e14"},"te_IN":{"sniff_comment_tooltip_unlike":"\u0c35\u0c4d\u0c2f\u0c3e\u0c16\u0c4d\u0c2f \u0c28\u0c1a\u0c4d\u0c1a\u0c32\u0c47\u0c26\u0c41"},"th_TH":{"sniff_comment_tooltip_like":"\u0e16\u0e39\u0e01\u0e43\u0e08\u0e04\u0e27\u0e32\u0e21\u0e04\u0e34\u0e14\u0e40\u0e2b\u0e47\u0e19\u0e19\u0e35\u0e49","sniff_comment_tooltip_unlike":"\u0e40\u0e25\u0e34\u0e01\u0e16\u0e39\u0e01\u0e43\u0e08\u0e04\u0e27\u0e32\u0e21\u0e04\u0e34\u0e14\u0e40\u0e2b\u0e47\u0e19\u0e19\u0e35\u0e49"},"tl_PH":{"fb_composer_lessons":"Anong mga aralin sa pagkakaibigan ang natutunan mo ngayon?","sniff_comment_tooltip_like":"Gustuhin ang komentong ito","sniff_comment_tooltip_unlike":"Ayawan ang komentong ito","close":"Isara"},"tr_TR":{"fb_composer_lessons":"Bug\u00fcn arkada\u015fl\u0131kla ilgili neler \u00f6\u011frendin?","sniff_comment_tooltip_like":"Bu yorumu be\u011fen","sniff_comment_tooltip_unlike":"Bu yorumu be\u011fenmekten vazge\u00e7","close":"Kapat"},"uk_UA":{"fb_composer_lessons":"\u042f\u043a\u0456 \u0443\u0440\u043e\u043a\u0438 \u0432 \u0434\u0440\u0443\u0436\u0431\u0456 \u0432\u0438 \u0434\u0456\u0437\u043d\u0430\u043b\u0438\u0441\u044f \u0441\u044c\u043e\u0433\u043e\u0434\u043d\u0456?","sniff_comment_tooltip_like":"\u0412\u043f\u043e\u0434\u043e\u0431\u0430\u0442\u0438 \u043a\u043e\u043c\u0435\u043d\u0442\u0430\u0440","sniff_comment_tooltip_unlike":"\u041d\u0435 \u043f\u043e\u0434\u043e\u0431\u0430\u0454\u0442\u044c\u0441\u044f \u043a\u043e\u043c\u0435\u043d\u0442\u0430\u0440","close":"\u0417\u0430\u043a\u0440\u0438\u0442\u0438"},"vi_VN":{"sniff_comment_tooltip_like":"Th\u00edch b\u00ecnh lu\u1eadn n\u00e0y","sniff_comment_tooltip_unlike":"B\u1ecf th\u00edch b\u00ecnh lu\u1eadn n\u00e0y n\u1eefa"},"zh_CN":{"sniff_comment_tooltip_like":"\u559c\u6b22\u6b64\u8bc4\u8bba","sniff_comment_tooltip_unlike":"\u4e0d\u559c\u6b22\u6b64\u8bc4\u8bba","close":"\u5173\u95ed"},"zh_HK":{"sniff_comment_tooltip_like":"\u5c0d\u9019\u5247\u7559\u8a00\u8b9a\u597d","sniff_comment_tooltip_unlike":"\u53d6\u6d88\u8b9a\u597d"},"zh_TW":{"fb_composer_lessons":"\u4f60\u4eca\u5929\u5f9e\u53cb\u60c5\u88e1\u9762\u5b78\u5230\u4e86\u4ec0\u9ebc\uff1f","sniff_comment_tooltip_like":"\u8aaa\u9019\u5247\u7559\u8a00\u8b9a","sniff_comment_tooltip_unlike":"\u6536\u56de\u8b9a","close":"\u95dc\u9589"}};
+       var SOUNDS = {"AUTO":{"name":"(Auto-select)","seperator":true},"_sound\/defaultNotification":{"name":"Casting magic","title":"This will also be used for characters that do not have their own notification sound"},"trixie\/notif":{"name":"Trixie - Watch in awe!"},"dash\/notif":{"name":"Rainbow Dash - Aww yeah!"},"pinkie\/notif2":{"name":"Pinkie Pie - *rimshot*"},"applej\/notif":{"name":"Applejack - Yeehaw!"},"flutter\/notif2":{"name":"Fluttershy - Yay!"},"rarity\/notif":{"name":"Rarity - This is whining!"},"applebloom\/notif":{"name":"Apple Bloom - That'll be four bits"},"bigmac\/notif":{"name":"Big Macintosh - Eeyup"},"colgate\/notif":{"name":"Colgate - Why you don't brush your teeth"},"derpy\/notif":{"name":"Derpy Hooves - I brought you a letter!"},"luna\/notif":{"name":"Luna - Huzzah!"},"_sound\/roidrage_yeah":{"name":"Roid Rage\/Snowflake - YEAH!"},"sweetieb\/notif":{"name":"Sweetie Belle - Oh come on!"},"vinyl\/notif":{"name":"Vinyl Scratch - Yeah!","seperator":true},"twilight\/notif":{"name":"Twilight Sparkle - It's not over yet!"},"_sound\/grin2":{"name":"Fluttershy - *squee*"},"_sound\/dash_dundundun":{"name":"Rainbow Dash - DUN DUN DUN"},"_sound\/dash_egghead":{"name":"Rainbow Dash - I'm an egghead"},"_sound\/pinkie_boring":{"name":"Pinkie Pie - Booooring!"},"_sound\/pinkie_gasp":{"name":"Pinkie Pie - *gasp*"},"_sound\/pinkie_partycannon":{"name":"Pinkie Pie - Party cannon"},"_sound\/pinkie_pinkiepiestyle":{"name":"Pinkie Pie - Pinkie Pie style!"},"_sound\/flutter_woohoo":{"name":"Fluttershy - Woo hoo"},"_sound\/rarity_dumbrock":{"name":"Rarity - Dumb rock!"},"_sound\/rarity_itison":{"name":"Rarity - Oh. It. Is. On!"},"_sound\/rarity_wahaha":{"name":"Rarity - Wahaha!"},"_sound\/octavia_nevermess":{"name":"Octavia - Never mess with Octavia"},"_sound\/vinyl_awyeah":{"name":"Vinyl Scratch - Aw yeah!"},"_sound\/vinyl_mybasscannon":{"name":"Vinyl Scratch - My bass cannon!"},"_sound\/vinyl_wubwubwub":{"name":"Vinyl Scratch - Wubwubwub"},"_sound\/vinyl_wubedubdub":{"name":"Vinyl Scratch - Wubedubdub"},"_sound\/vinyl_yougotwubs":{"name":"Vinyl Scratch - You got wubs"}};
        var SOUNDS_CHAT = {"_sound\/grin2":{"name":"Fluttershy - *squee*"},"_sound\/chat_boing":{"name":"Boing"}};
        var SOUNDS_CHAT = {"_sound\/grin2":{"name":"Fluttershy - *squee*"},"_sound\/chat_boing":{"name":"Boing"}};
-       var HTMLCLASS_SETTINGS = ['login_bg', 'show_messages_other', 'disable_animation', 'pinkieproof', 'disable_emoticons'];
+       var HTMLCLASS_SETTINGS = ['login_bg', 'disable_animation', 'pinkieproof', 'disable_emoticons'];
        var DEFAULTSETTINGS = {
                'theme':CURRENTPONY,
                'login_bg':false, 'customBg':null, //'allowLoginScreen':true,
                'sounds':false, 'soundsFile':'AUTO', 'soundsNotifTypeBlacklist':'', 'soundsVolume':1, 'chatSound':true, 'chatSoundFile':'_sound/grin2',
        var DEFAULTSETTINGS = {
                'theme':CURRENTPONY,
                'login_bg':false, 'customBg':null, //'allowLoginScreen':true,
                'sounds':false, 'soundsFile':'AUTO', 'soundsNotifTypeBlacklist':'', 'soundsVolume':1, 'chatSound':true, 'chatSoundFile':'_sound/grin2',
-               'show_messages_other':true, 'pinkieproof':false,  'forceEnglish':false, 'disable_emoticons':false, 'randomPonies':'', 'costume': '', //'commentBrohoofed':true,
+               //'show_messages_other':true,
+               'pinkieproof':false,  'forceEnglish':false, 'disable_emoticons':false, 'randomPonies':'', 'costume': '', //'commentBrohoofed':true,
                'disable_animation':false, 'disableDomNodeInserted':false, //'disableCommentBrohoofed':false,
                'disable_animation':false, 'disableDomNodeInserted':false, //'disableCommentBrohoofed':false,
-               'customcss':'', 'debug_dominserted_console':false, 'debug_slow_load':false, 'debug_disablelog':false, 'debug_noMutationObserver':false, 'debug_mutationDebug':false, 'debug_exposed':false, 'debug_betaFacebookLinks':false, //'debug_mutationObserver':false,
+               'customcss':'', 'debug_dominserted_console':false, 'debug_slow_load':false, 'debug_disablelog':false, 'debug_noMutationObserver':false, 'debug_mutationDebug':false, 'debug_exposed':false, 'debug_betaFacebookLinks':false //,'debug_mutationObserver':false,
                //'lastVersion':''
 
                //'survivedTheNight', 'chatSound1401', 'randomSettingMigrated'
        };
                //'lastVersion':''
 
                //'survivedTheNight', 'chatSound1401', 'randomSettingMigrated'
        };
-       var STACKS_LANG = [{"stack":"pony","people":"ponies","person":"pony","friend":"pal","friends":"pals","friend_logic":"pal","friends_logic":"pals","like":"brohoof","likes":"brohoofs","unlike":"unbrohoof","like_past":"brohoof","likes_past":"brohoofs","liked":"brohoof'd","liked_button":"brohoof'd","liking":"brohoofing"},{"stack":"chrysalis","people":"changelings","person":"changeling","friend":"prey","friends":"prey","friend_logic":"changeling","friends_logic":"changelings","like":"feed","likes":"feeds","unlike":"unfeed","like_past":"fed on","likes_past":"fed on","liked":"fed on","liked_button":"fed","liking":"feeding"},{"stack":"villian","people":"ponies","person":"changeling","friend":"pal","friends":"pals","friend_logic":"pal","friends_logic":"pals","like":"brohoof","likes":"brohoofs","unlike":"unbrohoof","like_past":"brohoof","likes_past":"brohoofs","liked":"brohoof'd","liked_button":"brohoof'd","liking":"brohoofing"}];
+       var STACKS_LANG = [{"stack":"pony","people":"ponies","person":"pony","friend":"pal","friends":"pals","friend_logic":"pal","friends_logic":"pals","like":"brohoof","likes":"brohoofs","unlike":"unbrohoof","like_past":"brohoof","likes_past":"brohoofs","liked":"brohoof'd","liked_button":"brohoof'd","liking":"brohoofing","findFriendship":"Find Friendship"},{"stack":"chrysalis","people":"changelings","person":"changeling","friend":"prey","friends":"prey","friend_logic":"changeling","friends_logic":"changelings","like":"feed","likes":"feeds","unlike":"unfeed","like_past":"fed on","likes_past":"fed on","liked":"fed on","liked_button":"fed","liking":"feeding","findFriendship":"Find Prey"},{"stack":"villian","people":"ponies","person":"pony","friend":"pal","friends":"pals","friend_logic":"pal","friends_logic":"pals","like":"brohoof","likes":"brohoofs","unlike":"unbrohoof","like_past":"brohoof","likes_past":"brohoofs","liked":"brohoof'd","liked_button":"brohoof'd","liking":"brohoofing","findFriendship":"Find Friendship"}];
        var CURRENTSTACK = STACKS_LANG[0];
        var COSTUMESX = {"winterwrapup":{"name":"Winter Wrap Up","characters":["twilight","dash","pinkie","applej","flutter","rarity","derpy"]},"nightmarenight":{"name":"Nightmare Night","characters":["twilight","dash","pinkie","applej","flutter","applebloom","bigmac","derpy","luna","scootaloo","spike","sweetieb","zecora"]},"hearthwarming":{"name":"Hearth's Warming","characters":["twilight","dash","pinkie","applej","flutter","rarity"]},"season3premiere":{"name":"Season 3 Premiere","characters":["twilight","rarity"]},"crystal":{"name":"Crystal Pony","characters":["twilight","dash","pinkie","applej","flutter","rarity","cadance"]},"wedding":{"name":"Canterlot Wedding","characters":["sweetieb"]},"coronation":{"name":"Princess Coronation Dresses","characters":["dash","pinkie","applej","flutter","rarity","cadance"]},"princess":{"name":"Princess Twilight Sparkle","characters":["twilight"]}};
        var SOUNDS_NOTIFTYPE = {
        var CURRENTSTACK = STACKS_LANG[0];
        var COSTUMESX = {"winterwrapup":{"name":"Winter Wrap Up","characters":["twilight","dash","pinkie","applej","flutter","rarity","derpy"]},"nightmarenight":{"name":"Nightmare Night","characters":["twilight","dash","pinkie","applej","flutter","applebloom","bigmac","derpy","luna","scootaloo","spike","sweetieb","zecora"]},"hearthwarming":{"name":"Hearth's Warming","characters":["twilight","dash","pinkie","applej","flutter","rarity"]},"season3premiere":{"name":"Season 3 Premiere","characters":["twilight","rarity"]},"crystal":{"name":"Crystal Pony","characters":["twilight","dash","pinkie","applej","flutter","rarity","cadance"]},"wedding":{"name":"Canterlot Wedding","characters":["sweetieb"]},"coronation":{"name":"Princess Coronation Dresses","characters":["dash","pinkie","applej","flutter","rarity","cadance"]},"princess":{"name":"Princess Twilight Sparkle","characters":["twilight"]}};
        var SOUNDS_NOTIFTYPE = {
@@ -1234,7 +1261,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                ,group_added_to_group: {name:"Herd invites from friends", type:"group_added_to_group"}
                ,plan_reminder: {name:"Adventure reminders", type:"plan_reminder"}
                ,follow_profile: {name:"New followers", type:"follow_profile"}
                ,group_added_to_group: {name:"Herd invites from friends", type:"group_added_to_group"}
                ,plan_reminder: {name:"Adventure reminders", type:"plan_reminder"}
                ,follow_profile: {name:"New followers", type:"follow_profile"}
-               ,photo_made_profile_pic: {name:"Made your pony pic his/her profile picture", type:"photo_made_profile_pic"}
+               //,photo_made_profile_pic: {name:"Made your pony pic his/her profile picture", type:"photo_made_profile_pic"}
                ,answers_answered: {name:"New answers on the Facebook Help Center", type:"answers_answered"}
 
                ,app_invite: {name:"Game/app requests", type:"app_invite"}
                ,answers_answered: {name:"New answers on the Facebook Help Center", type:"answers_answered"}
 
                ,app_invite: {name:"Game/app requests", type:"app_invite"}
@@ -1261,16 +1288,29 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
 
        // Chrome
                var chrome_sendMessage = function(message, callback) {
 
        // Chrome
                var chrome_sendMessage = function(message, callback) {
-                       if (chrome.extension.sendMessage) {
-                               chrome.extension.sendMessage(message, callback);
-                       } else {
-                               chrome.extension.sendRequest(message, callback);
+                       try {
+                               if (chrome.extension.sendMessage) {
+                                       chrome.extension.sendMessage(message, callback);
+                               } else {
+                                       chrome.extension.sendRequest(message, callback);
+                               }
+                       } catch (e) {
+                               if (e.toString().indexOf('Error: Error connecting to extension ') === 0) {
+                                       extUpdatedError(e.toString());
+                               }
+                               throw e;
                        }
                };
 
                var chrome_storageFallback = false;
                var chrome_getValue = function(name, callback) {
                        if (chrome.storage && !chrome_storageFallback) {
                        }
                };
 
                var chrome_storageFallback = false;
                var chrome_getValue = function(name, callback) {
                        if (chrome.storage && !chrome_storageFallback) {
+                               if (chrome_isExtUpdated()) {
+                                       extUpdatedError("[chrome_getValue("+name+")]");
+                                       callback(null);
+                                       return;
+                               }
+
                                chrome.storage.local.get(name, function(item) {
                                        if (chrome.runtime && chrome.runtime.lastError) {
                                                // Fallback to old storage method
                                chrome.storage.local.get(name, function(item) {
                                        if (chrome.runtime && chrome.runtime.lastError) {
                                                // Fallback to old storage method
@@ -1305,6 +1345,11 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                
                var chrome_setValue = function(name, val) {
                        if (chrome.storage && !chrome_storageFallback) {
                
                var chrome_setValue = function(name, val) {
                        if (chrome.storage && !chrome_storageFallback) {
+                               if (chrome_isExtUpdated()) {
+                                       extUpdatedError("[chrome_setValue("+name+")]");
+                                       return;
+                               }
+
                                var toSet = {};
                                toSet[name] = val;
                                chrome.storage.local.set(toSet, function() {
                                var toSet = {};
                                toSet[name] = val;
                                chrome.storage.local.set(toSet, function() {
@@ -1339,6 +1384,10 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                }
                        });
                };
                                }
                        });
                };
+
+               var chrome_isExtUpdated = function() {
+                       return (typeof chrome.i18n === 'undefined' || typeof chrome.i18n.getMessage('@@extension_id') === 'undefined');
+               };
        
        if (ISOPERA) {
                if (opera.extension) {
        
        if (ISOPERA) {
                if (opera.extension) {
@@ -1443,7 +1492,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                };
        }
        
                };
        }
        
-       if (ISFIREFOX && typeof self != 'undefined' && typeof self.on != 'undefined') {
+       if (typeof self != 'undefined' && typeof self.on != 'undefined') {
                self.on('message', function(message) {
                        var data = message;
                        if (data) {
                self.on('message', function(message) {
                        var data = message;
                        if (data) {
@@ -1454,6 +1503,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                }
                        }
                });
                                }
                        }
                });
+
                var xpi_getValue = function(name, callback) {
                        _ext_messageCallback[_ext_messageId] = callback;
                        self.postMessage({'command':'getValue', 'messageid':_ext_messageId, 'name':name});
                var xpi_getValue = function(name, callback) {
                        _ext_messageCallback[_ext_messageId] = callback;
                        self.postMessage({'command':'getValue', 'messageid':_ext_messageId, 'name':name});
@@ -1464,7 +1514,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        self.postMessage({'command':'setValue', 'name':name, 'val':val});
                };
                
                        self.postMessage({'command':'setValue', 'name':name, 'val':val});
                };
                
-               var xpi_clearStorage = function(name, val) {
+               var xpi_clearStorage = function() {
                        self.postMessage({'command':'clearStorage'});
                };
 
                        self.postMessage({'command':'clearStorage'});
                };
 
@@ -1489,11 +1539,17 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        self.postMessage({'command':'ajax', 'messageid':_ext_messageId, 'details':detailsX});
                        _ext_messageId += 1;
                };
                        self.postMessage({'command':'ajax', 'messageid':_ext_messageId, 'details':detailsX});
                        _ext_messageId += 1;
                };
+
+               var xpi_sendMessage = function(message, callback) {
+                       _ext_messageCallback[_ext_messageId] = callback;
+                       message.messageid = _ext_messageId;
+                       self.postMessage(message);
+                       _ext_messageId += 1;
+               };
        }
 
        if (typeof w.external != 'undefined' && typeof w.external.mxGetRuntime != 'undefined') {
                var maxthonRuntime = w.external.mxGetRuntime();
        }
 
        if (typeof w.external != 'undefined' && typeof w.external.mxGetRuntime != 'undefined') {
                var maxthonRuntime = w.external.mxGetRuntime();
-
                maxthonRuntime.listen('messageContentScript', function(message) {
                        var data = message;
                        if (data) {
                maxthonRuntime.listen('messageContentScript', function(message) {
                        var data = message;
                        if (data) {
@@ -1505,6 +1561,32 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        }
                });
 
                        }
                });
 
+               var mxaddon_getValue = function(name, callback) {
+                       try {
+                               callback(maxthonRuntime.storage.getConfig(name));
+                       } catch (e) {
+                               if (e.message && e.message === 'No LocalStorage Service Extension! (206)') {
+                                       extUpdatedError(e.message);
+                               }
+                               throw e;
+                       }
+               };
+
+               var mxaddon_setValue = function(name, val) {
+                       try {
+                               maxthonRuntime.storage.setConfig(name, val);
+                       } catch (e) {
+                               if (e.message && e.message === 'No LocalStorage Service Extension! (206)') {
+                                       extUpdatedError(e.message);
+                               }
+                               throw e;
+                       }
+               };
+
+               var mxaddon_clearStorage = function() {
+                       // Maxthon does not have a clear storage function
+               };
+
                var mxaddon_ajax = function(details) {
                        _ext_messageCallback[_ext_messageId] = function(response) {
                                if (response.val == 'success') {
                var mxaddon_ajax = function(details) {
                        _ext_messageCallback[_ext_messageId] = function(response) {
                                if (response.val == 'success') {
@@ -1523,7 +1605,14 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                ,'headers': details.headers
                                ,'data': details.data
                        };
                                ,'headers': details.headers
                                ,'data': details.data
                        };
-                       maxthonRuntime.post('messageBackground', {'command':'ajax', 'messageid':_ext_messageId, 'details':detailsX});
+                       try {
+                               maxthonRuntime.post('messageBackground', {'command':'ajax', 'messageid':_ext_messageId, 'details':detailsX});
+                       } catch (e) {
+                               if (e.message && e.message === 'No Platform_Message Service Extension! (355)') {
+                                       extUpdatedError(e.message);
+                               }
+                               throw e;
+                       }
                        _ext_messageId += 1;
                };
        }
                        _ext_messageId += 1;
                };
        }
@@ -1585,27 +1674,41 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
        }
        
        function getValueError(extra) {
        }
        
        function getValueError(extra) {
-               if (extra === 'ModuleSystem has been deleted' || extra === 'TypeError: Cannot read property \'sendMessage\' of undefined' || extra === '<code>ModuleSystem has been deleted</code>' || extra === '<code>TypeError: Cannot read property \'sendMessage\' of undefined</code>') {
-                       createSimpleDialog('localStorageError_getValueChromeExt', "Ponyhoof derp'd", "Ponyhoof has been disabled/updated recently. Please reload the page in order for Ponyhoof to work properly.");
+               if (chrome_isExtUpdatedError(extra)) {
+                       extUpdatedError(extra);
                } else {
                } else {
-                       createSimpleDialog('localStorageError_getValue', "Ponyhoof derp'd", "Ponyhoof can't load your settings. Please try again later.<br><br>If you keep seeing this error, please update to the latest version of Ponyhoof if available and <a href=\""+w.location.protocol+PONYHOOF_URL+"\" data-hovercard=\"/ajax/hovercard/page.php?id="+PONYHOOF_PAGE+"\">visit the Ponyhoof page for help</a>.<br><br>"+extra);
+                       createSimpleDialog('localStorageError_getValue', "Ponyhoof derp'd", "Whoops, Ponyhoof can't load your settings. Please try again later.<br><br>If you keep seeing this error, please update to the latest version of Ponyhoof if available and <a href=\""+w.location.protocol+PONYHOOF_URL+"\" data-hovercard=\"/ajax/hovercard/page.php?id="+PONYHOOF_PAGE+"\">visit and post to the Ponyhoof page for help</a>.<br><br><code>"+extra+"</code>");
                }
 
                trace();
        }
        
        function saveValueError(extra) {
                }
 
                trace();
        }
        
        function saveValueError(extra) {
-               var desc = "Ponyhoof can't save your settings. There might be a conflict with another extension installed on your browser. Please try again later.<br><br>If you keep seeing this error, please update to the latest version of Ponyhoof if available and <a href=\""+w.location.protocol+PONYHOOF_URL+"\" data-hovercard=\"/ajax/hovercard/page.php?id="+PONYHOOF_PAGE+"\">visit the Ponyhoof page for help</a>.<br><br>"+extra;
+               var desc = "Whoops, Ponyhoof can't save your settings. Please try again later.";
+               if (ISFIREFOX && STORAGEMETHOD === 'greasemonkey' && userSettings.customBg) {
+                       desc += "<br><br>This may be caused by a large custom background that you have set. Please try removing it.";
+               }
+               desc += "<br><br>If you keep seeing this error, please update to the latest version of Ponyhoof if available and <a href=\""+w.location.protocol+PONYHOOF_URL+"\" data-hovercard=\"/ajax/hovercard/page.php?id="+PONYHOOF_PAGE+"\">visit and post to the Ponyhoof page for help</a>.<br><br><code>"+extra+"</code>";
                createSimpleDialog('localStorageError_saveValue', "Ponyhoof derp'd", desc);
 
                trace();
        }
        
        function ponyhoofError(extra) {
                createSimpleDialog('localStorageError_saveValue', "Ponyhoof derp'd", desc);
 
                trace();
        }
        
        function ponyhoofError(extra) {
-               createSimpleDialog('ponyhoofError', "Ponyhoof derp'd", "Ponyhoof encountered an internal error. Please try again later and update to the latest version of Ponyhoof if available.<br><br>"+extra);
+               createSimpleDialog('ponyhoofError', "Ponyhoof derp'd", "Whoops, Ponyhoof encountered an internal error. Please try again later.<br><br>If you keep seeing this error, please update to the latest version of Ponyhoof if available and <a href=\""+w.location.protocol+PONYHOOF_URL+"\" data-hovercard=\"/ajax/hovercard/page.php?id="+PONYHOOF_PAGE+"\">visit and post to the Ponyhoof page for help</a>.<br><br><code>"+extra+"</code>");
 
                trace();
        }
 
                trace();
        }
+
+       var chrome_isExtUpdatedError = function(message) {
+               var a = 'ModuleSystem has been deleted';
+               var b = 'TypeError: Cannot read property \'sendMessage\' of undefined';
+               return (message === a || message === b);
+       };
+
+       var extUpdatedError = function(extra) {
+               createSimpleDialog('localStorageError_extUpdatedError', "Ponyhoof derp'd", "Ponyhoof has been updated/disabled recently. Please reload the page in order for Ponyhoof to work properly.<br><br><code>"+extra+"</code>");
+       };
        
        function getValue(name, callback) {
                switch (STORAGEMETHOD) {
        
        function getValue(name, callback) {
                switch (STORAGEMETHOD) {
@@ -1630,7 +1733,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                break;
                        
                        case 'mxaddon':
                                break;
                        
                        case 'mxaddon':
-                               callback(w.external.mxGetRuntime().storage.getConfig(name));
+                               mxaddon_getValue(name, callback);
                                break;
                        
                        case 'localstorage':
                                break;
                        
                        case 'localstorage':
@@ -1664,7 +1767,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                break;
                        
                        case 'mxaddon':
                                break;
                        
                        case 'mxaddon':
-                               w.external.mxGetRuntime().storage.setConfig(name, v);
+                               mxaddon_setValue(name, v);
                                break;
                        
                        case 'localstorage':
                                break;
                        
                        case 'localstorage':
@@ -1710,9 +1813,9 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
 
                        var extra = '';
                        if (e.message) {
 
                        var extra = '';
                        if (e.message) {
-                               extra = "<code>"+e.message+"</code>";
+                               extra = e.message;
                        } else {
                        } else {
-                               extra = "<code>"+e.toString()+"</code>";
+                               extra = e.toString();
                        }
                        try {
                                getValueError(extra);
                        }
                        try {
                                getValueError(extra);
@@ -1751,14 +1854,14 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        var extra = '';
                        if (e.message) {
                                if (e.message == 'ModuleSystem has been deleted' || e.message == 'TypeError: Cannot read property \'sendMessage\' of undefined') {
                        var extra = '';
                        if (e.message) {
                                if (e.message == 'ModuleSystem has been deleted' || e.message == 'TypeError: Cannot read property \'sendMessage\' of undefined') {
-                                       createSimpleDialog('localStorageError_setValueChromeExt', "Ponyhoof derp'd", "Ponyhoof has been disabled/updated recently. Please reload the page in order for Ponyhoof to work properly.");
+                                       extUpdatedError(e.message);
                                        callback();
                                        return;
                                }
 
                                        callback();
                                        return;
                                }
 
-                               extra = "<code>"+e.message+"</code>";
+                               extra = e.message;
                        } else {
                        } else {
-                               extra = "<code>"+e.toString()+"</code>";
+                               extra = e.toString();
                        }
                        saveValueError(extra);
                        return false;
                        }
                        saveValueError(extra);
                        return false;
@@ -1774,9 +1877,14 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                i.style.position = 'absolute';
                i.style.top = '-9999px';
                i.style.left = '-9999px';
                i.style.position = 'absolute';
                i.style.top = '-9999px';
                i.style.left = '-9999px';
+               i.setAttribute('aria-hidden', 'true');
                i.src = '//hoof.little.my/files/_htm/stat_'+stat+'.htm?version='+VERSION;
                d.body.appendChild(i);
        }
                i.src = '//hoof.little.my/files/_htm/stat_'+stat+'.htm?version='+VERSION;
                d.body.appendChild(i);
        }
+
+       var canPlayFlash = function() {
+               return !!w.navigator.mimeTypes['application/x-shockwave-flash'];
+       };
        
        // Pony selector
        var PonySelector = function(p, param) {
        
        // Pony selector
        var PonySelector = function(p, param) {
@@ -1795,6 +1903,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                k.customClick = function() {};
                k.customCheckCondition = false;
                k.overrideClickAction = false;
                k.customClick = function() {};
                k.customCheckCondition = false;
                k.overrideClickAction = false;
+               k.saveTheme = true;
                
                k.menu = null;
                k.createSelector = function() {
                
                k.menu = null;
                k.createSelector = function() {
@@ -1829,15 +1938,17 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                
                                k.menu.createMenuItem({
                                         html: "(Random)"
                                
                                k.menu.createMenuItem({
                                         html: "(Random)"
-                                       ,title: "To choose who to randomize, go to the Misc tab"
+                                       ,title: "To choose which characters to randomize, go to the Misc tab"
                                        ,check: check
                                        ,unsearchable: true
                                        ,onclick: function(menuItem, menuClass) {
                                                CURRENTPONY = 'RANDOM';
                                                
                                                changeThemeSmart('RANDOM');
                                        ,check: check
                                        ,unsearchable: true
                                        ,onclick: function(menuItem, menuClass) {
                                                CURRENTPONY = 'RANDOM';
                                                
                                                changeThemeSmart('RANDOM');
-                                               userSettings.theme = 'RANDOM';
-                                               saveSettings();
+                                               if (k.saveTheme) {
+                                                       userSettings.theme = 'RANDOM';
+                                                       saveSettings();
+                                               }
                                                
                                                menuClass.changeButtonText("(Random)");
                                                menuClass.changeChecked(menuItem);
                                                
                                                menuClass.changeButtonText("(Random)");
                                                menuClass.changeChecked(menuItem);
@@ -1910,8 +2021,10 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                                CURRENTPONY = code;
                                                
                                                changeThemeSmart(code);
                                                CURRENTPONY = code;
                                                
                                                changeThemeSmart(code);
-                                               userSettings.theme = code;
-                                               saveSettings();
+                                               if (k.saveTheme) {
+                                                       userSettings.theme = code;
+                                                       saveSettings();
+                                               }
 
                                                menuClass.changeButtonText(ponyData.name);
                                                menuClass.changeChecked(menuItem);
 
                                                menuClass.changeButtonText(ponyData.name);
                                                menuClass.changeChecked(menuItem);
@@ -1979,6 +2092,11 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                        return;
                                }
                        }
                                        return;
                                }
                        }
+
+                       if (STORAGEMETHOD === 'chrome' && chrome_isExtUpdated()) {
+                               extUpdatedError("PonySound.play()");
+                               return;
+                       }
                        
                        if (k.wait == 0) {
                                k.continuePlaying();
                        
                        if (k.wait == 0) {
                                k.continuePlaying();
@@ -2179,7 +2297,11 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
 
                                        // v1.611
                                        case 'xpi':
 
                                        // v1.611
                                        case 'xpi':
-                                               //ele.href = json.xpi;
+                                               ele.href = json.xpi;
+                                               break;
+
+                                       case 'mxaddon':
+                                               // Handled by function
                                                break;
 
                                        default:
                                                break;
 
                                        default:
@@ -2224,6 +2346,10 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                        k._xpi();
                                        return;
 
                                        k._xpi();
                                        return;
 
+                               case 'mxaddon':
+                                       k.mxaddon();
+                                       return;
+
                                default:
                                        break;
                        }
                                default:
                                        break;
                        }
@@ -2297,7 +2423,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        k.cwsWaitDialog.noBottom = true;
                        k.cwsWaitDialog.canCloseByEscapeKey = false;
                        k.cwsWaitDialog.create();
                        k.cwsWaitDialog.noBottom = true;
                        k.cwsWaitDialog.canCloseByEscapeKey = false;
                        k.cwsWaitDialog.create();
-                       k.cwsWaitDialog.changeTitle(CURRENTLANG.updater_title);
+                       k.cwsWaitDialog.changeTitle(CURRENTLANG['updater_title']);
                        k.cwsWaitDialog.changeContent(c);
 
                        chrome_sendMessage({'command':'checkForUpdates'}, function(status, details) {
                        k.cwsWaitDialog.changeContent(c);
 
                        chrome_sendMessage({'command':'checkForUpdates'}, function(status, details) {
@@ -2309,13 +2435,13 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                                        k.cwsOneClickSuccess = true;
 
                                                        var successText = '';
                                                        k.cwsOneClickSuccess = true;
 
                                                        var successText = '';
-                                                       var ponyData = convertCodeToData(CURRENTPONY);
+                                                       var ponyData = convertCodeToData(REALPONY);
                                                        if (ponyData.successText) {
                                                                successText = ponyData.successText;
                                                        } else {
                                                                successText = "Yay!";
                                                        }
                                                        if (ponyData.successText) {
                                                                successText = ponyData.successText;
                                                        } else {
                                                                successText = "Yay!";
                                                        }
-                                                       var c = successText+" Reloading... <span class='ponyhoof_loading'></span>";
+                                                       var c = successText+" Update complete, reloading... <span class='ponyhoof_loading'></span>";
                                                        k.cwsWaitDialog.changeContent(c);
 
                                                        if (!k.cwsDialog) {
                                                        k.cwsWaitDialog.changeContent(c);
 
                                                        if (!k.cwsDialog) {
@@ -2367,14 +2493,14 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        }
 
                        var newversion = k.update_json.version;
                        }
 
                        var newversion = k.update_json.version;
-                       var c = "<strong>"+header+"</strong><br><br>To update now, go to <strong>about:extensions</strong> in the address bar, enable <strong>Developer mode</strong> at the top-right and click <strong>Update extensions now</strong>.";
+                       var c = "<strong>"+header+"</strong><br><br>To update now, go to <a href='#' class='ponyhoof_updater_cws_openExtensions'><strong>about:extensions</strong></a> in the address bar, enable <strong>Developer mode</strong> at the top-right and click <strong>Update extensions now</strong>.";
                        if (newversion) {
                                c += "<br><br>Verify that the version changes from "+VERSION+" to "+parseFloat(newversion)+" and reload Facebook.";
                        }
                        c += "<br><br><"+"img src='"+THEMEURL+"_welcome/chrome_forceupdate.png' alt='' width='177' height='108' class='ponyhoof_image_shadow'>";
                        
                        var bottom = '';
                        if (newversion) {
                                c += "<br><br>Verify that the version changes from "+VERSION+" to "+parseFloat(newversion)+" and reload Facebook.";
                        }
                        c += "<br><br><"+"img src='"+THEMEURL+"_welcome/chrome_forceupdate.png' alt='' width='177' height='108' class='ponyhoof_image_shadow'>";
                        
                        var bottom = '';
-                       bottom += '<a href="#" class="uiButton uiButtonLarge uiButtonConfirm" role="button" id="ponyhoof_updater_cws_openExtensions"><span class="uiButtonText">Open Extensions</span></a>';
+                       bottom += '<a href="#" class="uiButton uiButtonLarge uiButtonConfirm ponyhoof_updater_cws_openExtensions" role="button"><span class="uiButtonText">Open Extensions</span></a>';
                        bottom += '<a href="#" class="uiButton uiButtonLarge uiButtonConfirm reloadNow" role="button"><span class="uiButtonText">'+CURRENTLANG.reloadNow+'</span></a>';
                        bottom += '<a href="#" class="uiButton uiButtonLarge notNow" role="button"><span class="uiButtonText">'+CURRENTLANG.notNow+'</span></a>';
                        
                        bottom += '<a href="#" class="uiButton uiButtonLarge uiButtonConfirm reloadNow" role="button"><span class="uiButtonText">'+CURRENTLANG.reloadNow+'</span></a>';
                        bottom += '<a href="#" class="uiButton uiButtonLarge notNow" role="button"><span class="uiButtonText">'+CURRENTLANG.notNow+'</span></a>';
                        
@@ -2385,13 +2511,13 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        k.cwsDialog.changeContent(c);
                        k.cwsDialog.changeBottom(bottom);
                        
                        k.cwsDialog.changeContent(c);
                        k.cwsDialog.changeBottom(bottom);
                        
-                       var openExtensionsButton = $('ponyhoof_updater_cws_openExtensions');
-
-                       openExtensionsButton.addEventListener('click', function() {
-                               if (!hasClass(this, 'uiButtonDisabled')) {
-                                       chrome_sendMessage({'command':'openExtensions'}, function() {});
-                               }
-                               return false;
+                       $$(k.cwsDialog.dialog, '.ponyhoof_updater_cws_openExtensions', function(button) {
+                               button.addEventListener('click', function(e) {
+                                       e.preventDefault();
+                                       if (!hasClass(this, 'uiButtonDisabled')) {
+                                               chrome_sendMessage({'command':'openExtensions'}, function() {});
+                                       }
+                               });
                        });
 
                        k._initReloadButtons(k.cwsDialog);
                        });
 
                        k._initReloadButtons(k.cwsDialog);
@@ -2463,20 +2589,102 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                };
 
                k.xpiDialog = null;
                };
 
                k.xpiDialog = null;
+               k.xpiWaitDialog = null;
+               k.xpiOneClickSuccess = false;
                k._xpi = function() {
                k._xpi = function() {
-                       if (k.xpiDialog) {
-                               k.xpiDialog.show();
+                       if (k.xpiWaitDialog) {
+                               k._xpi_showDialog();
+                               return;
+                       }
+
+                       var c = "Updating... <span class='ponyhoof_loading'></span>";
+                       k.xpiWaitDialog = new Dialog('update_xpiWait');
+                       k.xpiWaitDialog.alwaysModal = true;
+                       k.xpiWaitDialog.noBottom = true;
+                       k.xpiWaitDialog.canCloseByEscapeKey = false;
+                       k.xpiWaitDialog.create();
+                       k.xpiWaitDialog.changeTitle(CURRENTLANG['updater_title']);
+                       k.xpiWaitDialog.changeContent(c);
+
+                       xpi_sendMessage({'command':'checkForUpdates'}, function(val) {
+                               if (val != 'update_available') {
+                                       k._xpi_fallback();
+                                       return;
+                               }
+
+                               xpi_sendMessage({'command':'onUpdateAvailable'}, function(val) {
+                                       if (!val.status) {
+                                               return;
+                                       }
+                                       var c = '';
+                                       switch (val.status) {
+                                               case 'onDownloadStarted':
+                                                       c = "Downloading update...";
+                                                       break;
+
+                                               case 'onDownloadEnded':
+                                                       c = "Preparing to install...";
+                                                       break;
+
+                                               case 'onInstallStarted':
+                                                       c = "Installing update...";
+
+                                                       w.setTimeout(function() {
+                                                               k.xpiOneClickSuccess = true;
+
+                                                               if (!k.xpiDialog) {
+                                                                       var successText = '';
+                                                                       var ponyData = convertCodeToData(REALPONY);
+                                                                       if (ponyData.successText) {
+                                                                               successText = ponyData.successText;
+                                                                       } else {
+                                                                               successText = "Yay!";
+                                                                       }
+                                                                       c = successText+" Update complete, reloading...";
+                                                                       k.xpiWaitDialog.changeContent(c);
+
+                                                                       w.location.reload();
+                                                               }
+                                                       }, 100);
+                                                       break;
+
+                                               case 'onDownloadFailed':
+                                               case 'onInstallFailed':
+                                                       k._xpi_fallback();
+                                                       break;
+
+                                               default:
+                                                       break;
+                                       }
+                                       if (c) {
+                                               c += " <span class='ponyhoof_loading'></span>";
+                                               k.xpiWaitDialog.changeContent(c);
+                                       }
+                               });
+                       });
+
+                       w.setTimeout(k._xpi_fallback, 10000);
+               };
+
+               k._xpi_fallback = function() {
+                       if (k.xpiOneClickSuccess) {
                                return;
                        }
                                return;
                        }
+                       k.xpiOneClickSuccess = true;
+
+                       k.xpiWaitDialog.close();
+                       k._xpi_showDialog();
+               };
 
 
+               k._xpi_showDialog = function() {
                        var c = '';
                        c += "Firefox may prompt a security warning at the top-left, click <strong>Allow</strong>.<br><br><"+"img src='"+THEMEURL+"_welcome/guide/firefox/xpi_1_facebook.png' alt='' width='409' height='144' class='ponyhoof_image_shadow'><br>";
                        c += "When you see the Software Installation dialog, click <strong>Install Now</strong>. The update will load after you reload Facebook, you do not need to restart Firefox.<br><br><"+"img src='"+THEMEURL+"_welcome/guide/firefox/xpi_2.png' alt='' width='400' height='412' class='ponyhoof_image_shadow'>";
                        
                        var bottom = '';
                        var c = '';
                        c += "Firefox may prompt a security warning at the top-left, click <strong>Allow</strong>.<br><br><"+"img src='"+THEMEURL+"_welcome/guide/firefox/xpi_1_facebook.png' alt='' width='409' height='144' class='ponyhoof_image_shadow'><br>";
                        c += "When you see the Software Installation dialog, click <strong>Install Now</strong>. The update will load after you reload Facebook, you do not need to restart Firefox.<br><br><"+"img src='"+THEMEURL+"_welcome/guide/firefox/xpi_2.png' alt='' width='400' height='412' class='ponyhoof_image_shadow'>";
                        
                        var bottom = '';
-                       bottom += '<div class="lfloat"><a href="#" class="retry">Retry</a></div>';
-                       bottom += '<a href="#" class="uiButton uiButtonLarge uiButtonConfirm reloadNow" role="button"><span class="uiButtonText">'+CURRENTLANG.reloadNow+'</span></a>';
-                       bottom += '<a href="#" class="uiButton uiButtonLarge notNow" role="button"><span class="uiButtonText">'+CURRENTLANG.notNow+'</span></a>';
+                       bottom += '<div class="lfloat hidden_elem"><a href="#" class="retry">Retry</a></div>';
+                       bottom += '<a href="#" class="uiButton uiButtonLarge uiButtonConfirm reloadNow" role="button"><span class="uiButtonText">'+CURRENTLANG['reloadNow']+'</span></a>';
+                       bottom += '<a href="#" class="uiButton uiButtonLarge notNow" role="button"><span class="uiButtonText">'+CURRENTLANG['notNow']+'</span></a>';
                        
                        k.xpiDialog = new Dialog('update_xpi');
                        k.xpiDialog.alwaysModal = true;
                        
                        k.xpiDialog = new Dialog('update_xpi');
                        k.xpiDialog.alwaysModal = true;
@@ -2485,20 +2693,68 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        k.xpiDialog.changeContent(c);
                        k.xpiDialog.changeBottom(bottom);
 
                        k.xpiDialog.changeContent(c);
                        k.xpiDialog.changeBottom(bottom);
 
-                       var retry = k.xpiDialog.dialog.getElementsByClassName('retry');
+                       if (k.update_json.xpi) {
+                               var retry = k.xpiDialog.dialog.getElementsByClassName('retry');
+                               if (retry.length) {
+                                       retry = retry[0];
+                                       retry.href = k.update_json.xpi;
+                                       removeClass(retry.parentNode, 'hidden_elem');
+                               }
+                               k._initReloadButtons(k.xpiDialog);
+
+                               try {
+                                       USW.InstallTrigger.install({
+                                               "Ponyhoof": {
+                                                        URL: k.update_json.xpi
+                                                       ,IconURL: 'https://hoof.little.my/files/app32.png'
+                                               }
+                                       });
+                               } catch (e) {
+                                       dir(e);
+                               }
+                       }
+               };
+
+               k.mxaddonDialog = null;
+               k.mxaddon = function() {
+                       if (k.mxaddonDialog) {
+                               k.mxaddonDialog.show();
+                               return;
+                       }
+
+                       injectManualStyle('#ponyhoof_dialog_update_mxaddon .generic_dialog_popup, #ponyhoof_dialog_update_mxaddon .popup {width:500px;}', 'update_mxaddon');
+
+                       var c = "Click <strong>Update</strong> when you see this dialog. The update will load after you reload Facebook.<br><br><"+"img src='"+THEMEURL+"_welcome/guide/maxthon/update.png' alt='' width='446' height='419' class='ponyhoof_image_shadow'>";
+                       
+                       var bottom = '';
+                       bottom += '<div class="lfloat"><a href="#" class="retry hidden_elem">Retry</a></div>';
+                       bottom += '<a href="#" class="uiButton uiButtonLarge uiButtonConfirm reloadNow" role="button"><span class="uiButtonText">'+CURRENTLANG['reloadNow']+'</span></a>';
+                       bottom += '<a href="#" class="uiButton uiButtonLarge notNow" role="button"><span class="uiButtonText">'+CURRENTLANG['notNow']+'</span></a>';
+                       
+                       k.mxaddonDialog = new Dialog('update_mxaddon');
+                       k.mxaddonDialog.alwaysModal = true;
+                       k.mxaddonDialog.create();
+                       k.mxaddonDialog.changeTitle(CURRENTLANG['updater_title']);
+                       k.mxaddonDialog.changeContent(c);
+                       k.mxaddonDialog.changeBottom(bottom);
+
+                       var retry = k.mxaddonDialog.dialog.getElementsByClassName('retry');
                        if (retry.length) {
                                retry = retry[0];
                        if (retry.length) {
                                retry = retry[0];
-                               retry.href = k.update_json.xpi;
+                               retry.addEventListener('click', function(e) {
+                                       e.preventDefault();
+                                       k._mxaddonInstallNow();
+                               }, false);
+                               removeClass(retry, 'hidden_elem');
                        }
                        }
-                       k._initReloadButtons(k.xpiDialog);
+                       k._initReloadButtons(k.mxaddonDialog);
+
+                       k._mxaddonInstallNow();
+               };
 
 
+               k._mxaddonInstallNow = function() {
                        try {
                        try {
-                               USW.InstallTrigger.install({
-                                       "Ponyhoof": {
-                                                URL: k.update_json.xpi
-                                               ,IconURL: 'https://hoof.little.my/files/app32.png'
-                                       }
-                               });
+                               w.external.mxCall('InstallApp', k.update_json.mxaddon);
                        } catch (e) {
                                dir(e);
                        }
                        } catch (e) {
                                dir(e);
                        }
@@ -2732,7 +2988,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                };
 
                k.createErrorDialog = function(response) {
                };
 
                k.createErrorDialog = function(response) {
-                       createSimpleDialog('browserponies_error', "Browser Ponies derp'd", "An error occurred loading Browser Ponies. Please try again later and update to the latest version of Ponyhoof if available.");
+                       createSimpleDialog('browserponies_error', "Browser Ponies derp'd", "Whoops, there was a problem loading Browser Ponies. Please try again later.<br><br>If you keep seeing this error, please update to the latest version of Ponyhoof if available and <a href=\""+w.location.protocol+PONYHOOF_URL+"\" data-hovercard=\"/ajax/hovercard/page.php?id="+PONYHOOF_PAGE+"\">visit and post to the Ponyhoof page for help</a>.");
                }
 
                k.injectStyle = function() {
                }
 
                k.injectStyle = function() {
@@ -2841,7 +3097,9 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        c += '<div class="ponyhoof_tabs_section" id="ponyhoof_options_tabs_main" style="display:block;">';
                        //c += '<div class="ponyhoof_tabs_section" id="ponyhoof_options_tabs_main">';
                                c += '<div class="clearfix">';
                        c += '<div class="ponyhoof_tabs_section" id="ponyhoof_options_tabs_main" style="display:block;">';
                        //c += '<div class="ponyhoof_tabs_section" id="ponyhoof_options_tabs_main">';
                                c += '<div class="clearfix">';
-                               c += '<a href="#" ajaxify="/ajax/sharer/?s=18&amp;p[]='+PONYHOOF_PAGE+'" rel="dialog" class="uiButton uiButtonSpecial rfloat ponyhoof_noShareIsCare" role="button" data-hover="tooltip" data-tooltip-alignh="right" aria-label="'+CURRENTLANG.fb_share_tooltip+'"><span class="uiButtonText">Share with your pals!</span></a>';
+                               c += renderBrowserConfigWarning();
+
+                               c += '<a href="#" ajaxify="/ajax/sharer/?s=18&amp;p[]='+PONYHOOF_PAGE+'" rel="dialog" class="uiButton uiButtonSpecial rfloat ponyhoof_noShareIsCare" role="button" data-hover="tooltip" data-tooltip-alignh="right" aria-label="'+CURRENTLANG['fb_share_tooltip']+'"><span class="uiButtonText">Share with your pals!</span></a>';
                                
                                var visitPageText = CURRENTLANG.settings_main_visitPage;
                                if (ISUSINGBUSINESS) {
                                
                                var visitPageText = CURRENTLANG.settings_main_visitPage;
                                if (ISUSINGBUSINESS) {
@@ -2874,8 +3132,13 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                        c += '</ul>';
 
                                        c += '<div class="ponyhoof_message uiBoxRed hidden_elem" id="ponyhoof_options_background_error"></div>';
                                        c += '</ul>';
 
                                        c += '<div class="ponyhoof_message uiBoxRed hidden_elem" id="ponyhoof_options_background_error"></div>';
+                                       c += '<div class="ponyhoof_message uiBoxYellow hidden_elem" id="ponyhoof_options_background_message"></div>';
                                        c += '<div id="ponyhoof_options_background_drop">';
                                        c += '<div id="ponyhoof_options_background_drop">';
-                                               c += '<div id="ponyhoof_options_background_drop_notdrop">Drag and drop an image here to customize your background. <a href="#" class="uiHelpLink" data-hover="tooltip" data-tooltip-alignh="center" aria-label="Maximum file size is 1 MB.\n\nYour image resolution should be '+w.screen.width+'x'+w.screen.height+' to fill the entire screen. Your image will not be resized and will be placed on the middle of the page."></a><br><br>Or browse for an image: <input type="file" id="ponyhoof_options_background_select" accept="image/*"></div>';
+                                               c += '<div id="ponyhoof_options_background_drop_notdrop">';
+                                                       c += 'Drag and drop a pony pic here to customize your background. <a href="#" class="uiHelpLink" data-hover="tooltip" data-tooltip-alignh="center" aria-label=""></a><br><br>';
+                                                       c += '<span class="ponyhoof_menu_label">Or browse for a pony pic: </span>';
+                                                       c += '<div id="ponyhoof_options_background_selectOuterWrap"><a href="#" class="uiButton" role="button" aria-hidden="true" tabindex="-1"><span class="uiButtonText">Browse...</span></a><div id="ponyhoof_options_background_selectFileWrap"><input type="file" id="ponyhoof_options_background_select" accept="image/*" title="Choose a file..."></div></div>';
+                                               c += '</div>';
                                                c += '<div id="ponyhoof_options_background_drop_dropping">Drop here</div>';
                                        c += '</div>';
                                c += '</div>';
                                                c += '<div id="ponyhoof_options_background_drop_dropping">Drop here</div>';
                                        c += '</div>';
                                c += '</div>';
@@ -2891,11 +3154,10 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                        }
 
                                        c += '<div class="available">';
                                        }
 
                                        c += '<div class="available">';
-                                               c += '<div class="ponyhoof_message uiBoxYellow notPage">Sounds are experimental, they might derp from time to time.</div>';
-                                               c += '<div class="ponyhoof_message uiBoxRed usingPage">Notification sounds are not available when you are using Facebook as your page.</div><br>';
+                                               c += '<div class="ponyhoof_message uiBoxRed usingPage">Notification sounds are not available when you are using Facebook as your page.</div>';
                                                c += k.generateCheckbox('sounds', soundsText, {customFunc:k.soundsClicked});
                                                c += k.generateCheckbox('sounds', soundsText, {customFunc:k.soundsClicked});
-                                               c += '<div class="notPage notBusiness"><br>';
-                                                       c += '<div id="ponyhoof_options_soundsSettingsWrap">';
+                                               c += '<div class="notPage notBusiness">';
+                                                       c += '<div id="ponyhoof_options_soundsSettingsWrap"><br>';
                                                                c += '<div id="ponyhoof_options_soundsSetting" class="ponyhoof_menu_withlabel"><span class="ponyhoof_menu_label">Notification sound: </span></div>';
                                                                c += '<div id="ponyhoof_options_soundsNotifType" class="ponyhoof_menu_withlabel ponyhoof_menu_labelbreak"><span class="ponyhoof_menu_label">Don\'t play sounds for these types of notifications:</span></div>';
                                                                c += '<span class="ponyhoof_menu_label">Volume: </span><input type="range" id="ponyhoof_options_soundsVolume" min="1" max="100"> <a href="#" class="uiButton" role="button" id="ponyhoof_options_soundsVolumePreview"><span class="uiButtonText">Preview</span></a><span class="ponyhoof_menu_label" id="ponyhoof_options_soundsVolumeValue"></span>';
                                                                c += '<div id="ponyhoof_options_soundsSetting" class="ponyhoof_menu_withlabel"><span class="ponyhoof_menu_label">Notification sound: </span></div>';
                                                                c += '<div id="ponyhoof_options_soundsNotifType" class="ponyhoof_menu_withlabel ponyhoof_menu_labelbreak"><span class="ponyhoof_menu_label">Don\'t play sounds for these types of notifications:</span></div>';
                                                                c += '<span class="ponyhoof_menu_label">Volume: </span><input type="range" id="ponyhoof_options_soundsVolume" min="1" max="100"> <a href="#" class="uiButton" role="button" id="ponyhoof_options_soundsVolumePreview"><span class="uiButtonText">Preview</span></a><span class="ponyhoof_menu_label" id="ponyhoof_options_soundsVolumeValue"></span>';
@@ -2908,6 +3170,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                                                c += '<a href="#" class="uiButton uiButtonConfirm rfloat" role="button"><span class="uiButtonText">Enable now</span></a>';
                                                                c += '<span class="wrap">The chat sound option built into Facebook needs to be enabled.</span>';
                                                        c += '</div>';
                                                                c += '<a href="#" class="uiButton uiButtonConfirm rfloat" role="button"><span class="uiButtonText">Enable now</span></a>';
                                                                c += '<span class="wrap">The chat sound option built into Facebook needs to be enabled.</span>';
                                                        c += '</div>';
+                                                       c += '<div class="ponyhoof_message uiBoxYellow notPage hidden_elem" id="ponyhoof_options_soundsMessengerForWindowsWarning">Please turn off Facebook Messenger for Windows for chat sounds to work properly.</div>';
                                                        c += k.generateCheckbox('chatSound', "Change chat sound", {customFunc:k.chatSound});
                                                                c += '<div id="ponyhoof_options_soundsChatWrap">';
                                                                        c += '<div id="ponyhoof_options_soundsChatSetting" class="ponyhoof_menu_withlabel"><span class="ponyhoof_menu_label">Chat sound: </span></div>';
                                                        c += k.generateCheckbox('chatSound', "Change chat sound", {customFunc:k.chatSound});
                                                                c += '<div id="ponyhoof_options_soundsChatWrap">';
                                                                        c += '<div id="ponyhoof_options_soundsChatSetting" class="ponyhoof_menu_withlabel"><span class="ponyhoof_menu_label">Chat sound: </span></div>';
@@ -2922,19 +3185,18 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
 
                        c += '<div class="ponyhoof_tabs_section" id="ponyhoof_options_tabs_extras">';
                                c += '<div class="ponyhoof_show_if_injected">';
 
                        c += '<div class="ponyhoof_tabs_section" id="ponyhoof_options_tabs_extras">';
                                c += '<div class="ponyhoof_show_if_injected">';
-                                       c += k.generateCheckbox('show_messages_other', "Always show Other messages", {tip:"Facebook sends messages that aren't from your friends or mutual friends to the Other messages section. Ponyhoof can expand the Messages section to always show the Other section so you won't miss a message.<br><br><"+"img src='"+THEMEURL+"_help/other_messages.png' alt='' width='190' height='142' class='ponyhoof_image_shadow'>", 'extraClass':'notBusiness'});
                                        c += k.generateCheckbox('pinkieproof', "Strengthen the fourth wall", {title:"Prevents Pinkie Pie from breaking the fourth wall for non-villains"});
                                c += '</div>';
                                c += k.generateCheckbox('forceEnglish', "Always use Ponyhoof in English", {title:"Ponyhoof tries to use your Facebook language, but you can force Ponyhoof to always use English", refresh:true});
                                c += '<div class="ponyhoof_show_if_injected">';
                                        c += k.generateCheckbox('disable_emoticons', "Disable emoticon ponification");
                                        c += k.generateCheckbox('pinkieproof', "Strengthen the fourth wall", {title:"Prevents Pinkie Pie from breaking the fourth wall for non-villains"});
                                c += '</div>';
                                c += k.generateCheckbox('forceEnglish', "Always use Ponyhoof in English", {title:"Ponyhoof tries to use your Facebook language, but you can force Ponyhoof to always use English", refresh:true});
                                c += '<div class="ponyhoof_show_if_injected">';
                                        c += k.generateCheckbox('disable_emoticons', "Disable emoticon ponification");
-                                       c += '<div id="ponyhoof_options_randomPonies" class="ponyhoof_menu_withlabel"><span class="ponyhoof_menu_label">Who to randomize: </span></div>';
+                                       c += '<div id="ponyhoof_options_randomPonies" class="ponyhoof_menu_withlabel"><span class="ponyhoof_menu_label">Characters to randomize: </span></div>';
                                        c += '<div id="ponyhoof_options_costume" class="ponyhoof_menu_withlabel"><span class="ponyhoof_menu_label">Appearance: </span></div>';
                                c += '</div>';
                                c += '<div class="ponyhoof_hide_if_injected"><br></div>';
 
                                c += '<span class="ponyhoof_dialog_header">Multi-user</span>';
                                        c += '<div id="ponyhoof_options_costume" class="ponyhoof_menu_withlabel"><span class="ponyhoof_menu_label">Appearance: </span></div>';
                                c += '</div>';
                                c += '<div class="ponyhoof_hide_if_injected"><br></div>';
 
                                c += '<span class="ponyhoof_dialog_header">Multi-user</span>';
-                               c += k.generateCheckbox('allowLoginScreen', "Run Ponyhoof on the Facebook login screen", {global:true});
+                               c += k.generateCheckbox('allowLoginScreen', "Run Ponyhoof on the Facebook login screen", {global:true, customFunc:k.allowLoginScreenClicked});
                                c += k.generateCheckbox('runForNewUsers', "Run Ponyhoof for new users", {title:CURRENTLANG['settings_extras_runForNewUsers_explain'], global:true});
                                c += '<br>';
 
                                c += k.generateCheckbox('runForNewUsers', "Run Ponyhoof for new users", {title:CURRENTLANG['settings_extras_runForNewUsers_explain'], global:true});
                                c += '<br>';
 
@@ -2942,7 +3204,6 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                        c += '<span class="ponyhoof_dialog_header">Performance</span>';
                                        c += k.generateCheckbox('disable_animation', "Disable all animations");
                                        c += k.generateCheckbox('disableDomNodeInserted', "Disable HTML detection", {title:"Disables Ponyhoof from ponifying certain stuff that is not possible to do with styling alone such as notifications and dialogs (Some features require this to be enabled)", customFunc:k.disableDomNodeInsertedClicked});
                                        c += '<span class="ponyhoof_dialog_header">Performance</span>';
                                        c += k.generateCheckbox('disable_animation', "Disable all animations");
                                        c += k.generateCheckbox('disableDomNodeInserted', "Disable HTML detection", {title:"Disables Ponyhoof from ponifying certain stuff that is not possible to do with styling alone such as notifications and dialogs (Some features require this to be enabled)", customFunc:k.disableDomNodeInsertedClicked});
-                                       c += '<br>';
                                c += '</div>';
                                
                                c += '<a href="#" class="ponyhoof_options_fatlink" id="ponyhoof_options_resetSettings" data-hover="tooltip" aria-label="Reset your Ponyhoof settings and show the welcome screen">Reset settings</a>';
                                c += '</div>';
                                
                                c += '<a href="#" class="ponyhoof_options_fatlink" id="ponyhoof_options_resetSettings" data-hover="tooltip" aria-label="Reset your Ponyhoof settings and show the welcome screen">Reset settings</a>';
@@ -2986,13 +3247,15 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                        c += '<a href="#" id="ponyhoof_options_tempRemove" class="ponyhoof_options_fatlink">Remove style</a>';
                                c += '</div>';
                                c += '<a href="#" id="ponyhoof_options_sendSource" class="ponyhoof_options_fatlink">Send page source</a>';
                                        c += '<a href="#" id="ponyhoof_options_tempRemove" class="ponyhoof_options_fatlink">Remove style</a>';
                                c += '</div>';
                                c += '<a href="#" id="ponyhoof_options_sendSource" class="ponyhoof_options_fatlink">Send page source</a>';
-                               c += '<a href="#" class="ponyhoof_options_fatlink" id="ponyhoof_options_clearLocalStorage" data-hover="tooltip">Reset all settings (including global)</a>';
+                               if (STORAGEMETHOD != 'mxaddon') {
+                                       c += '<a href="#" class="ponyhoof_options_fatlink" id="ponyhoof_options_clearLocalStorage" data-hover="tooltip">Reset all settings (including global)</a>';
+                               }
                        c += '</div>';
                        
                        c += '<div class="ponyhoof_tabs_section" id="ponyhoof_options_tabs_about">';
                                c += '<div class="clearfix">';
                                c += '<div class="top">';
                        c += '</div>';
                        
                        c += '<div class="ponyhoof_tabs_section" id="ponyhoof_options_tabs_about">';
                                c += '<div class="clearfix">';
                                c += '<div class="top">';
-                               c += '<div class="rfloat"><a href="'+w.location.protocol+PONYHOOF_URL+'" class="ponyhoof_options_linkclick" data-hovercard="/ajax/hovercard/page.php?id='+PONYHOOF_PAGE+'" id="ponyhoof_options_devpic"><'+'img src="'+THEMEURL+'icon100.png" alt="" width="50" height="50"></a>';
+                               c += '<div class="rfloat"><a href="'+w.location.protocol+PONYHOOF_URL+'" class="ponyhoof_options_linkclick" data-hovercard="/ajax/hovercard/page.php?id='+PONYHOOF_PAGE+'" id="ponyhoof_options_devpic" data-hovercard-instant="1"><'+'img src="'+THEMEURL+'icon100.png" alt="" width="50" height="50"></a>';
                                c += '</div>';
                                c += '<strong>Ponyhoof v'+VERSION+'</strong><br>';
                                c += 'By <a href="'+w.location.protocol+'//'+getFbDomain()+'/ngyikp" class="ponyhoof_options_linkclick" data-hovercard="/ajax/hovercard/user.php?id=100000971648506">Ng Yik Phang</a> and <a href="http://ponyhoof.little.my/credits" class="ponyhoof_options_linkclick" data-hover="tooltip" aria-label="View all the ponies, artists and contributors that made Ponyhoof come to life">many contributors</a>';
                                c += '</div>';
                                c += '<strong>Ponyhoof v'+VERSION+'</strong><br>';
                                c += 'By <a href="'+w.location.protocol+'//'+getFbDomain()+'/ngyikp" class="ponyhoof_options_linkclick" data-hovercard="/ajax/hovercard/user.php?id=100000971648506">Ng Yik Phang</a> and <a href="http://ponyhoof.little.my/credits" class="ponyhoof_options_linkclick" data-hover="tooltip" aria-label="View all the ponies, artists and contributors that made Ponyhoof come to life">many contributors</a>';
@@ -3019,7 +3282,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        c += '</div>';
                        
                        var successText = '';
                        c += '</div>';
                        
                        var successText = '';
-                       var ponyData = convertCodeToData(CURRENTPONY);
+                       var ponyData = convertCodeToData(REALPONY);
                        if (ponyData.successText) {
                                successText = ponyData.successText+' ';
                        }
                        if (ponyData.successText) {
                                successText = ponyData.successText+' ';
                        }
@@ -3037,6 +3300,8 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        k.created = true;
                        
                        // After
                        k.created = true;
                        
                        // After
+                       k.dialog.dialog.className += ' ponyhoof_dialog_localstorageWarningEmbedded';
+
                        k.saveButton = $('ponyhoof_options_save');
                        k.saveButton.addEventListener('click', k.saveButtonClick, false);
                        
                        k.saveButton = $('ponyhoof_options_save');
                        k.saveButton.addEventListener('click', k.saveButtonClick, false);
                        
@@ -3095,7 +3360,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        tech += "STORAGEMETHOD: " + STORAGEMETHOD + "\n";
                        tech += "DISTRIBUTION: " + DISTRIBUTION + "\n";
                        if (STORAGEMETHOD == 'localstorage') {
                        tech += "STORAGEMETHOD: " + STORAGEMETHOD + "\n";
                        tech += "DISTRIBUTION: " + DISTRIBUTION + "\n";
                        if (STORAGEMETHOD == 'localstorage') {
-                               tech += "localStorage.length: " + localStorage.length + "\n";
+                               tech += "localStorage.length: " + w.localStorage.length + "\n";
                        }
                        tech += "\n";
                        tech += "navigator.userAgent: " + w.navigator.userAgent + "\n";
                        }
                        tech += "\n";
                        tech += "navigator.userAgent: " + w.navigator.userAgent + "\n";
@@ -3276,7 +3541,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        
                        if (STORAGEMETHOD == 'localstorage') {
                                var dump = '';
                        
                        if (STORAGEMETHOD == 'localstorage') {
                                var dump = '';
-                               for (i in localStorage) {
+                               for (var i in localStorage) {
                                        dump += i+": "+localStorage[i]+"\n";
                                }
                                $('ponyhoof_options_dump').value = dump;
                                        dump += i+": "+localStorage[i]+"\n";
                                }
                                $('ponyhoof_options_dump').value = dump;
@@ -3446,23 +3711,6 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                return;
                        }
 
                                return;
                        }
 
-                       var litestand = false;
-                       if (d.getElementsByClassName('_4g5r').length) {
-                               litestand = true;
-                       } else if (d.getElementsByClassName('-cx-PUBLIC-hasLitestandBookmarksSidebar__root').length) {
-                               litestand = true;
-                       }
-                       if (litestand) {
-                               var option = $('ponyhoof_options_show_messages_other');
-                               option.disabled = true;
-                               option.checked = false;
-
-                               var label = $('ponyhoof_options_label_show_messages_other');
-                               addClass(label, 'ponyhoof_options_unavailable');
-                               label.setAttribute('data-hover', 'tooltip');
-                               label.setAttribute('aria-label', "This option is not available on the new Facebook news feed");
-                       }
-
                        k.randomInit();
                        k.costumesInit();
 
                        k.randomInit();
                        k.costumesInit();
 
@@ -3480,7 +3728,11 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
 
                        // Reset settings
                        $('ponyhoof_options_resetSettings').addEventListener('click', k.resetSettings, false);
 
                        // Reset settings
                        $('ponyhoof_options_resetSettings').addEventListener('click', k.resetSettings, false);
-                       $('ponyhoof_options_clearLocalStorage').addEventListener('click', k.clearStorage, false);
+
+                       var clearLocalStorage = $('ponyhoof_options_clearLocalStorage');
+                       if (clearLocalStorage) {
+                               clearLocalStorage.addEventListener('click', k.clearStorage, false);
+                       }
 
                        k.extrasInitLoaded = true;
                };
 
                        k.extrasInitLoaded = true;
                };
@@ -3597,6 +3849,8 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                };
 
                k.clearStorage = function(e) {
                };
 
                k.clearStorage = function(e) {
+                       e.preventDefault();
+
                        k.canSaveSettings = false;
 
                        if (typeof GM_listValues != 'undefined') {
                        k.canSaveSettings = false;
 
                        if (typeof GM_listValues != 'undefined') {
@@ -3614,12 +3868,12 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                case 'localstorage':
                                        if (confirm(SIG+" localStorage must be cleared in order to reset settings. Doing this may cause other extensions to lose their settings.")) {
                                                try {
                                case 'localstorage':
                                        if (confirm(SIG+" localStorage must be cleared in order to reset settings. Doing this may cause other extensions to lose their settings.")) {
                                                try {
-                                                       localStorage.clear();
+                                                       w.localStorage.clear();
                                                } catch (e) {
                                                } catch (e) {
-                                                       alert(e.toString());
+                                                       alert("Can't clear localStorage :(\n\n"+e.toString());
                                                }
                                        } else {
                                                }
                                        } else {
-                                               return false;
+                                               return;
                                        }
                                        break;
 
                                        }
                                        break;
 
@@ -3639,12 +3893,15 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                        xpi_clearStorage();
                                        break;
 
                                        xpi_clearStorage();
                                        break;
 
+                               case 'mxaddon':
+                                       // Maxthon does not have a clear storage function
+                                       break;
+
                                default:
                                        break;
                        }
                        
                        k.dialog.close();
                                default:
                                        break;
                        }
                        
                        k.dialog.close();
-                       e.preventDefault();
                        w.location.reload();
                };
 
                        w.location.reload();
                };
 
@@ -3889,6 +4146,20 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                error("Unable to hook to ChatOptions and Arbiter");
                                dir(e);
                        }
                                error("Unable to hook to ChatOptions and Arbiter");
                                dir(e);
                        }
+
+                       // Detect Facebook Messenger for Windows
+                       if (w.navigator.plugins) {
+                               w.navigator.plugins.refresh(false);
+
+                               for (var i = 0, len = w.navigator.plugins.length; i < len; i += 1) {
+                                       var plugin = w.navigator.plugins[i];
+                                       if (plugin[0] && plugin[0].type === 'application/x-facebook-desktop-1') {
+                                               removeClass($('ponyhoof_options_soundsMessengerForWindowsWarning'), 'hidden_elem');
+                                               break;
+                                       }
+                               }
+                       }
+
                        k._soundsChatLoad();
                        k._soundsChatInit();
 
                        k._soundsChatLoad();
                        k._soundsChatInit();
 
@@ -4174,19 +4445,31 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                };
 
                k.bgError = null;
                };
 
                k.bgError = null;
+               k.bgMessage = null;
                k.bgTab = null;
                k.bgDrop = null;
                k.bgClearCustomBg = false;
                k.bgInitLoaded = false;
                k.bgTab = null;
                k.bgDrop = null;
                k.bgClearCustomBg = false;
                k.bgInitLoaded = false;
+               k.bgSizeLimit = 1024 * 1024;
+               k.bgSizeLimitDescription = '1 MB';
+               k._isWebPSupported = false;
                k.bgInit = function() {
                        if (k.bgInitLoaded) {
                                return;
                        }
 
                        k.bgError = $('ponyhoof_options_background_error');
                k.bgInit = function() {
                        if (k.bgInitLoaded) {
                                return;
                        }
 
                        k.bgError = $('ponyhoof_options_background_error');
+                       k.bgMessage = $('ponyhoof_options_background_message');
                        k.bgTab = $('ponyhoof_options_tabs_background');
                        k.bgDrop = $('ponyhoof_options_background_drop');
 
                        k.bgTab = $('ponyhoof_options_tabs_background');
                        k.bgDrop = $('ponyhoof_options_background_drop');
 
+                       // Firefox 23 started enforcing a 1MB limit per preference
+                       // http://hg.mozilla.org/mozilla-central/rev/2e46cabb6a11
+                       if (ISFIREFOX && STORAGEMETHOD == 'greasemonkey') {
+                               k.bgSizeLimit = 1024 * 512;
+                               k.bgSizeLimitDescription = '512 KB';
+                       }
+
                        if (userSettings.customBg) {
                                addClass(k.bgTab, 'hasCustom');
                                addClass($('ponyhoof_options_background_custom'), 'active');
                        if (userSettings.customBg) {
                                addClass(k.bgTab, 'hasCustom');
                                addClass($('ponyhoof_options_background_custom'), 'active');
@@ -4234,6 +4517,25 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                }
                        }, false);
 
                                }
                        }, false);
 
+                       isWebPSupported(function(result) {
+                               k._isWebPSupported = result;
+
+                               var desc = 'Maximum file size is '+k.bgSizeLimitDescription+'.\n\nFor best results, the resolution of your pony pic should be '+w.screen.width+'x'+w.screen.height+' to fill the entire screen.';
+                               if (isCanvasSupported()) {
+                                       var filetype = 'JPEG';
+                                       if (k._isWebPSupported) {
+                                               filetype = 'JPEG/WebP';
+                                       }
+
+                                       desc = 'If the file size of your pony pic is too big, we will attempt to automatically convert to '+filetype+' and resize it.\n\nFor best results, the resolution of your pony pic should be '+w.screen.width+'x'+w.screen.height+' to fill the entire screen.';
+                               }
+
+                               var uiHelpLink = k.bgDrop.getElementsByClassName('uiHelpLink');
+                               if (uiHelpLink.length) {
+                                       uiHelpLink[0].setAttribute('aria-label', desc);
+                               }
+                       });
+
                        k.bgDropInit();
 
                        k.bgInitLoaded = true;
                        k.bgDropInit();
 
                        k.bgInitLoaded = true;
@@ -4241,7 +4543,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
 
                k.bgDropInit = function() {
                        if (typeof w.FileReader == 'undefined') {
 
                k.bgDropInit = function() {
                        if (typeof w.FileReader == 'undefined') {
-                               k.bgError.textContent = "Custom background images are not supported on your browser. Please update your browser if possible.";
+                               k.bgError.textContent = "Custom background pony pics are not supported on your browser. Please update your browser if possible.";
                                removeClass(k.bgError, 'hidden_elem');
                                addClass(k.bgDrop, 'hidden_elem');
                                return;
                                removeClass(k.bgError, 'hidden_elem');
                                addClass(k.bgDrop, 'hidden_elem');
                                return;
@@ -4275,53 +4577,134 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        }, false);
                }
 
                        }, false);
                }
 
+               k.bgReaderFile = null;
+               k.bgReaderBg = null;
                k.bgProcessFile = function(file) {
                k.bgProcessFile = function(file) {
+                       k.bgReaderFile = file;
+                       addClass(k.bgError, 'hidden_elem');
+                       addClass(k.bgMessage, 'hidden_elem');
+
                        if (!file.type.match(/image.*/)) {
                                if (file.type) {
                        if (!file.type.match(/image.*/)) {
                                if (file.type) {
-                                       k.bgError.textContent = "The file ("+file.name+") doesn't seem to be an image ("+file.type+").";
+                                       k.bgError.textContent = "The file ("+file.name+") doesn't seem to be a pony pic ("+file.type+").";
                                } else {
                                } else {
-                                       k.bgError.textContent = "The file ("+file.name+") doesn't seem to be an image.";
+                                       k.bgError.textContent = "The file ("+file.name+") doesn't seem to be a pony pic.";
                                }
                                removeClass(k.bgError, 'hidden_elem');
                                return;
                        }
 
                                }
                                removeClass(k.bgError, 'hidden_elem');
                                return;
                        }
 
-                       if (file.size > 1024*1024) {
-                               if (file.type && file.type != 'image/jpeg') {
-                                       k.bgError.textContent = "Sorry, the file size of your image is too big (over 1 MB) and may not save properly. Try saving your image as a JPEG or resize your image.";
+                       var reader = new w.FileReader();
+                       reader.onload = k.bgReaderLoad;
+                       reader.onerror = k.bgReaderError;
+                       reader.readAsDataURL(file);
+               };
+
+               k.bgReaderLoad = function(e) {
+                       k.bgReaderBg = e.target.result;
+                       if (e.target.result.length > k.bgSizeLimit) {
+                               // base64 result is too big to fit, convertion required
+                               if (isCanvasSupported()) {
+                                       k.bgPerformConvertion();
                                } else {
                                } else {
-                                       k.bgError.textContent = "Sorry, the file size of your image is too big (over 1 MB) and may not save properly. Try resizing your image.";
+                                       k.bgErrorTooBig();
                                }
                                }
-                               removeClass(k.bgError, 'hidden_elem');
-                               return;
+                       } else {
+                               k.bgChangeSuccess();
                        }
                        }
+               };
 
 
-                       var reader = new w.FileReader();
-                       reader.onload = function(e) {
-                               addClass(k.bgError, 'hidden_elem');
-                               addClass(k.bgTab, 'hasCustom');
+               k.bgReaderError = function(e) {
+                       k.bgError.textContent = "An error occurred reading the file. Please try again.";
+                       removeClass(k.bgError, 'hidden_elem');
+                       dir(e);
+               };
 
 
-                               $$(k.bgTab, '.ponyhoof_options_fatradio a', function(ele2) {
-                                       removeClass(ele2.parentNode, 'active');
-                               });
-                               addClass($('ponyhoof_options_background_custom'), 'active');
-                               k.bgClearCustomBg = false;
+               k.bgErrorTooBig = function() {
+                       if (k.bgReaderFile.type && k.bgReaderFile.type != 'image/jpeg' && !isCanvasSupported()) {
+                               k.bgError.textContent = "Sorry, the file size of your pony pic is too big (over "+k.bgSizeLimitDescription+") and may not save properly. Try saving your pony pic as a JPEG, resize your pony pic, or use a different pony pic.";
+                       } else {
+                               k.bgError.textContent = "Sorry, the file size of your pony pic is too big (over "+k.bgSizeLimitDescription+") and may not save properly. Try resizing your pony pic or use a different pony pic.";
+                       }
+                       removeClass(k.bgError, 'hidden_elem');
+               };
 
 
-                               userSettings.login_bg = false;
-                               userSettings.customBg = e.target.result;
-                               saveSettings();
+               k.bgChangeSuccess = function() {
+                       addClass(k.bgError, 'hidden_elem');
+                       addClass(k.bgTab, 'hasCustom');
 
 
-                               k.needToSaveLabel = true;
-                               k.updateCloseButton();
+                       $$(k.bgTab, '.ponyhoof_options_fatradio a', function(ele) {
+                               removeClass(ele.parentNode, 'active');
+                       });
+                       addClass($('ponyhoof_options_background_custom'), 'active');
+                       k.bgClearCustomBg = false;
 
 
-                               changeCustomBg(e.target.result);
-                       };
-                       reader.onerror = function(e) {
-                               k.bgError.textContent = "An error occurred reading the file. Please try again.";
-                               dir(e);
-                               removeClass(k.bgError, 'hidden_elem');
-                       };
-                       reader.readAsDataURL(file);
+                       userSettings.login_bg = false;
+                       userSettings.customBg = k.bgReaderBg;
+                       saveSettings();
+
+                       k.needToSaveLabel = true;
+                       k.updateCloseButton();
+
+                       changeCustomBg(k.bgReaderBg);
+               };
+
+               k.bgPerformConvertion = function() {
+                       var img = new w.Image();
+                       try {
+                               img.onload = function() {
+                                       // First try converting to JPEG/WebP
+                                       if (k.bgReaderFile.type != 'image/jpeg' || (k._isWebPSupported && k.bgReaderFile.type != 'image/webp')) {
+                                               var transformed = k.bgCanvasTransform(img, img.width, img.height);
+                                               if (transformed.length <= k.bgSizeLimit) {
+                                                       k.bgReaderBg = transformed;
+                                                       k.bgChangeSuccess();
+
+                                                       img = null;
+                                                       transformed = null;
+                                                       return;
+                                               }
+                                               transformed = null;
+                                       }
+
+                                       // Now try resizing to screen resolution
+                                       var transformed = k.bgCanvasTransform(img, Math.min(w.screen.width, img.width), Math.min(w.screen.height, img.height));
+                                       if (transformed.length <= k.bgSizeLimit) {
+                                               k.bgMessage.textContent = "Automatically resized to screen resolution. For best results, we recommend using an image editor and resize/crop your pony pic.";
+                                               removeClass(k.bgMessage, 'hidden_elem');
+
+                                               k.bgReaderBg = transformed;
+                                               k.bgChangeSuccess();
+
+                                               img = null;
+                                               transformed = null;
+                                               return;
+                                       }
+                                       img = null;
+                                       transformed = null;
+
+                                       // Fail :(
+                                       k.bgErrorTooBig();
+                               };
+                               img.src = k.bgReaderBg;
+                       } catch (e) {
+                               k.bgErrorTooBig();
+                       }
+               };
+
+               k.bgCanvasTransform = function(img, width, height) {
+                       var canvas = d.createElement('canvas');
+                       canvas.width = width;
+                       canvas.height = height;
+                       var ctx = canvas.getContext('2d');
+                       ctx.drawImage(img, 0, 0, width, height);
+
+                       var type = 'image/jpeg';
+                       if (k._isWebPSupported) {
+                               type = 'image/webp';
+                       }
+
+                       return canvas.toDataURL(type);
                };
 
                k.disableDomNodeInserted = function() {
                };
 
                k.disableDomNodeInserted = function() {
@@ -4369,6 +4752,15 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        k.disableDomNodeInserted();
                };
 
                        k.disableDomNodeInserted();
                };
 
+               k.allowLoginScreenClicked = function() {
+                       if (globalSettings.allowLoginScreen) {
+                               globalSettings.lastUserId = USERID;
+                       } else {
+                               globalSettings.lastUserId = null;
+                       }
+                       saveGlobalSettings();
+               };
+
                k.debug_disablelog = function() {
                        if ($('ponyhoof_options_debug_disablelog').checked) {
                                CANLOG = false;
                k.debug_disablelog = function() {
                        if ($('ponyhoof_options_debug_disablelog').checked) {
                                CANLOG = false;
@@ -4667,7 +5059,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        css += '#ponyhoof_dialog_options.ponyhoof_options_debugExposed .ponyhoof_tabs > a[data-ponyhoof-tab="advanced"] {display:block;}';
 
                        // 214px
                        css += '#ponyhoof_dialog_options.ponyhoof_options_debugExposed .ponyhoof_tabs > a[data-ponyhoof-tab="advanced"] {display:block;}';
 
                        // 214px
-                       css += '.ponyhoof_options_fatradio {margin:8px 0;}';
+                       css += '.ponyhoof_options_fatradio {margin:10px 0;}';
                        css += '.ponyhoof_options_fatradio li {width:222px;float:left;margin-left:12px;}';
                                css += '#ponyhoof_options_tabs_background.hasCustom .ponyhoof_options_fatradio li {width:144px;}';
                        css += '.ponyhoof_options_fatradio li:first-child {margin:0;}';
                        css += '.ponyhoof_options_fatradio li {width:222px;float:left;margin-left:12px;}';
                                css += '#ponyhoof_options_tabs_background.hasCustom .ponyhoof_options_fatradio li {width:144px;}';
                        css += '.ponyhoof_options_fatradio li:first-child {margin:0;}';
@@ -4683,25 +5075,29 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                css += '#ponyhoof_options_tabs_background.hasCustom #ponyhoof_options_background_cutie .wrap i {width:128px;height:128px;}';
                        css += '#ponyhoof_options_background_custom {display:none;}';
                                css += '#ponyhoof_options_tabs_background.hasCustom #ponyhoof_options_background_custom {display:block;}';
                                css += '#ponyhoof_options_tabs_background.hasCustom #ponyhoof_options_background_cutie .wrap i {width:128px;height:128px;}';
                        css += '#ponyhoof_options_background_custom {display:none;}';
                                css += '#ponyhoof_options_tabs_background.hasCustom #ponyhoof_options_background_custom {display:block;}';
-                       css += '#ponyhoof_options_background_custom .wrap i {background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAABiElEQVRIx82WMWrDQBBFhQtXJoWr4DP4AD6ACxGCEEj/CVwZFyFHCCkCOYJJkfMYFzmBi1SpjAvjwpUwKZwiDihiV7uOJJOBrVYzbzUz+2eD4AwDYmCXZdkxy7IjsAPioC0rworQWkElPQAHYCMpLO6VYT+r5I+kBfAiqeeCPZVOnxehLqCkWcl/aYVKmpqCATlwA8Q2IBBLurfsLSV1TfWZ2wLWXcDYBBwBeUvAoS2tYdNQSTNX44TA50VgJ2AX2DaQxq2xWQzASUWQtSSiKBpEUTSQBLCu+MOJU64qYO+S+oYD9oGVh/+3DPrATqdNqzTWM827wLcmYRheVZSh5xvn8kDflFaNobNSKikF9h4fr2o2zd7YBx7XIpV0fVrp2dfCALxrStaSJLl1waYNi3ZeHuLFwg9bmhQ5MDIBxy3Ow7lRtCW9WRw+fKQPOFiaZ2q9wMDSMGI6klKH7HVM8xR4djVOD3iVtJDEH15tIbABDpIeaz0hfYAF6/zPh7Aj3b9k0CpXFfYF15zYxmWum1cAAAAASUVORK5CYII=") no-repeat center center;}';
+                       css += '#ponyhoof_options_background_custom .wrap i {background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAABh0lEQVRIx82WP2oCURDGFwsrSWEVPIMH8AAWSwiL4H6/BSuxCDlCSBHIESRFziMWOYFFqlRiIRZWi6QwRQxslvfP7K5k4FVvZ35vZ+Z986LoDANGwC7LsmOWZUdgB4yipqwIK0IrBZX0AByAjaS4uFeG/aySP5IWwIukjg/2VDp9XoT6gJJmJf+lFSppagoG5MANMLIBgZGke8veUlLbVJ+5LWDVBQxNwAGQNwTs29Ia1w2VNPM1Tgx8XgR2AraBbQ1p3BqbxQCcOIKsJZEkSS9Jkp4kgLXjDydeuXLA3iV1DQfsAqsA/28ZDIGdTpu6NDYwzbsotCZxHF85ytAJjXN5YGhKXWPorJRKSoF9wMerik2zN/ZBwLVIJV2fVnr2tTAA7+qStfF4fOuDTWsW7bw8xIuF7zc0KXJgYAIOG5yHc6NoS3qzOHyESB9wsDTP1HqBgaVhxLQkpR7Za5nmKfDsa5wO8CppIYk/vNpiYAMcJD1WekKGAAvW+p8PYU+6f8mgVa4c9gXXnNjGKCXX6gAAAABJRU5ErkJggg==") no-repeat center center;}';
 
 
-                       css += '#ponyhoof_options_background_error {margin-bottom:10px;}';
+                       css += '#ponyhoof_options_background_error, #ponyhoof_options_background_message {margin-bottom:10px;}';
                        css += '#ponyhoof_options_background_drop {background:#fff;border:2px dashed #75a3f5;padding:8px;position:relative;}'; //margin-bottom:8px;
                        css += '#ponyhoof_options_background_drop_dropping {background:#fff;background:rgba(255,255,255,.95);border:2px dashed #75a3f5;color:#75a3f5;position:absolute;top:-2px;left:-2px;width:100%;height:100%;font-size:16px;line-height:64px;text-align:center;font-weight:bold;display:none;}';
                        css += '#ponyhoof_options_background_drop.ponyhoof_dropping #ponyhoof_options_background_drop_dropping {display:block;}';
                        css += '#ponyhoof_options_background_drop {background:#fff;border:2px dashed #75a3f5;padding:8px;position:relative;}'; //margin-bottom:8px;
                        css += '#ponyhoof_options_background_drop_dropping {background:#fff;background:rgba(255,255,255,.95);border:2px dashed #75a3f5;color:#75a3f5;position:absolute;top:-2px;left:-2px;width:100%;height:100%;font-size:16px;line-height:64px;text-align:center;font-weight:bold;display:none;}';
                        css += '#ponyhoof_options_background_drop.ponyhoof_dropping #ponyhoof_options_background_drop_dropping {display:block;}';
+                       css += '#ponyhoof_options_background_selectOuterWrap {position:relative;display:inline-block;top:-3px;}';
+                       css += '#ponyhoof_options_background_selectFileWrap {position:absolute;width:100%;height:100%;top:0;left:0;overflow:hidden;}';
+                       css += '#ponyhoof_options_background_select {font-size:1000px !important;opacity:0;padding:0;margin:0;position:absolute;bottom:0;right:0;cursor:pointer;}';
 
                        css += '#ponyhoof_options_tabs_main .ponyhoof_message {margin-top:10px;}';
                        css += '#ponyhoof_browserponies .ponyhoof_loading {display:none;margin-top:0;vertical-align:text-bottom;}';
                        css += '#ponyhoof_browserponies.ponyhoof_browserponies_loading .ponyhoof_loading {display:inline-block;}';
                        css += '#ponyhoof_options_randomPonies .ponyhoof_loading {display:none !important;}';
                        css += '#ponyhoof_options_randomPonies .ponyhoof_menuitem_checked {display:block;}';
 
                        css += '#ponyhoof_options_tabs_main .ponyhoof_message {margin-top:10px;}';
                        css += '#ponyhoof_browserponies .ponyhoof_loading {display:none;margin-top:0;vertical-align:text-bottom;}';
                        css += '#ponyhoof_browserponies.ponyhoof_browserponies_loading .ponyhoof_loading {display:inline-block;}';
                        css += '#ponyhoof_options_randomPonies .ponyhoof_loading {display:none !important;}';
                        css += '#ponyhoof_options_randomPonies .ponyhoof_menuitem_checked {display:block;}';
-                       //css += '#ponyhoof_options_tabs_sounds .ponyhoof_message.unavailable {margin-bottom:10px;}';
+                       css += '#ponyhoof_options_tabs_sounds .ponyhoof_message.unavailable {margin-bottom:10px;}';
                        css += '#ponyhoof_options_soundsSettingsWrap {margin-top:-14px;}';
                        css += '#ponyhoof_options_soundsVolume {vertical-align:middle;width:50px;}';
                        css += '#ponyhoof_options_soundsVolume[type="range"] {cursor:pointer;width:200px;}';
                        css += '#ponyhoof_options_soundsVolumePreview {vertical-align:middle;}';
                        css += '#ponyhoof_options_soundsVolumeValue {display:none;padding-left:3px;}';
                        css += '#ponyhoof_options_soundsSettingsWrap {margin-top:-14px;}';
                        css += '#ponyhoof_options_soundsVolume {vertical-align:middle;width:50px;}';
                        css += '#ponyhoof_options_soundsVolume[type="range"] {cursor:pointer;width:200px;}';
                        css += '#ponyhoof_options_soundsVolumePreview {vertical-align:middle;}';
                        css += '#ponyhoof_options_soundsVolumeValue {display:none;padding-left:3px;}';
-                       css += '#ponyhoof_options_soundsChatSoundWarning {margin-bottom:10px;}';
+                       css += '#ponyhoof_options_soundsChatSoundWarning, #ponyhoof_options_soundsMessengerForWindowsWarning {margin-bottom:10px;}';
+                       css += '#ponyhoof_options_soundsChatSetting {margin:0;}';
                        css += '#ponyhoof_options_tabs_extras .ponyhoof_show_if_injected + .uiInputLabel, #ponyhoof_options_tabs_extras .uiInputLabel + .ponyhoof_show_if_injected, #ponyhoof_options_tabs_advanced .uiInputLabel + .ponyhoof_show_if_injected {margin-top:3px;}';
                        css += '#ponyhoof_options_tabs_advanced .ponyhoof_hide_if_injected.ponyhoof_message {margin-bottom:10px;}';
                        css += '.ponyhoof_options_aboutsection {border-top:1px solid #ccc;margin:10px -10px 0;}';
                        css += '#ponyhoof_options_tabs_extras .ponyhoof_show_if_injected + .uiInputLabel, #ponyhoof_options_tabs_extras .uiInputLabel + .ponyhoof_show_if_injected, #ponyhoof_options_tabs_advanced .uiInputLabel + .ponyhoof_show_if_injected {margin-top:3px;}';
                        css += '#ponyhoof_options_tabs_advanced .ponyhoof_hide_if_injected.ponyhoof_message {margin-bottom:10px;}';
                        css += '.ponyhoof_options_aboutsection {border-top:1px solid #ccc;margin:10px -10px 0;}';
@@ -4765,8 +5161,8 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                };
                                
                                $('ponyhoof_kc_share').addEventListener('click', function() {
                                };
                                
                                $('ponyhoof_kc_share').addEventListener('click', function() {
-                                       var width = 657;
-                                       var height = 412;
+                                       var width = 626;
+                                       var height = 436;
                                        w.open('//'+getFbDomain()+'/sharer/sharer.php?u=http://www.youtube.com/watch?v=zR7V_bCyZe0', 'ponyhoof_kc_sharer', 'left='+((screen.width-width)/2)+',top='+(((screen.height-height)/2)-50)+',width='+width+',height='+height);
                                        return false;
                                }, false);
                                        w.open('//'+getFbDomain()+'/sharer/sharer.php?u=http://www.youtube.com/watch?v=zR7V_bCyZe0', 'ponyhoof_kc_sharer', 'left='+((screen.width-width)/2)+',top='+(((screen.height-height)/2)-50)+',width='+width+',height='+height);
                                        return false;
                                }, false);
@@ -4827,11 +5223,17 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        addClass(d.documentElement, 'ponyhoof_welcome_html_scenery_loaded');
                        
                        var co = '';
                        addClass(d.documentElement, 'ponyhoof_welcome_html_scenery_loaded');
                        
                        var co = '';
-                       co += '<div class="uiBoxYellow ponyhoof_message ponyhoof_updater_newVersion">';
+                       co += '<div class="ponyhoof_message uiBoxYellow ponyhoof_updater_newVersion">';
                                co += '<a href="#" class="uiButton uiButtonSpecial rfloat ponyhoof_updater_updateNow" role="button"><span class="uiButtonText">Update now</span></a>';
                                co += '<span class="wrap">An update (v<span class="ponyhoof_updater_versionNum"></span>) for Ponyhoof is available.</span>';
                        co += '</div>';
                                co += '<a href="#" class="uiButton uiButtonSpecial rfloat ponyhoof_updater_updateNow" role="button"><span class="uiButtonText">Update now</span></a>';
                                co += '<span class="wrap">An update (v<span class="ponyhoof_updater_versionNum"></span>) for Ponyhoof is available.</span>';
                        co += '</div>';
-                       
+
+                       co += renderBrowserConfigWarning();
+
+                       if (STORAGEMETHOD == 'chrome' && chrome.extension.inIncognitoContext) {
+                               co += '<div class="ponyhoof_message uiBoxYellow">Please note that your Ponyhoof settings are saved and not cleared, even if you are using Chrome incognito mode. Please disable Ponyhoof from running in incognito mode if you do not want others to know that you logged on to this browser.</div><br>';
+                       }
+
                        co += '<strong>Select your favorite character to get started:</strong>';
                        co += '<div id="ponyhoof_welcome_pony"></div>';
                        co += '<div id="ponyhoof_welcome_afterClose">You can re-select your character in Ponyhoof Options at the Account menu.</div>';
                        co += '<strong>Select your favorite character to get started:</strong>';
                        co += '<div id="ponyhoof_welcome_pony"></div>';
                        co += '<div id="ponyhoof_welcome_afterClose">You can re-select your character in Ponyhoof Options at the Account menu.</div>';
@@ -4853,11 +5255,14 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        }
                        k.dialogFirst.changeContent(co);
                        k.dialogFirst.changeBottom(bottom);
                        }
                        k.dialogFirst.changeContent(co);
                        k.dialogFirst.changeBottom(bottom);
+
+                       k.dialogFirst.dialog.className += ' ponyhoof_dialog_localstorageWarningEmbedded';
                        
                        DIALOGCOUNT += 4;
 
                        var menuClosed = false;
                        var ponySelector = new PonySelector($('ponyhoof_welcome_pony'), k.param);
                        
                        DIALOGCOUNT += 4;
 
                        var menuClosed = false;
                        var ponySelector = new PonySelector($('ponyhoof_welcome_pony'), k.param);
+                       ponySelector.saveTheme = false;
                        ponySelector.createSelector();
                        w.setTimeout(function() {
                                ponySelector.menu.open();
                        ponySelector.createSelector();
                        w.setTimeout(function() {
                                ponySelector.menu.open();
@@ -4905,8 +5310,8 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        }
 
                        $('ponyhoof_welcome_next').addEventListener('click', function(e) {
                        }
 
                        $('ponyhoof_welcome_next').addEventListener('click', function(e) {
+                               e.preventDefault();
                                if (hasClass(this, 'uiButtonDisabled')) {
                                if (hasClass(this, 'uiButtonDisabled')) {
-                                       e.preventDefault();
                                        return false;
                                }
                                
                                        return false;
                                }
                                
@@ -4921,13 +5326,12 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                
                                userSettings.theme = CURRENTPONY;
                                userSettings.chatSound1401 = true;
                                
                                userSettings.theme = CURRENTPONY;
                                userSettings.chatSound1401 = true;
-                               // Detect Social Fixer
-                               if ($('bfb_options_button')) {
-                                       userSettings.show_messages_other = false;
-                               }
                                saveSettings();
 
                                globalSettings.lastVersion = VERSION;
                                saveSettings();
 
                                globalSettings.lastVersion = VERSION;
+                               if (globalSettings.allowLoginScreen) {
+                                       globalSettings.lastUserId = USERID;
+                               }
                                saveGlobalSettings();
                                
                                if (CURRENTPONY == 'pinkie') {
                                saveGlobalSettings();
                                
                                if (CURRENTPONY == 'pinkie') {
@@ -4935,8 +5339,6 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                } else {
                                        k.createFinalDialog();
                                }
                                } else {
                                        k.createFinalDialog();
                                }
-
-                               e.preventDefault();
                        }, false);
                };
                
                        }, false);
                };
                
@@ -4982,14 +5384,14 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
 
                        if (!ISUSINGBUSINESS) {
                                c += '<span class="ponyhoof_brohoof_button">'+capitaliseFirstLetter(CURRENTSTACK['like'])+'</span> us to receive news and help for Ponyhoof!';
 
                        if (!ISUSINGBUSINESS) {
                                c += '<span class="ponyhoof_brohoof_button">'+capitaliseFirstLetter(CURRENTSTACK['like'])+'</span> us to receive news and help for Ponyhoof!';
-                               c += '<iframe src="about:blank" id="ponyhoof_welcome_like" scrolling="no" frameborder="0" allowTransparency="true"></iframe>';
+                               c += '<div id="ponyhoof_welcome_likeWrap"><iframe src="about:blank" id="ponyhoof_welcome_like" scrolling="no" frameborder="0" allowTransparency="true"></iframe></div>';
                                c += 'Got somepony else that you want to suggest? Want to leave some feedback? <a href="'+w.location.protocol+PONYHOOF_URL+'" target="_top" id="ponyhoof_welcome_posttowall">Let us know at our page!</a>';
                        } else {
                                c += '<a href="'+w.location.protocol+PONYHOOF_URL+'" target="_top" id="ponyhoof_welcome_posttowall">Visit our Ponyhoof page for the latest news!</a>';
                        }
                        
                        var successText = '';
                                c += 'Got somepony else that you want to suggest? Want to leave some feedback? <a href="'+w.location.protocol+PONYHOOF_URL+'" target="_top" id="ponyhoof_welcome_posttowall">Let us know at our page!</a>';
                        } else {
                                c += '<a href="'+w.location.protocol+PONYHOOF_URL+'" target="_top" id="ponyhoof_welcome_posttowall">Visit our Ponyhoof page for the latest news!</a>';
                        }
                        
                        var successText = '';
-                       var ponyData = convertCodeToData(CURRENTPONY);
+                       var ponyData = convertCodeToData(REALPONY);
                        if (ponyData.successText) {
                                successText = ponyData.successText;
                        } else {
                        if (ponyData.successText) {
                                successText = ponyData.successText;
                        } else {
@@ -5083,11 +5485,22 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        css += '#ponyhoof_dialog_welcome_pinkie .generic_dialog_popup, #ponyhoof_dialog_welcome_pinkie .popup {width:720px;}';
                        css += '#ponyhoof_dialog_welcome_pinkie .content {line-height:0;padding:0;}';
                        
                        css += '#ponyhoof_dialog_welcome_pinkie .generic_dialog_popup, #ponyhoof_dialog_welcome_pinkie .popup {width:720px;}';
                        css += '#ponyhoof_dialog_welcome_pinkie .content {line-height:0;padding:0;}';
                        
-                       css += '#ponyhoof_welcome_like {border:none;overflow:hidden;width:292px;height:62px;margin:8px 0;display:block;}';
+                       css += '#ponyhoof_welcome_likeWrap {margin:8px 0;}';
+                       css += '#ponyhoof_welcome_like {border:none;overflow:hidden;width:292px;height:62px;margin:0;}';
                        
                        injectManualStyle(css, 'welcome');
                };
        };
                        
                        injectManualStyle(css, 'welcome');
                };
        };
+
+       var renderBrowserConfigWarning = function() {
+               var c = '';
+               if (STORAGEMETHOD == 'localstorage') {
+                       c += '<div class="ponyhoof_message uiBoxRed">Ponyhoof is not supported on this browser configuration. Your settings will get cleared out from time to time, and some features such as update-checking and Browser Ponies will not work.</div><br>';
+               } else if (ISMOBILE) {
+                       c += '<div class="ponyhoof_message uiBoxYellow">Mobile support for Ponyhoof is provided as a courtesy and is not officially supported.</div><br>';
+               }
+               return c;
+       };
        
        // Theme
        function getFaviconTag() {
        
        // Theme
        function getFaviconTag() {
@@ -5109,6 +5522,13 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                var favicon = getFaviconTag();
                
                if (favicon) {
                var favicon = getFaviconTag();
                
                if (favicon) {
+                       // Don't change the favicon on apps.facebook.com
+                       if (w.location.hostname.indexOf('apps.') === 0) {
+                               if (favicon.href.indexOf('.ico') !== favicon.href.length-('.ico'.length)) {
+                                       return;
+                               }
+                       }
+
                        var newIcon = favicon.cloneNode(true);
                } else {
                        var newIcon = d.createElement('link');
                        var newIcon = favicon.cloneNode(true);
                } else {
                        var newIcon = d.createElement('link');
@@ -5126,7 +5546,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        }
                } else {
                        newIcon.type = 'image/x-icon';
                        }
                } else {
                        newIcon.type = 'image/x-icon';
-                       newIcon.href = '//fbstatic-a.akamaihd.net/rsrc.php/y9/r/FXHC9IQ-JIj.ico';
+                       newIcon.href = '//fbstatic-a.akamaihd.net/rsrc.php/yl/r/H3nktOa7ZMg.ico';
                }
 
                if (favicon) {
                }
 
                if (favicon) {
@@ -5305,7 +5725,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                if (!$('ponyhoof_style_custombg')) {
                        injectManualStyle('', 'custombg');
                }
                if (!$('ponyhoof_style_custombg')) {
                        injectManualStyle('', 'custombg');
                }
-               $('ponyhoof_style_custombg').textContent = '/* '+SIG+' */html,.fbIndex{background-position:center center !important;background-image:url("'+base64+'") !important;}';
+               $('ponyhoof_style_custombg').textContent = '/* '+SIG+' */html,.fbIndex{background-position:center center !important;background-image:url("'+base64+'") !important;background-repeat:no-repeat;}';
        }
 
        var changeCostume = function(costume) {
        }
 
        var changeCostume = function(costume) {
@@ -5490,7 +5910,8 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        if (hasClass(textbox, 'DOMControl_placeholder')) {
                                textbox.value = placeholders[i];
                        }
                        if (hasClass(textbox, 'DOMControl_placeholder')) {
                                textbox.value = placeholders[i];
                        }
-               }
+
+                                       }
 
                /*try {
                        if (typeof USW.requireLazy == 'function') {
 
                /*try {
                        if (typeof USW.requireLazy == 'function') {
@@ -5603,6 +6024,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        ,["Friends of Friends", capitaliseFirstLetter(CURRENTSTACK['friends'])+" of "+capitaliseFirstLetter(CURRENTSTACK['friends'])]
                        ,["Friends", capitaliseFirstLetter(CURRENTSTACK['friends'])]
                        ,["Friends of Guests", capitaliseFirstLetter(CURRENTSTACK['friends'])+" of Guests"]
                        ,["Friends of Friends", capitaliseFirstLetter(CURRENTSTACK['friends'])+" of "+capitaliseFirstLetter(CURRENTSTACK['friends'])]
                        ,["Friends", capitaliseFirstLetter(CURRENTSTACK['friends'])]
                        ,["Friends of Guests", capitaliseFirstLetter(CURRENTSTACK['friends'])+" of Guests"]
+                       ,["Friends of Contributors", capitaliseFirstLetter(CURRENTSTACK['friends'])+" of Contributors"]
                        ,["Only Me", "Alone"]
                        ,["Only me", "Alone"]
                        ,["Only Me (+)", "Alone (+)"]
                        ,["Only Me", "Alone"]
                        ,["Only me", "Alone"]
                        ,["Only Me (+)", "Alone (+)"]
@@ -5623,6 +6045,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        ,["All Friends", "All "+capitaliseFirstLetter(CURRENTSTACK['friends'])]
                        ,["All friends", "All "+CURRENTSTACK['friends']]
                        ,["Poke", "Nuzzle"]
                        ,["All Friends", "All "+capitaliseFirstLetter(CURRENTSTACK['friends'])]
                        ,["All friends", "All "+CURRENTSTACK['friends']]
                        ,["Poke", "Nuzzle"]
+                       ,["Request Deleted", "Request Nuked"]
                        
                        ,["Likes", capitaliseFirstLetter(CURRENTSTACK['likes'])]
                        ,["Friends' Posts", capitaliseFirstLetter(CURRENTSTACK['friends'])+"' Posts"]
                        
                        ,["Likes", capitaliseFirstLetter(CURRENTSTACK['likes'])]
                        ,["Friends' Posts", capitaliseFirstLetter(CURRENTSTACK['friends'])+"' Posts"]
@@ -5665,6 +6088,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        ,["Messages", "Trough"]
                        ,["New Message", "Write a Friendship Report"]
                        ,["Other Messages", "Other Friendship Reports"]
                        ,["Messages", "Trough"]
                        ,["New Message", "Write a Friendship Report"]
                        ,["Other Messages", "Other Friendship Reports"]
+                       ,["Stay on Message", "Stay on Friendship Report"]
                        
                        ,["Share Photo", "Share Pony Pic"]
                        ,["Share Application", "Share Magic"]
                        
                        ,["Share Photo", "Share Pony Pic"]
                        ,["Share Application", "Share Magic"]
@@ -5709,9 +6133,9 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        ,["Activity Log", "Adventure Log"]
 
                        ,["Invite More Friends", "Invite More Pals"]
                        ,["Activity Log", "Adventure Log"]
 
                        ,["Invite More Friends", "Invite More Pals"]
-                       ,["Find Friends", "Find Friendship"]
-                       ,["Pages I Like", "Pages I "+capitaliseFirstLetter(CURRENTSTACK['like_past'])]
-                       ,["Find My Friends", "Find Friendship"]
+                       ,["Find Friends", CURRENTSTACK['findFriendship']]
+                       //,["Pages I Like", "Pages I "+capitaliseFirstLetter(CURRENTSTACK['like_past'])]
+                       ,["Find My Friends", CURRENTSTACK['findFriendship']]
                        
                        ,["Leave Group", "Leave Herd"]
                        ,["Set Up Group Address", "Set Up Herd Address"]
                        
                        ,["Leave Group", "Leave Herd"]
                        ,["Set Up Group Address", "Set Up Herd Address"]
@@ -5742,7 +6166,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        ,["On your own timeline", "On your own journal"]
                        ,["On a friend's timeline", "On a "+CURRENTSTACK['friend']+"'s journal"]
                        ,["In a group", "In a herd"]
                        ,["On your own timeline", "On your own journal"]
                        ,["On a friend's timeline", "On a "+CURRENTSTACK['friend']+"'s journal"]
                        ,["In a group", "In a herd"]
-                       ,["In a private Message", "In a private Friendship Report"]
+                       ,["In a private message", "In a private friendship report"]
 
                        ,["Timeline", "Journal"]
                        ,["Notes", "Scrolls"]
 
                        ,["Timeline", "Journal"]
                        ,["Notes", "Scrolls"]
@@ -5770,7 +6194,8 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        //,["Add Friends to List", "Add "+capitaliseFirstLetter(CURRENTSTACK['friends'])+" to Directory"]
                        ,["Add Friends to List", "Add "+capitaliseFirstLetter(CURRENTSTACK['friends'])+" to List"]
 
                        //,["Add Friends to List", "Add "+capitaliseFirstLetter(CURRENTSTACK['friends'])+" to Directory"]
                        ,["Add Friends to List", "Add "+capitaliseFirstLetter(CURRENTSTACK['friends'])+" to List"]
 
-                       ,["Pages I like", "Pages I "+capitaliseFirstLetter(CURRENTSTACK.like)]
+                       ,[/^Pages I Like$/, "Pages I "+capitaliseFirstLetter(CURRENTSTACK['like_past'])]
+                       ,[/^Pages I like$/, "Pages I "+CURRENTSTACK['like_past']]
                        ,["My Friends", "My "+capitaliseFirstLetter(CURRENTSTACK.friends)]
                        ,["Tell Friends", "Tell "+capitaliseFirstLetter(CURRENTSTACK.friends)]
 
                        ,["My Friends", "My "+capitaliseFirstLetter(CURRENTSTACK.friends)]
                        ,["Tell Friends", "Tell "+capitaliseFirstLetter(CURRENTSTACK.friends)]
 
@@ -5790,8 +6215,19 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
 
                        ,["Search All Friends", "Search All "+capitaliseFirstLetter(CURRENTSTACK.friends)] // invite friends
                        ,["Top Comments", "Top Friendship Letters"] // comment resort
 
                        ,["Search All Friends", "Search All "+capitaliseFirstLetter(CURRENTSTACK.friends)] // invite friends
                        ,["Top Comments", "Top Friendship Letters"] // comment resort
-                       ,["Likers", "Brohoofers"] // graph search @todo likers
                        ,["Go to Activity Log", "Go to Adventure Log"] // checkpoint
                        ,["Go to Activity Log", "Go to Adventure Log"] // checkpoint
+                       ,["Upload Photo", "Upload Pony Pic"] // composer warning
+                       ,["Poke Back", "Nuzzle Back"] // newsfeed flyout
+                       ,["Friends to Invite", capitaliseFirstLetter(CURRENTSTACK['friends'])+" to Invite"] // app invite
+                       ,["Inbox", "Trough"] // page inbox
+                       ,["Save Profile Info", "Save Journal Info"] // welcome
+                       ,["Like Pages", capitaliseFirstLetter(CURRENTSTACK['like'])+" Pages"] // litestand Following
+                       ,["Visit App Center", "Visit Magic Center"] // litestand Games
+                       ,["Go to App Center", "Go to Magic Center"] // no https on app
+
+                       // graph search
+                       ,["Likers", "Brohoofers"] // @todo likers
+                       ,["Liked by", capitaliseFirstLetter(CURRENTSTACK['liked'])+" by"] // @todo likers
 
                        ,["Create New App", "Create New Magic"]
                        ,["Submit App Detail Page", "Submit Magic Detail Page"]
 
                        ,["Create New App", "Create New Magic"]
                        ,["Submit App Detail Page", "Submit Magic Detail Page"]
@@ -5802,7 +6238,8 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                ];
                
                dialogTitles = [
                ];
                
                dialogTitles = [
-                        [/People who like /i, capitaliseFirstLetter(CURRENTSTACK['people'])+" who "+CURRENTSTACK['like_past']+" "]
+                        [/People who like /, capitaliseFirstLetter(CURRENTSTACK['people'])+" who "+CURRENTSTACK['like_past']+" "]
+                       ,[/People Who Like /, capitaliseFirstLetter(CURRENTSTACK['people'])+" Who "+capitaliseFirstLetter(CURRENTSTACK['like_past'])+" "]
                        ,[/Friends who like /i, capitaliseFirstLetter(CURRENTSTACK['friends_logic'])+" who "+CURRENTSTACK['like_past']+" "]
                        ,["People who voted for this option", capitaliseFirstLetter(CURRENTSTACK['people'])+" who voted for this option"]
                        ,["People who are following this question", capitaliseFirstLetter(CURRENTSTACK['people'])+" who are following this question"]
                        ,[/Friends who like /i, capitaliseFirstLetter(CURRENTSTACK['friends_logic'])+" who "+CURRENTSTACK['like_past']+" "]
                        ,["People who voted for this option", capitaliseFirstLetter(CURRENTSTACK['people'])+" who voted for this option"]
                        ,["People who are following this question", capitaliseFirstLetter(CURRENTSTACK['people'])+" who are following this question"]
@@ -5811,6 +6248,8 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        ,["Added Friends", "Added "+capitaliseFirstLetter(CURRENTSTACK.friends)]
                        ,["People who can repro this", capitaliseFirstLetter(CURRENTSTACK['people'])+" who can repro this"]
                        ,["Friends that like this", capitaliseFirstLetter(CURRENTSTACK['friends_logic'])+" that "+CURRENTSTACK['like_past']+" this"]
                        ,["Added Friends", "Added "+capitaliseFirstLetter(CURRENTSTACK.friends)]
                        ,["People who can repro this", capitaliseFirstLetter(CURRENTSTACK['people'])+" who can repro this"]
                        ,["Friends that like this", capitaliseFirstLetter(CURRENTSTACK['friends_logic'])+" that "+CURRENTSTACK['like_past']+" this"]
+                       ,["People", capitaliseFirstLetter(CURRENTSTACK['people'])] // gifts
+                       ,["Choose friends to help translate", "Choose "+CURRENTSTACK['friends']+" to help translate"]
                        
                        ,["Share this Profile", "Share this Journal"]
                        ,["Share This Photo", "Share This Pony Pic"]
                        
                        ,["Share this Profile", "Share this Journal"]
                        ,["Share This Photo", "Share This Pony Pic"]
@@ -5851,7 +6290,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        ,["Delete Video?", "Nuke Video?"]
                        ,["Delete Milestone", "Nuke Milestone"]
                        ,["Delete Page?", "Nuke Page?"]
                        ,["Delete Video?", "Nuke Video?"]
                        ,["Delete Milestone", "Nuke Milestone"]
                        ,["Delete Page?", "Nuke Page?"]
-                       ,["Delete this Message?", "Nuke this Friendship Report?"]
+                       ,["Delete This Message?", "Nuke This Friendship Report?"]
                        ,["Delete This Entire Conversation?", "Nuke This Entire Conversation?"]
                        ,["Delete These Messages?", "Nuke These Friendship Reports?"]
                        ,["Delete Post", "Nuke Post"]
                        ,["Delete This Entire Conversation?", "Nuke This Entire Conversation?"]
                        ,["Delete These Messages?", "Nuke These Friendship Reports?"]
                        ,["Delete Post", "Nuke Post"]
@@ -5874,8 +6313,10 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        ,["Delete Entry?", "Nuke Entry?"]
                        ,["Delete Video", "Nuke Video"]
                        ,["Delete Event", "Nuke Adventure"] // for group admin
                        ,["Delete Entry?", "Nuke Entry?"]
                        ,["Delete Video", "Nuke Video"]
                        ,["Delete Event", "Nuke Adventure"] // for group admin
+                       ,["Remove Profile Picture", "Nuke Journal Pony Pic"]
+                       ,["Delete Photo?", "Nuke Pony Pic?"]
 
 
-                       ,["Report and/or Block This Person", "Whine and/or Block This Pony"] // 0
+                       ,["Report and/or Block This Person", "Whine and/or Block This "+capitaliseFirstLetter(CURRENTSTACK['person'])] // 0
                        ,["Report This Photo", "Whine About This Pony Pic"]
                        ,["Report This Event", "Whine About This Adventure"]
                        ,["Report Conversation", "Whine About Conversation"]
                        ,["Report This Photo", "Whine About This Pony Pic"]
                        ,["Report This Event", "Whine About This Adventure"]
                        ,["Report Conversation", "Whine About Conversation"]
@@ -5896,6 +6337,9 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        ,["Why don't you like this photo?", "Why don't you like this pony pic?"]
                        ,["Report Spam or Abuse", "Whine as Spam or Abuse"] // messages
                        ,["Report Incorrect External Link", "Whine About Incorrect External Link"] // page vertex // 87
                        ,["Why don't you like this photo?", "Why don't you like this pony pic?"]
                        ,["Report Spam or Abuse", "Whine as Spam or Abuse"] // messages
                        ,["Report Incorrect External Link", "Whine About Incorrect External Link"] // page vertex // 87
+                       ,["Post Reported", "Whined About Post"]
+                       ,[" Report a Problem ", "Whine About a Problem"]
+                       ,["Report a Problem", "Whine About a Problem"]
 
                        // report types: 5: links / 125: status / 70: group post / 86: og post
                        ,["Is this post about you or a friend?", "Is this post about you or a "+CURRENTSTACK.friend+"?"] 
 
                        // report types: 5: links / 125: status / 70: group post / 86: og post
                        ,["Is this post about you or a friend?", "Is this post about you or a "+CURRENTSTACK.friend+"?"] 
@@ -5929,6 +6373,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        ,["People in this message", capitaliseFirstLetter(CURRENTSTACK['people'])+" in this friendship report"]
                        ,["Message Sent", "Friendship Report Sent"]
                        ,["Message Filtering Preferences", "Friendship Report Filtering Preferences"]
                        ,["People in this message", capitaliseFirstLetter(CURRENTSTACK['people'])+" in this friendship report"]
                        ,["Message Sent", "Friendship Report Sent"]
                        ,["Message Filtering Preferences", "Friendship Report Filtering Preferences"]
+                       ,["Don't Send Message?", "Don't Send Friendship Report?"] // webmessenger
                        
                        ,["Create New Group", "Create New Herd"]
                        ,[/Create New Event/, "Plan an Adventure"]
                        
                        ,["Create New Group", "Create New Herd"]
                        ,[/Create New Event/, "Plan an Adventure"]
@@ -5942,6 +6387,8 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        ,["Invite People to Group by Email", "Invite "+capitaliseFirstLetter(CURRENTSTACK.people)+" to Herd by Email"]
                        ,["Remove Group Admin", "Remove Herd Admin"]
                        ,["Add Group Admin", "Add Herd Admin"]
                        ,["Invite People to Group by Email", "Invite "+capitaliseFirstLetter(CURRENTSTACK.people)+" to Herd by Email"]
                        ,["Remove Group Admin", "Remove Herd Admin"]
                        ,["Add Group Admin", "Add Herd Admin"]
+                       ,["Group Admins", "Herd Admins"]
+                       ,["Change Group Privacy?", "Change Herd Privacy?"]
 
                        ,["Cancel Event?", "Cancel Adventure?"]
                        ,["Change Event Photo", "Change Pony Pic for Adventure"]
 
                        ,["Cancel Event?", "Cancel Adventure?"]
                        ,["Change Event Photo", "Change Pony Pic for Adventure"]
@@ -5967,7 +6414,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        ,["Block App?", "Block Magic?"]
                        //,["List Notification Settings", "Directory Spark Settings"]
                        ,["List Notification Settings", "List Spark Settings"]
                        ,["Block App?", "Block Magic?"]
                        //,["List Notification Settings", "Directory Spark Settings"]
                        ,["List Notification Settings", "List Spark Settings"]
-                       ,["Like This Photo?", "Like This Pony Pic?"]
+                       ,["Like This Photo?", capitaliseFirstLetter(CURRENTSTACK['like'])+" This Pony Pic?"]
                        ,["Friends", capitaliseFirstLetter(CURRENTSTACK['friends'])]
                        ,["All Friends", "All "+capitaliseFirstLetter(CURRENTSTACK['friends'])]
                        ,["Suggest Friend", "Suggest "+capitaliseFirstLetter(CURRENTSTACK.friend)]
                        ,["Friends", capitaliseFirstLetter(CURRENTSTACK['friends'])]
                        ,["All Friends", "All "+capitaliseFirstLetter(CURRENTSTACK['friends'])]
                        ,["Suggest Friend", "Suggest "+capitaliseFirstLetter(CURRENTSTACK.friend)]
@@ -5986,6 +6433,10 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        ,["Turn Off Chat", "Turn Off Whinny Chat"]
                        ,["Access Log", "Adventure Log"]
                        ,["Post to Your Wall", "Post to Your Journal"]
                        ,["Turn Off Chat", "Turn Off Whinny Chat"]
                        ,["Access Log", "Adventure Log"]
                        ,["Post to Your Wall", "Post to Your Journal"]
+                       ,["About Adding Comments by Email", "About Adding Friendship Letters by Email"]
+                       ,["Find Your Friends", CURRENTSTACK['findFriendship']]
+                       ,["Upload a profile picture", "Upload a journal pony pic"]
+                       ,["Photo Upload Failed", "Pony Pic Upload Failed"] // chat photo upload
 
                        ,["Take a Profile Picture", "Take a Journal Pony Pic"]
                        ,["Choosing Your Cover Photo", "Choosing Your Cover Pony Pic"]
 
                        ,["Take a Profile Picture", "Take a Journal Pony Pic"]
                        ,["Choosing Your Cover Photo", "Choosing Your Cover Pony Pic"]
@@ -5995,9 +6446,13 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        ,["Choose from Photos", "Choose from Pony Pics"]
                        ,["Choose Your Cover Photo", "Choose Your Cover Pony Pic"]
                        ,["Choose from your synced photos", "Choose from your synced pony pics"]
                        ,["Choose from Photos", "Choose from Pony Pics"]
                        ,["Choose Your Cover Photo", "Choose Your Cover Pony Pic"]
                        ,["Choose from your synced photos", "Choose from your synced pony pics"]
+                       ,["Upload Your Profile Picture", "Upload Your Journal Pony Pic"] // welcome
 
                        ,["Create New App", "Create New Magic"]
                        ,["Add Test Users to other Apps", "Add Test Users to other Magic"]
 
                        ,["Create New App", "Create New Magic"]
                        ,["Add Test Users to other Apps", "Add Test Users to other Magic"]
+
+                       ,["Hidden in Groups", "Hidden in Herds"] // timeline
+                       ,["Add Friends as Contributors", "Add "+capitaliseFirstLetter(CURRENTSTACK['friends'])+" as Contributors"] // shared albums
                ];
                if (ponyData.successText) {
                        dialogTitles.push(["Success", ponyData.successText]);
                ];
                if (ponyData.successText) {
                        dialogTitles.push(["Success", ponyData.successText]);
@@ -6016,6 +6471,10 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                ,["Anyone can see and join this event", "Anypony can see and join this adventure"]
                                ,["Your friends will see your comment in News Feed.", "Your "+CURRENTSTACK['friends']+" will see your friendship letter in Feed Bag."]
                                ,[/\bfriends in group\b/, CURRENTSTACK['friends']+" in herd"]
                                ,["Anyone can see and join this event", "Anypony can see and join this adventure"]
                                ,["Your friends will see your comment in News Feed.", "Your "+CURRENTSTACK['friends']+" will see your friendship letter in Feed Bag."]
                                ,[/\bfriends in group\b/, CURRENTSTACK['friends']+" in herd"]
+                               ,["Your post will only be promoted to the people who like your Page and their friends", "Your post will only be promoted to the "+CURRENTSTACK['people']+" who like your Page and their "+CURRENTSTACK['friends']]
+                               ,["Your post will be promoted to people based on the targeting you choose below.", "Your post will be promoted to "+CURRENTSTACK['people']+" based on the targeting you choose below."]
+                               ,["Friends and friends of anyone tagged", capitaliseFirstLetter(CURRENTSTACK['friends'])+" and "+CURRENTSTACK['friends']+" of anypony tagged"]
+                               ,["Guests of this event will see the comment you write below.", "Guests of this adventure will see the friendship letter you write below."]
                        ,[/\bfriends of friends\b/g, CURRENTSTACK['friends']+" of "+CURRENTSTACK['friends']]
                        ,[/\bFriends of Friends\b/g, capitaliseFirstLetter(CURRENTSTACK['friends'])+" of "+capitaliseFirstLetter(CURRENTSTACK['friends'])]
                        ,[/\bfriends\b/g, CURRENTSTACK['friends']]
                        ,[/\bfriends of friends\b/g, CURRENTSTACK['friends']+" of "+CURRENTSTACK['friends']]
                        ,[/\bFriends of Friends\b/g, capitaliseFirstLetter(CURRENTSTACK['friends'])+" of "+capitaliseFirstLetter(CURRENTSTACK['friends'])]
                        ,[/\bfriends\b/g, CURRENTSTACK['friends']]
@@ -6031,14 +6490,18 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                ,["Anyone can see this Everypony comment", "Everypony can see this public friendship letter"]
                                //,["Remember: all place ratings are Everypony.", "Remember: everypony can see all place ratings."]
                                ,["Everypony can see posts on this Everypony page.", "Everypony can see posts on this public page."]
                                ,["Anyone can see this Everypony comment", "Everypony can see this public friendship letter"]
                                //,["Remember: all place ratings are Everypony.", "Remember: everypony can see all place ratings."]
                                ,["Everypony can see posts on this Everypony page.", "Everypony can see posts on this public page."]
-                               ,["Name, profile picture, age range, gender, language, country and other public info", "Name, profile picture, age range, gender, language, country and other public info"]
+                               ,["Name, profile picture, age range, gender, language, country and other public info", "Name, journal pony pic, age range, gender, language, country and other public info"]
                                //,["Name, profile picture, age range, gender, language, country and other Everypony info", "Name, profile picture, age range, gender, language, country and other public info"]
                                ,["This will hide you from Everypony attribution", "This will hide you from public attribution"]
                        ,["Remember: all place ratings are public.", "Remember: everypony can see all place ratings."]
                        ,["Shared with: Anyone who can see this page", "Shared with: Anypony who can see this page"]
                        ,["Anyone can see the group, who's in it, and what members post.", "Anypony can see the herd, who's in it, and what members post."]
                                //,["Name, profile picture, age range, gender, language, country and other Everypony info", "Name, profile picture, age range, gender, language, country and other public info"]
                                ,["This will hide you from Everypony attribution", "This will hide you from public attribution"]
                        ,["Remember: all place ratings are public.", "Remember: everypony can see all place ratings."]
                        ,["Shared with: Anyone who can see this page", "Shared with: Anypony who can see this page"]
                        ,["Anyone can see the group, who's in it, and what members post.", "Anypony can see the herd, who's in it, and what members post."]
+                       ,["Anyone can see the group, who's in it and what members post.", "Anypony can see the herd, who's in it and what members post."] // English (UK)
                        ,["Anyone can see the group and who's in it. Only members see posts.", "Anypony can see the herd and who's in it. Only members see posts."]
                        ,["Only members see the group, who's in it, and what members post.", "Only members see the herd, who's in it, and what members post."]
                        ,["Anyone can see the group and who's in it. Only members see posts.", "Anypony can see the herd and who's in it. Only members see posts."]
                        ,["Only members see the group, who's in it, and what members post.", "Only members see the herd, who's in it, and what members post."]
+                       ,["Only members see the group, who's in it and what members post.", "Only members see the herd, who's in it and what members post."] // English (UK)
+                       ,["The number of people who have checked in to places you've helped recently", "The number of "+CURRENTSTACK['people']+" who have checked in to places you've helped recently"]
+                       ,["People you block can still see and comment on stuff you share in groups, apps and other shared places.", capitaliseFirstLetter(CURRENTSTACK['people'])+" you block can still see and comment on stuff you share in herds, magic and other shared places."]
                        
                        ,["Show comments", "Show friendship letters"]
                        ,["Comment deleted", "Friendship letter nuked"]
                        
                        ,["Show comments", "Show friendship letters"]
                        ,["Comment deleted", "Friendship letter nuked"]
@@ -6058,6 +6521,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        ,["Delete", "Nuke"]
                        ,["Delete and Ban", "Nuke and Banish"]
                        ,["Report Place", "Whine About Place"]
                        ,["Delete", "Nuke"]
                        ,["Delete and Ban", "Nuke and Banish"]
                        ,["Report Place", "Whine About Place"]
+                       ,["Delete Album", "Nuke Album"]
 
                        ,["Shown on Timeline", "Shown on Journal"]
                        ,["Allow on Timeline", "Allow on Journal"]
 
                        ,["Shown on Timeline", "Shown on Journal"]
                        ,["Allow on Timeline", "Allow on Journal"]
@@ -6100,12 +6564,19 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        ,["Manage Apps", "Manage Magic"]
                        ,["Events", "Adventures"]
                        ,["App Center", "Magic Center"]
                        ,["Manage Apps", "Manage Magic"]
                        ,["Events", "Adventures"]
                        ,["App Center", "Magic Center"]
+                       ,["Add Friend", "Add "+capitaliseFirstLetter(CURRENTSTACK['friend'])] // people you may know
 
                        // photo comments
                        ,["Attach a Photo", "Attach a Pony Pic"]
 
                        // photo comments
                        ,["Attach a Photo", "Attach a Pony Pic"]
+                       ,["Remove Photo", "Nuke Pony Pic"]
 
                        ,["Dismiss and go to most recent message", "Dismiss and go to most recent friendship letter"] // messages
                        ,["To create an offer, your Page needs at least 100 likes.", "To create an offer, your Page needs at least 100 "+CURRENTSTACK['likes']+"."] // page composer
 
                        ,["Dismiss and go to most recent message", "Dismiss and go to most recent friendship letter"] // messages
                        ,["To create an offer, your Page needs at least 100 likes.", "To create an offer, your Page needs at least 100 "+CURRENTSTACK['likes']+"."] // page composer
+                       ,["Verified profile", "Verified journal"] // verified
+                       ,["Tags help people find groups about certain topics.", "Tags help "+CURRENTSTACK['people']+" find herds about certain topics."] // verified
+                       ,["This post is more engaging than many of your other posts. You can boost it to get more likes and comments.", "This post is more engaging than many of your other posts. You can boost it to get more "+CURRENTSTACK['likes']+" and friendship letters."] // page admin pabel
+                       ,["Help Facebook gather feedback about News Feed. Your input is private and won't be shared.", "Help Facebook gather feedback about Feed Bag. Your input is private and won't be shared."]
+                       ,["Like", capitaliseFirstLetter(CURRENTSTACK['like'])]
 
                        // developers
                        ,["Enable the newsfeed ticker", "Enable the feedbag ticker"]
 
                        // developers
                        ,["Enable the newsfeed ticker", "Enable the feedbag ticker"]
@@ -6113,8 +6584,15 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        ,["Remove selected users from this app.", "Remove selected users from this magic."]
 
                        // insights
                        ,["Remove selected users from this app.", "Remove selected users from this magic."]
 
                        // insights
-                       ,["The total number of clicks on your posts, not including likes, comments, or shares, which are broken out above.", "The total number of clicks on your posts, not including "+CURRENTSTACK['likes']+", comments, or shares, which are broken out above."]
-                       ,["The percentage of people who liked, commented, shared or clicked on your post after having seen it.", "The percentage of people who "+CURRENTSTACK['liked']+", commented, shared or clicked on your post after having seen it."]
+                       ,["The total number of clicks on your posts, not including likes, comments, or shares, which are broken out above.", "The total number of clicks on your posts, not including "+CURRENTSTACK['likes']+", friendship letters, or shares, which are broken out above."]
+                       ,["The percentage of people who liked, commented, shared or clicked on your post after having seen it.", "The percentage of "+CURRENTSTACK['people']+" who "+CURRENTSTACK['liked']+", commented, shared or clicked on your post after having seen it."]
+                       ,["The unique number of people who liked, commented, shared or clicked on your posts", "The unique number of "+CURRENTSTACK['people']+" who "+CURRENTSTACK['liked']+", commented, shared or clicked on your posts"]
+
+                       ,["The week when the most people were talking about this Page.", "The week when the most "+CURRENTSTACK['people']+" were talking about this Page."]
+                       ,["The city where most of the people talking about this Page are from.", "The city where most of the "+CURRENTSTACK['people']+" talking about this Page are from."]
+                       ,["The largest age group of the people talking about this Page.", "The largest age group of the "+CURRENTSTACK['people']+" talking about this Page."]
+                       ,["The number of photos that have this Page tagged.", "The number of pony pics that have this Page tagged."]
+                       ,["The week when the most people checked in at this Page's location.", "The week when the most "+CURRENTSTACK['people']+" checked in at this Page's location."]
                ];
                if (ponyData.loadingText) {
                        tooltipTitles.push(["Loading...", ponyData.loadingText]);
                ];
                if (ponyData.loadingText) {
                        tooltipTitles.push(["Loading...", ponyData.loadingText]);
@@ -6128,7 +6606,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        ,["People To Follow", capitaliseFirstLetter(CURRENTSTACK.people)+" To Follow"]
                        ,["Poke Suggestions", "Nuzzle Suggestions"]
                        ,["Suggested Groups", "Suggested Herds"]
                        ,["People To Follow", capitaliseFirstLetter(CURRENTSTACK.people)+" To Follow"]
                        ,["Poke Suggestions", "Nuzzle Suggestions"]
                        ,["Suggested Groups", "Suggested Herds"]
-                       ,["Find More Friends", "Find Friendship"]
+                       ,["Find More Friends", CURRENTSTACK['findFriendship']]
                        ,["Rate Recently Used Apps", "Rate Recently Used Magic"]
                        ,["Friends' Photos", "Pals' Pony Pics"]
                        ,["Add a Location to Your Photos", "Add a Location to Your Pony Pics"]
                        ,["Rate Recently Used Apps", "Rate Recently Used Magic"]
                        ,["Friends' Photos", "Pals' Pony Pics"]
                        ,["Add a Location to Your Photos", "Add a Location to Your Pony Pics"]
@@ -6137,11 +6615,19 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        ,["Entertainment Pages You Might Like", "Entertainment Pages You Might "+capitaliseFirstLetter(CURRENTSTACK.like)]
                        ,["Music Pages You Might Like", "Music Pages You Might "+capitaliseFirstLetter(CURRENTSTACK.like)]
                        ,["Add Personal Contacts as Friends", "Add Personal Contacts as "+capitaliseFirstLetter(CURRENTSTACK.friends)]
                        ,["Entertainment Pages You Might Like", "Entertainment Pages You Might "+capitaliseFirstLetter(CURRENTSTACK.like)]
                        ,["Music Pages You Might Like", "Music Pages You Might "+capitaliseFirstLetter(CURRENTSTACK.like)]
                        ,["Add Personal Contacts as Friends", "Add Personal Contacts as "+capitaliseFirstLetter(CURRENTSTACK.friends)]
-                       ,["Find Friends", "Find Friendship"]
+                       ,["Find Friends", CURRENTSTACK['findFriendship']]
                        //,[/On This List/, "On This Directory"]
                        //,["On this list", "On this directory"]
                        //,["On This List", "On This Directory"]
                        ,["Related Groups", "Related Herds"]
                        //,[/On This List/, "On This Directory"]
                        //,["On this list", "On this directory"]
                        //,["On This List", "On This Directory"]
                        ,["Related Groups", "Related Herds"]
+                       ,["Entertainment Pages You May Like", "Entertainment Pages You May "+capitaliseFirstLetter(CURRENTSTACK['like'])]
+                       ,["Music Pages You May Like", "Music Pages You May "+capitaliseFirstLetter(CURRENTSTACK['like'])]
+                       ,["No New Friend Requests", "No New Friendship Requests"] // /friends/requests/
+                       ,["Games Your Friends Are Playing", "Games Your "+capitaliseFirstLetter(CURRENTSTACK['friends'])+" Are Playing"]
+                       ,["Promote This Event", "Promote This Adventure"]
+                       ,["Respond to Your Friend Request", "Respond to Your Friendship Request"] // /friends/requests/
+                       ,[/^Respond to Your ([0-9]+?) Friend Requests$/, "Respond to Your $1 Friendship Requests"] // /friends/requests/
+                       ,["Add People You Know", "Add "+capitaliseFirstLetter(CURRENTSTACK['people'])+" You Know"]
 
                        ,["Notifications", "Sparks"]
                        ,["New Likes", "New "+capitaliseFirstLetter(CURRENTSTACK['likes'])]
 
                        ,["Notifications", "Sparks"]
                        ,["New Likes", "New "+capitaliseFirstLetter(CURRENTSTACK['likes'])]
@@ -6153,12 +6639,14 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        ,["People Talking About This", capitaliseFirstLetter(CURRENTSTACK.people)+" Blabbering About This"]
                        ,["Total Likes", "Total "+capitaliseFirstLetter(CURRENTSTACK['likes'])]
                        ,["Games You May Like", "Games You May "+capitaliseFirstLetter(CURRENTSTACK.like)]
                        ,["People Talking About This", capitaliseFirstLetter(CURRENTSTACK.people)+" Blabbering About This"]
                        ,["Total Likes", "Total "+capitaliseFirstLetter(CURRENTSTACK['likes'])]
                        ,["Games You May Like", "Games You May "+capitaliseFirstLetter(CURRENTSTACK.like)]
+                       ,["Add To News Feed", "Add To Feed Bag"]
 
                        ,["Messages", "Trough"]
 
                        ,["Messages", "Trough"]
-                       ,["Other Messages", "Other Friendship Reports"]
-                       ,["Unread Messages", "Unread Friendship Reports"]
-                       ,["Sent Messages", "Sent Friendship Reports"]
-                       ,["Archived Messages", "Archived Friendship Reports"]
+                       //,["Other Messages", "Other Friendship Reports"]
+                       //,["Unread Messages", "Unread Friendship Reports"]
+                       //,["Sent Messages", "Sent Friendship Reports"]
+                       //,["Archived Messages", "Archived Friendship Reports"]
+                       ,["Inbox", "Trough"]
 
                        ,["Groups", "Herds"]
                        //,["Pages and Ads", "Landmarks and Ads"]
 
                        ,["Groups", "Herds"]
                        //,["Pages and Ads", "Landmarks and Ads"]
@@ -6217,6 +6705,8 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        ,["Tagged Photos", "Tagged Pony Pics"]
 
                        ,["Add Groups", "Add Herds"] // /addgroup
                        ,["Tagged Photos", "Tagged Pony Pics"]
 
                        ,["Add Groups", "Add Herds"] // /addgroup
+                       ,["Photos", "Pony Pics"] // /media/video/
+                       ,["Post to Your Wall", "Post to Your Stall"]
                ];
 
                menuTitles = [
                ];
 
                menuTitles = [
@@ -6229,6 +6719,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        ,["Friends", capitaliseFirstLetter(CURRENTSTACK['friends'])]
                        ,["Friends ", capitaliseFirstLetter(CURRENTSTACK['friends'])]
                        ,["Friends of Guests", capitaliseFirstLetter(CURRENTSTACK['friends'])+" of Guests"]
                        ,["Friends", capitaliseFirstLetter(CURRENTSTACK['friends'])]
                        ,["Friends ", capitaliseFirstLetter(CURRENTSTACK['friends'])]
                        ,["Friends of Guests", capitaliseFirstLetter(CURRENTSTACK['friends'])+" of Guests"]
+                       ,["Friends of Contributors", capitaliseFirstLetter(CURRENTSTACK['friends'])+" of Contributors"]
                        ,["Only Me", "Alone"]
                        ,["Only me", "Alone"]
                        ,["No One", "Alone"]
                        ,["Only Me", "Alone"]
                        ,["Only me", "Alone"]
                        ,["No One", "Alone"]
@@ -6257,7 +6748,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        ,["See Banned Users...", "See Ponies who were Banished to the Moon..."]
                        ,["Invite Friends...", "Invite "+capitaliseFirstLetter(CURRENTSTACK['friends'])+"..."]
                        ,["Like As Your Page...", capitaliseFirstLetter(CURRENTSTACK.like)+" As Your Page..."]
                        ,["See Banned Users...", "See Ponies who were Banished to the Moon..."]
                        ,["Invite Friends...", "Invite "+capitaliseFirstLetter(CURRENTSTACK['friends'])+"..."]
                        ,["Like As Your Page...", capitaliseFirstLetter(CURRENTSTACK.like)+" As Your Page..."]
-                       ,["Add App to Page", "Add Magic to App"]
+                       ,["Add App to Page", "Add Magic to Page"]
                        ,["Change Primary Photo", "Change Primary Pony Pic"]
                        ,["Change Date", "Time Travel"]
 
                        ,["Change Primary Photo", "Change Primary Pony Pic"]
                        ,["Change Date", "Time Travel"]
 
@@ -6356,6 +6847,8 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        //,["Report list", "Whine about directory"]
                        ,["Report list", "Whine about list"]
                        ,["Event at a place", "Adventure at a place"]
                        //,["Report list", "Whine about directory"]
                        ,["Report list", "Whine about list"]
                        ,["Event at a place", "Adventure at a place"]
+                       ,["Report as Abuse", "Whine as Abuse"]
+                       ,["Report to Admin", "Whine to Admin"]
 
                        ,["Hide this recent activity story from Timeline", "Hide this recent activity story from Journal"]
                        ,["Hide Similar Activity from Timeline...", "Hide Similar Activity from Journal..."]
 
                        ,["Hide this recent activity story from Timeline", "Hide this recent activity story from Journal"]
                        ,["Hide Similar Activity from Timeline...", "Hide Similar Activity from Journal..."]
@@ -6385,6 +6878,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        ,["Message Guests", "Start Whinny Chat with Guests"]
                        ,["Edit Event", "Edit Adventure"]
                        ,["Publish Event on Timeline", "Publish Adventure on Journal"]
                        ,["Message Guests", "Start Whinny Chat with Guests"]
                        ,["Edit Event", "Edit Adventure"]
                        ,["Publish Event on Timeline", "Publish Adventure on Journal"]
+                       ,["Leave Event", "Leave Adventure"]
 
                        ,["Add Friends to Chat...", "Add "+capitaliseFirstLetter(CURRENTSTACK.friends)+" to Whinny Chat..."]
                        ,["Chat Sounds", "Whinny Chat Sounds"]
 
                        ,["Add Friends to Chat...", "Add "+capitaliseFirstLetter(CURRENTSTACK.friends)+" to Whinny Chat..."]
                        ,["Chat Sounds", "Whinny Chat Sounds"]
@@ -6436,6 +6930,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        ,["Choose from my Photos", "Choose from my Pony Pics"]
                        ,["Reposition Photo", "Reposition Pony Pic"]
                        ,["Add Synced Photo...", "Add Synced Pony Pic..."]
                        ,["Choose from my Photos", "Choose from my Pony Pics"]
                        ,["Reposition Photo", "Reposition Pony Pic"]
                        ,["Add Synced Photo...", "Add Synced Pony Pic..."]
+                       ,["Add Synced Photo", "Add Synced Pony Pic"]
                        ,["Change Primary Photo...", "Change Primary Pony Pic..."]
                        ,["Choose from Photo Albums...", "Choose from Pony Pic Albums..."]
                        ,["Suggest this photo...", "Suggest this pony pic..."]
                        ,["Change Primary Photo...", "Change Primary Pony Pic..."]
                        ,["Choose from Photo Albums...", "Choose from Pony Pic Albums..."]
                        ,["Suggest this photo...", "Suggest this pony pic..."]
@@ -6448,6 +6943,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        ,["All Notifications", "All Sparks"]
                        ,["Search All Friends", "Search All "+capitaliseFirstLetter(CURRENTSTACK.friends)]
                        ,["All Apps", "All Magic"]
                        ,["All Notifications", "All Sparks"]
                        ,["Search All Friends", "Search All "+capitaliseFirstLetter(CURRENTSTACK.friends)]
                        ,["All Apps", "All Magic"]
+                       ,["Pages my friends like", "Pages my "+CURRENTSTACK['friends']+" "+CURRENTSTACK['like']]
 
                        ,["Page Likes", "Page "+capitaliseFirstLetter(CURRENTSTACK.likes)]
                        ,["Mentions and Photo Tags", "Mentions and Pony Pic Tags"]
 
                        ,["Page Likes", "Page "+capitaliseFirstLetter(CURRENTSTACK.likes)]
                        ,["Mentions and Photo Tags", "Mentions and Pony Pic Tags"]
@@ -6460,8 +6956,10 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
 
                        ,["The app sends you a notification", "The magic sends you a spark"]
 
 
                        ,["The app sends you a notification", "The magic sends you a spark"]
 
-                       // comment resort
-                       ,["Top Comments", "Top Friendship Letters"]
+                       ,["Top Comments", "Top Friendship Letters"] // comment resort
+                       ,["See All Groups", "See All Herds"] // timeline
+                       ,["Friends to Invite", capitaliseFirstLetter(CURRENTSTACK['friends'])+" to Invite"] // app invite
+                       ,["Take a survey to improve News Feed", "Take a survey to improve Feed Bag"] // news feed
 
                        // insights
                        ,["Post Clicks / Likes, Comments & Shares", "Post Clicks / "+capitaliseFirstLetter(CURRENTSTACK['likes'])+", Comments & Shares"]
 
                        // insights
                        ,["Post Clicks / Likes, Comments & Shares", "Post Clicks / "+capitaliseFirstLetter(CURRENTSTACK['likes'])+", Comments & Shares"]
@@ -6479,6 +6977,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        ,["Friends", capitaliseFirstLetter(CURRENTSTACK['friends'])]
                        ,["Friends ", capitaliseFirstLetter(CURRENTSTACK['friends'])]
                        ,["Friends of Guests", capitaliseFirstLetter(CURRENTSTACK['friends'])+" of Guests"]
                        ,["Friends", capitaliseFirstLetter(CURRENTSTACK['friends'])]
                        ,["Friends ", capitaliseFirstLetter(CURRENTSTACK['friends'])]
                        ,["Friends of Guests", capitaliseFirstLetter(CURRENTSTACK['friends'])+" of Guests"]
+                       ,["Friends of Contributors", capitaliseFirstLetter(CURRENTSTACK['friends'])+" of Contributors"]
                        ,["Only Me", "Alone"]
                        ,["Only me", "Alone"]
                        //,["See all lists...", "See entire directory..."]
                        ,["Only Me", "Alone"]
                        ,["Only me", "Alone"]
                        //,["See all lists...", "See entire directory..."]
@@ -6554,6 +7053,12 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        ,"Your Page Can't Be Promoted"
                        ,"Cannot Send Gift"
                        ,"An error occurred."
                        ,"Your Page Can't Be Promoted"
                        ,"Cannot Send Gift"
                        ,"An error occurred."
+                       ,"Image Resource Invalid"
+                       ,"Confirmation Required"
+                       ,"Error Uploading Video"
+                       ,"Upload Failed"
+                       ,"Photo Upload Failed"
+                       ,"Sticker Failed"
                ];
 
                headerInsightsTitles = [
                ];
 
                headerInsightsTitles = [
@@ -6573,8 +7078,19 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        ,["Are you sure you want to remove this picture?", "Are you sure you want to nuke this pony pic?"]
                        ,["The post or object that you were commenting has been removed by its owner and can no longer be commented on.", "The post or object that you were commenting has been nuked by its owner and can no longer be commented on."]
                        ,["Are you sure you want to remove this event?", "Are you sure you want to nuke this adventure?"]
                        ,["Are you sure you want to remove this picture?", "Are you sure you want to nuke this pony pic?"]
                        ,["The post or object that you were commenting has been removed by its owner and can no longer be commented on.", "The post or object that you were commenting has been nuked by its owner and can no longer be commented on."]
                        ,["Are you sure you want to remove this event?", "Are you sure you want to nuke this adventure?"]
+                       ,["Are you sure you want to unlike this?", "Are you sure you want to "+CURRENTSTACK['unlike']+" this?"]
+                       ,["Are you sure you want to remove this profile picture?", "Are you sure you want to nuke this journal pony pic?"]
 
                        ,["Report this if it's not relevant to your search results.", "Whine about this if it's not relevant to your search results."]
 
                        ,["Report this if it's not relevant to your search results.", "Whine about this if it's not relevant to your search results."]
+
+                       ,["Uploading a photo will remove the link preview. Do you want to continue?", "Uploading a pony pic will remove the link preview. Do you want to continue?"]
+                       ,["This post has been reported to the group admin.", "This post has been whined to the group admin."]
+
+                       ,["You must select some messages to delete. Click on a message to select it.", "You must select some friendship reports to nuke. Click on a friendship report to select it."]
+                       ,["You have not uploaded a picture.", "You have not uploaded a pony pic."]
+                       ,["Please try again. Make sure you are uploading a valid photo.", "Please try again. Make sure you are uploading a valid pony pic."]
+                       ,["There was a problem uploading the image file.", "There was a problem uploading the pony pic file."]
+                       ,["If you leave this page, your message won't be sent.", "If you leave this page, your friendship report won't be sent."]
                ];
        }
        
                ];
        }
        
@@ -6585,8 +7101,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
        var domNodeHandler = function() {
                var k = this;
                k.snowliftPinkieInjected = false;
        var domNodeHandler = function() {
                var k = this;
                k.snowliftPinkieInjected = false;
-                               //k.ufiData = {};
-
+               
                k.run = function(dom) {
                        if (INTERNALUPDATE) {
                                return;
                k.run = function(dom) {
                        if (INTERNALUPDATE) {
                                return;
@@ -6679,15 +7194,23 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        injectOptionsLink();
                        
                        k.snowliftPinkie(dom);
                        injectOptionsLink();
                        
                        k.snowliftPinkie(dom);
-                       k.notificationsFlyoutSettings(dom);
+                       k.notificationsFlyoutSettings();
+                       k.findFriendsNav();
                        
                        // .ufb-button-input => mutateAttributes
                        
                        // .ufb-button-input => mutateAttributes
-                       domReplaceFunc(dom.target, '', '.uiButtonText, .uiButton input, ._42ft, .-cx-PRIVATE-abstractButton__root, ._42fu, .-cx-PRIVATE-uiButton__root, ._4jy0, .-cx-PRIVATE-xuiButton__root', function(ele) {
+                       // ._42fu, .-cx-PRIVATE-uiButton__root, ._4jy0, .-cx-PRIVATE-xuiButton__root
+                       domReplaceFunc(dom.target, '', '.uiButtonText, .uiButton input, ._42ft, .-cx-PRIVATE-abstractButton__root', function(ele) {
                                // <a class="uiButton uiButtonConfirm uiButtonLarge" href="#" role="button"><span class="uiButtonText">Finish</span></a>
                                // <label class="uiButton uiButtonConfirm"><input value="Okay" type="submit"></label>
 
                                // <button class="_42ft _42fu _11b selected _42g-" type="submit">Post</button>
                                // <a class="_42ft _42fu" role="button" href="#"><i class="mrs img sp_8jfoef sx_d2d7c4"></i>Promote App</a>
                                // <a class="uiButton uiButtonConfirm uiButtonLarge" href="#" role="button"><span class="uiButtonText">Finish</span></a>
                                // <label class="uiButton uiButtonConfirm"><input value="Okay" type="submit"></label>
 
                                // <button class="_42ft _42fu _11b selected _42g-" type="submit">Post</button>
                                // <a class="_42ft _42fu" role="button" href="#"><i class="mrs img sp_8jfoef sx_d2d7c4"></i>Promote App</a>
+
+                               // Skip close icons
+                               if (hasClass(ele, '_50zy') || hasClass(ele, '-cx-PRIVATE-xuiCloseButton__root')) {
+                                       return;
+                               }
+
                                var button = ele;
                                var replacer = buttonTitles;
                                var tagName = ele.tagName.toUpperCase();
                                var button = ele;
                                var replacer = buttonTitles;
                                var tagName = ele.tagName.toUpperCase();
@@ -6750,6 +7273,35 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                                }
                                        }
                                        button.setAttribute('data-ponyhoof-button-text', replaced);
                                                }
                                        }
                                        button.setAttribute('data-ponyhoof-button-text', replaced);
+
+                                       // Top-right "Join Group" and "Notifications" link on groups requires some treatment to avoid long group names from being crapped
+                                       var ajaxify = button.getAttribute('ajaxify');
+                                       if ((ajaxify && ajaxify.indexOf('/ajax/groups/membership/r2j.php?ref=group_jump_header') == 0) || (button.parentNode && button.parentNode.parentNode && hasClass(button.parentNode.parentNode, 'groupNotificationsSelector'))) {
+                                               var groupsJumpTitle = $('groupsJumpTitle');
+                                               if (!groupsJumpTitle) {
+                                                       return;
+                                               }
+
+                                               var groupsJumpBarTop = dom.target.getElementsByClassName('groupsJumpBarTop');
+                                               if (!groupsJumpBarTop.length) {
+                                                       return;
+                                               }
+                                               groupsJumpBarTop = groupsJumpBarTop[0];
+
+                                               var rfloat = groupsJumpBarTop.getElementsByClassName('rfloat');
+                                               if (!rfloat.length) {
+                                                       return;
+                                               }
+                                               rfloat = rfloat[0];
+
+                                               var groupsCleanLinks = groupsJumpBarTop.getElementsByClassName('groupsCleanLinks');
+                                               if (!groupsCleanLinks.length) {
+                                                       return;
+                                               }
+                                               groupsCleanLinks = groupsCleanLinks[0];
+
+                                               groupsJumpTitle.style.maxWidth = (800 - ((groupsCleanLinks.offsetWidth || 0) + (rfloat.offsetWidth || 0) - (groupsJumpTitle.offsetWidth || 0)) - 10) + 'px';
+                                       }
                                }
 
                                                        });
                                }
 
                                                        });
@@ -6768,7 +7320,22 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                return;
                        }
 
                                return;
                        }
 
-                       domReplaceFunc(dom.target, '', '.inCommonSectionList, #fbTimelineHeadline .name h2 > div, ._8yb, .-cx-PRIVATE-fbEntstreamAttachmentAvatar__secondarydetaillist, ._508a, .-cx-PRIVATE-pageLikeStory__fancountfooter, .permalinkHeaderInfo > .subscribeOrLikeSentence > .fwn', k.textBrohoof);
+                       if (k.pagesVoiceBarText(dom.target)) {
+                               INTERNALUPDATE = iu;
+                               return;
+                       }
+
+                       if (k.endOfFeedPymlContainer(dom.target)) {
+                               INTERNALUPDATE = iu;
+                               return;
+                       }
+
+                       if (k.pubcontentFeedChaining(dom.target)) {
+                               INTERNALUPDATE = iu;
+                               return;
+                       }
+
+                       domReplaceFunc(dom.target, '', '.inCommonSectionList, #fbTimelineHeadline .name h2 > div, ._8yb, .-cx-PRIVATE-fbEntstreamAttachmentAvatar__secondarydetaillist, ._508a, .-cx-PRIVATE-pageLikeStory__fancountfooter, .permalinkHeaderInfo > .subscribeOrLikeSentence > .fwn, ._5j2m, ._7ll .pageByline, ._5cnt > .fcg, ._5h4h > .fcg', k.textBrohoof);
                        
                        domReplaceFunc(dom.target, '', '.uiUfiViewAll, .uiUfiViewPrevious, .uiUfiViewMore', function(ele) {
                                var button = ele.querySelector('input[type="submit"]');
                        
                        domReplaceFunc(dom.target, '', '.uiUfiViewAll, .uiUfiViewPrevious, .uiUfiViewMore', function(ele) {
                                var button = ele.querySelector('input[type="submit"]');
@@ -6780,50 +7347,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                }
                        });
                        
                                }
                        });
                        
-                       domReplaceFunc(dom.target, '', '.tooltipContent', function(ele) {
-                               // <div class="tooltipContent"><div class="tooltipText"><span>xy</span></div></div>
-                               // <div class="tooltipContent">xy</div>
-
-                               // <div class="tooltipContent"><div>Edit or Delete</div></div>
-                               var io = ele.getElementsByClassName('tooltipText');
-                               if (io.length) {
-                                       var target = io[0];
-                               } else {
-                                       var target = ele;
-                               }
-                               var potentialLabel = target.querySelector('._5bqd, .-cx-PRIVATE-HubbleInfoTip__content');
-                               if (potentialLabel) {
-                                       target = potentialLabel;
-                               }
-                               io = target.getElementsByTagName('div');
-                               if (io.length) {
-                                       target = io[0];
-                               }
-                               io = target.getElementsByTagName('span');
-                               if (io.length) {
-                                       target = io[0];
-                               }
-                               
-                               var t = target.innerHTML;
-                               t = replaceText(tooltipTitles, t);
-                               if (target.innerHTML != t) {
-                                       var oldWidth = target.offsetWidth;
-                                       target.innerHTML = t;
-
-                                       // <div class="uiContextualLayerPositioner uiLayer" id="js_4" style="width: 862px; left: 309px; top: 1914px;" data-ownerid=""><div class="uiContextualLayer uiContextualLayerAboveCenter" style="bottom: 0px;"><div class="uiTooltipX"><div class="tooltipContent"><div>Loading...</div></div><i class="arrow"></i></div></div></div>
-                                       if (!ele.parentNode || !ele.parentNode.parentNode || !ele.parentNode.parentNode.parentNode) {
-                                               return;
-                                       }
-                                       var layer = ele.parentNode.parentNode.parentNode;
-                                       if (!ele.parentNode.parentNode.className.match(/Center/) || !hasClass(layer, 'uiContextualLayerPositioner')) {
-                                               return;
-                                       }
-                                       layer.style.width = 'auto'; // fix horizontal scrollbar
-                                       var left = parseInt(layer.style.left);
-                                       var newWidth = target.offsetWidth;
-                                       layer.style.left = (left - Math.round((newWidth - oldWidth) / 2))+'px';
-                               }
-                       });
+                       k.tooltip(dom.target);
                        
                        domReplaceFunc(dom.target, 'egoProfileTemplate', '.egoProfileTemplate', function(ele) {
                                if (ele.getAttribute('data-ponyhoof-ponified')) {
                        
                        domReplaceFunc(dom.target, 'egoProfileTemplate', '.egoProfileTemplate', function(ele) {
                                if (ele.getAttribute('data-ponyhoof-ponified')) {
@@ -6923,6 +7447,8 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                                                }
                                                        }
                                                });
                                                                }
                                                        }
                                                });
+
+                                               k._dialog_insertReadme(body);
                                        }
 
                                        if (hasClass(dom.target, 'uiLayer')) {
                                        }
 
                                        if (hasClass(dom.target, 'uiLayer')) {
@@ -6930,9 +7456,13 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                                // Detect rare cases when HTML detection just got turned on, and there is a dialog at the back
                                                k._dialog_playSound(replaced, ele);
                                        }
                                                // Detect rare cases when HTML detection just got turned on, and there is a dialog at the back
                                                k._dialog_playSound(replaced, ele);
                                        }
+
+                                       if (USINGMUTATION) {
+                                               k.updateLayerPosition(ele);
+                                       }
                                }
 
                                }
 
-                               domChangeTextbox(ele, '.groupsMemberFlyoutWelcomeTextarea', function(textbox) {
+                               domChangeTextbox(ele, '._5nw-, .groupsMemberFlyoutWelcomeTextarea', function(textbox) {
                                        var orig = textbox.getAttribute('placeholder');
                                        var t = orig.replace(/\bgroup\b/, 'herd');
                                        if (t != orig) {
                                        var orig = textbox.getAttribute('placeholder');
                                        var t = orig.replace(/\bgroup\b/, 'herd');
                                        if (t != orig) {
@@ -6963,7 +7493,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                }
                        });
                        
                                }
                        });
                        
-                       domReplaceFunc(dom.target, '', '.uiHeaderTitle, .legacyContextualDialogTitle, ._6dp, .-cx-PRIVATE-litestandRHC__titlename', function(ele) {
+                       domReplaceFunc(dom.target, '', '.uiHeaderTitle, .legacyContextualDialogTitle, ._6dp, .-cx-PRIVATE-litestandRHC__titlename, ._34e', function(ele) {
                                var imgwrap = ele.querySelector('._8m, .-cx-PRIVATE-uiImageBlock__content, .adsCategoryTitleLink');
                                if (imgwrap) {
                                        ele = imgwrap;
                                var imgwrap = ele.querySelector('._8m, .-cx-PRIVATE-uiImageBlock__content, .adsCategoryTitleLink');
                                if (imgwrap) {
                                        ele = imgwrap;
@@ -6979,12 +7509,12 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                });
                        });
                        
                                });
                        });
                        
-                       domReplaceFunc(dom.target, '', '.insights-header .header-title > .ufb-text-content', function(ele) {
+                       /*domReplaceFunc(dom.target, '', '.insights-header .header-title > .ufb-text-content', function(ele) {
                                var t = replaceText(headerInsightsTitles, ele.textContent);
                                if (ele.textContent != t) {
                                        ele.textContent = t;
                                }
                                var t = replaceText(headerInsightsTitles, ele.textContent);
                                if (ele.textContent != t) {
                                        ele.textContent = t;
                                }
-                       });
+                       });*/
 
                        if (k.fbDockChatBuddylistNub(dom.target)) {
                                INTERNALUPDATE = iu;
 
                        if (k.fbDockChatBuddylistNub(dom.target)) {
                                INTERNALUPDATE = iu;
@@ -7009,14 +7539,17 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                return;
                        }
                        k.pluginButton(dom.target);
                                return;
                        }
                        k.pluginButton(dom.target);
-                       k.insightsCountry(dom);
+                       //k.insightsCountry(dom.target);
                        k.timelineMutualLikes(dom.target);
                        k.videoStageContainer(dom.target);
                        k.timelineMutualLikes(dom.target);
                        k.videoStageContainer(dom.target);
+                       k.uiStreamShareLikePageBox(dom.target);
+                       k.fbTimelineUnit(dom.target);
+                       k.pageBrowserItem(dom.target);
 
                        domChangeTextbox(dom.target, '.MessagingComposerForm textarea, ._1rt ._1rv, .-cx-PRIVATE-webMessengerComposer__composertextarea, ._20y textarea, .-cx-PRIVATE-mercuryComposerDialog__root textarea, ._2oj, .-cx-PRIVATE-mercuryComposerDialog__textarea', "Dear Princess Celestia...");
                        domChangeTextbox(dom.target, '.groupAddMemberTypeaheadBox .inputtext', "Add "+capitaliseFirstLetter(CURRENTSTACK.friends)+" to the Herd");
                        //domChangeTextbox(dom.target, '.friendListAddTypeahead .inputtext', "Add "+CURRENTSTACK.friends+" to this directory");
 
                        domChangeTextbox(dom.target, '.MessagingComposerForm textarea, ._1rt ._1rv, .-cx-PRIVATE-webMessengerComposer__composertextarea, ._20y textarea, .-cx-PRIVATE-mercuryComposerDialog__root textarea, ._2oj, .-cx-PRIVATE-mercuryComposerDialog__textarea', "Dear Princess Celestia...");
                        domChangeTextbox(dom.target, '.groupAddMemberTypeaheadBox .inputtext', "Add "+capitaliseFirstLetter(CURRENTSTACK.friends)+" to the Herd");
                        //domChangeTextbox(dom.target, '.friendListAddTypeahead .inputtext', "Add "+CURRENTSTACK.friends+" to this directory");
-                       domChangeTextbox(dom.target, '.friendListAddTypeahead .inputtext', "Add "+CURRENTSTACK.friends+" to this list");
+                       domChangeTextbox(dom.target, '.friendListFeed .friendListAddTypeahead .inputtext', "Add "+CURRENTSTACK['friends']+" to this list");
                        domChangeTextbox(dom.target, '.groupsJumpHeaderSearch .inputtext', "Search this herd");
                        domChangeTextbox(dom.target, '.MessagingSearchFilter .inputtext', "Search Friendship Reports");
                        domChangeTextbox(dom.target, '#chatFriendsOnline .fbChatTypeahead .inputtext', "Pals on Whinny Chat");
                        domChangeTextbox(dom.target, '.groupsJumpHeaderSearch .inputtext', "Search this herd");
                        domChangeTextbox(dom.target, '.MessagingSearchFilter .inputtext', "Search Friendship Reports");
                        domChangeTextbox(dom.target, '#chatFriendsOnline .fbChatTypeahead .inputtext', "Pals on Whinny Chat");
@@ -7024,7 +7557,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        //domChangeTextbox(dom.target, '.uiComposer textarea', "What lessons in friendship have you learned today?");
                        //domChangeTextbox(dom.target, '.uiComposerMessageBox textarea', "Share your friendship stories...");
                        //domChangeTextbox(dom.target, '.uiMetaComposerMessageBox textarea', "What lessons in friendship have you learned today?");
                        //domChangeTextbox(dom.target, '.uiComposer textarea', "What lessons in friendship have you learned today?");
                        //domChangeTextbox(dom.target, '.uiComposerMessageBox textarea', "Share your friendship stories...");
                        //domChangeTextbox(dom.target, '.uiMetaComposerMessageBox textarea', "What lessons in friendship have you learned today?");
-                       domChangeTextbox(dom.target, '#q, .fbFacebar .facebarInput .structuredText, ._585- ._586f, .-cx-PUBLIC-fbFacebar__root .-cx-PUBLIC-uiStructuredInput__text', function(searchbox) {
+                       domChangeTextbox(dom.target, '#q, ._585- ._586f, .-cx-PUBLIC-fbFacebar__root .-cx-PUBLIC-uiStructuredInput__text', function(searchbox) {
                                if (CURRENTLANG.sniff_fb_search_boxAlt && searchbox.getAttribute('placeholder').indexOf(CURRENTLANG.sniff_fb_search_boxAlt) != -1) {
                                        return CURRENTLANG.fb_search_boxAlt;
                                }
                                if (CURRENTLANG.sniff_fb_search_boxAlt && searchbox.getAttribute('placeholder').indexOf(CURRENTLANG.sniff_fb_search_boxAlt) != -1) {
                                        return CURRENTLANG.fb_search_boxAlt;
                                }
@@ -7056,7 +7589,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                };
 
                k.notificationsFlyoutSettingsInjected = false;
                };
 
                k.notificationsFlyoutSettingsInjected = false;
-               k.notificationsFlyoutSettings = function(dom) {
+               k.notificationsFlyoutSettings = function() {
                        if (ISUSINGPAGE) {
                                k.notificationsFlyoutSettingsInjected = true;
                                return;
                        if (ISUSINGPAGE) {
                                k.notificationsFlyoutSettingsInjected = true;
                                return;
@@ -7109,6 +7642,30 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        }
                };
 
                        }
                };
 
+               // Change Find Friends link at the top-right to native text for reliability
+               k.findFriendsNavInjected = false;
+               k.findFriendsNav = function() {
+                       if (k.findFriendsNavInjected || ISUSINGPAGE || ISUSINGBUSINESS) {
+                               k.findFriendsNavInjected = true;
+                               return;
+                       }
+                       var findFriendsNav = $('findFriendsNav');
+                       if (!findFriendsNav || !findFriendsNav.childNodes || !findFriendsNav.childNodes.length) {
+                               return;
+                       }
+                       var text = findFriendsNav.childNodes[0]; // this should return the "Find Friends" node
+                       if (text.nodeType != TEXT_NODE) {
+                               text = findFriendsNav.childNodes[1]; // litestand
+                               if (text.nodeType != TEXT_NODE) {
+                                       return;
+                               }
+                       }
+
+                       text.textContent = CURRENTSTACK['findFriendship'];
+                       addClass(findFriendsNav, 'ponyhoof_findFriendsNav_native');
+                       k.findFriendsNavInjected = true;
+               };
+
                k.textNodes = function(dom) {
                        try {
                                if (!dom.target.parentNode || !dom.target.parentNode.parentNode || !hasClass(dom.target.parentNode.parentNode, 'dialog_title')) {
                k.textNodes = function(dom) {
                        try {
                                if (!dom.target.parentNode || !dom.target.parentNode.parentNode || !hasClass(dom.target.parentNode.parentNode, 'dialog_title')) {
@@ -7172,9 +7729,24 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                                                                        return;
                                                                                }
                                                                                child.textContent = texts[i];
                                                                                        return;
                                                                                }
                                                                                child.textContent = texts[i];
-                                                                               i++;
+                                                                               i += 1;
                                                                        });
                                                                }
                                                                        });
                                                                }
+                                                       } else {
+                                                               var stop = false;
+                                                               loopChildText(body, function(child) {
+                                                                       if (stop) {
+                                                                               return;
+                                                                       }
+                                                                       if (child.nodeType === TEXT_NODE) {
+                                                                               var orig = child.textContent;
+                                                                               var replaced = replaceText(dialogDescriptionTitles, orig);
+                                                                               if (orig != replaced) {
+                                                                                       child.textContent = replaced;
+                                                                                       stop = true;
+                                                                               }
+                                                                       }
+                                                               });
                                                        }
                                                }
                                        }
                                                        }
                                                }
                                        }
@@ -7220,10 +7792,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        var inner = ele.getElementsByClassName('UFILikeSentenceText');
                        if (inner.length) {
                                inner = inner[0];
                        var inner = ele.getElementsByClassName('UFILikeSentenceText');
                        if (inner.length) {
                                inner = inner[0];
-                               var t = k.likeSentence(inner.innerHTML);
-                               if (inner.innerHTML != t) {
-                                       inner.innerHTML = t;
-                               }
+                               k._likePostBox_loop(inner);
                        }
 
                        var reorder = ele.getElementsByClassName('UFIOrderingModeSelectorDownCaret');
                        }
 
                        var reorder = ele.getElementsByClassName('UFIOrderingModeSelectorDownCaret');
@@ -7235,13 +7804,38 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        }
                };
 
                        }
                };
 
+               k._likePostBox_loop = function(ele) {
+                       // Change "**profile people test** likes this." -> "**profile people test** brohoofs this."
+                       // Previous versions would change it to "**profile ponies test** brohoofs this."
+                       for (var i = 0, len = ele.childNodes.length; i < len; i += 1) {
+                               if (ele.childNodes[i].nodeType === TEXT_NODE) {
+                                       k._likePostBox_loop_text(ele.childNodes[i]);
+                               } else {
+                                       /*var ajaxify = ele.childNodes[i].getAttribute('ajaxify');
+                                       if (ajaxify && ajaxify.indexOf('/ajax/browser/dialog/likes') != -1) {
+                                               k._likePostBox_loop_text(ele.childNodes[i]);
+                                       } else {*/
+                                       if (!hasClass(ele.childNodes[i], 'profileLink')) {
+                                               k._likePostBox_loop(ele.childNodes[i]);
+                                       }
+                               }
+                       }
+               };
+
+               k._likePostBox_loop_text = function(ele) {
+                       var orig = ele.textContent;
+                       var t = k.likeSentence(orig);
+                       if (orig != t) {
+                               ele.textContent = t;
+                       }
+               };
+
                k.likeSentence = function(t) {
                        //t = t.replace(/likes? this\./g, "brohoof'd this.");
                        t = t.replace(/like this\./g, CURRENTSTACK['like_past']+" this.");
                        t = t.replace(/likes this\./g, CURRENTSTACK['likes_past']+" this.");
                        t = t.replace(/\bpeople\b/g, CURRENTSTACK['people']);
                        t = t.replace(/\bperson\b/g, CURRENTSTACK['person']); // http://fb.com/647294431950845
                k.likeSentence = function(t) {
                        //t = t.replace(/likes? this\./g, "brohoof'd this.");
                        t = t.replace(/like this\./g, CURRENTSTACK['like_past']+" this.");
                        t = t.replace(/likes this\./g, CURRENTSTACK['likes_past']+" this.");
                        t = t.replace(/\bpeople\b/g, CURRENTSTACK['people']);
                        t = t.replace(/\bperson\b/g, CURRENTSTACK['person']); // http://fb.com/647294431950845
-                       //t = t.replace(/(^|\\W|_)people(^|\\W|_)/g, "ponies");
                        /*if (CURRENTSTACK == 'pony') {
                                t = t.replace(/\<3 7h\!5/g, '/) 7h!5');
                                t = t.replace(/\<3 7h15/g, '/) 7h!5');
                        /*if (CURRENTSTACK == 'pony') {
                                t = t.replace(/\<3 7h\!5/g, '/) 7h!5');
                                t = t.replace(/\<3 7h15/g, '/) 7h!5');
@@ -7408,19 +8002,9 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                                        return;
                                                }
 
                                                        return;
                                                }
 
-                                               /*var id = k.getReactId(ufi);
-                                               if (!id) {
-                                                       return;
-                                               }
-                                               if (!k.ufiData[id]) {
-                                                       k.ufiData[id] = {};
-                                               }*/
-
                                                if (isLike) {
                                                if (isLike) {
-                                                       //k.ufiData[id].brohoofed = false;
                                                        removeClass(ufi.parentNode, 'ponyhoof_brohoofed');
                                                } else {
                                                        removeClass(ufi.parentNode, 'ponyhoof_brohoofed');
                                                } else {
-                                                       //k.ufiData[id].brohoofed = true;
                                                        addClass(ufi.parentNode, 'ponyhoof_brohoofed');
                                                }
                                        });
                                                        addClass(ufi.parentNode, 'ponyhoof_brohoofed');
                                                }
                                        });
@@ -7430,7 +8014,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
 
                k._markCommentLiked = function(ufiitem, isLike) {
                        var child = null;
 
                k._markCommentLiked = function(ufiitem, isLike) {
                        var child = null;
-                       if (ufiitem.childNodes && ufiitem.childNodes[0]) {
+                       if (ufiitem.childNodes && ufiitem.childNodes.length && ufiitem.childNodes[0]) {
                                child = ufiitem.childNodes[0];
                        }
                        if (isLike) {
                                child = ufiitem.childNodes[0];
                        }
                        if (isLike) {
@@ -7494,13 +8078,13 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                } else if (hasClass(dom.target, 'UFILikeSentence')) {
                                        k._likePostBox(dom.target);
                                } else if (hasClass(dom.target, 'UFIImageBlockContent')) {
                                } else if (hasClass(dom.target, 'UFILikeSentence')) {
                                        k._likePostBox(dom.target);
                                } else if (hasClass(dom.target, 'UFIImageBlockContent')) {
-                                       if (hasClass(dom.target, '_42ef') || hasClass(dom.target, '-cx-PRIVATE-uiFlexibleBlock__flexiblecontent')) {
+                                       //if (hasClass(dom.target, '_42ef') || hasClass(dom.target, '-cx-PRIVATE-uiFlexibleBlock__flexiblecontent')) {
                                                // on groups with seen, clicking a photo will open in the viewer, but the original post on the group messes up
                                                k._likePostBox(dom.target.parentNode);
                                                // on groups with seen, clicking a photo will open in the viewer, but the original post on the group messes up
                                                k._likePostBox(dom.target.parentNode);
-                                       } else {
+                                       //} else {
                                                // marking a comment as spam in another section, and then unmark
                                                k.commentBrohoofed({target: dom.target});
                                                // marking a comment as spam in another section, and then unmark
                                                k.commentBrohoofed({target: dom.target});
-                                       }
+                                       //}
                                } else if (hasClass(dom.target, 'UFILikeLink') || (!USINGMUTATION && hasClass(dom.target, 'UFILikeThumb'))) {
                                        k._commentLikeLink(dom.target);
                                } else if (dom.target.parentNode) {
                                } else if (hasClass(dom.target, 'UFILikeLink') || (!USINGMUTATION && hasClass(dom.target, 'UFILikeThumb'))) {
                                        k._commentLikeLink(dom.target);
                                } else if (dom.target.parentNode) {
@@ -7533,6 +8117,10 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                                }
                                        }
                                }
                                                }
                                        }
                                }
+
+                               // Insights
+                               k.insightsCountry(dom.target);
+
                                return true;
                        }
 
                                return true;
                        }
 
@@ -7577,18 +8165,16 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        return CURRENTLANG.fb_comment_box;
                };
 
                        return CURRENTLANG.fb_comment_box;
                };
 
-               k.composerPonies = new RegExp(['pony', 'ponies', 'mlp', 'brony', 'bronies', 'pegasister', 'pega sister', 'pega-sister', 'twilight sparkle', 'rainbow dash', 'pinkie', 'applejack', 'fluttershy', 'rarity', 'celestia', 'derpy', 'equestria', 'canterlot', 'dashie', 'apple jack', 'flutter shy', 'princess luna', 'friendship is magic', 'kuda'].join('|'), 'i');
+               k.composerPonies = new RegExp(['pony', 'ponies', 'mlp', 'brony', 'bronies', 'pegasister', 'pega sister', 'pega-sister', 'twilight sparkle', 'rainbow dash', 'pinkie', 'applejack', 'fluttershy', 'rarity', 'celestia', 'derpy', 'equestria', 'canterlot', 'dashie', 'apple jack', 'flutter shy', 'princess luna', 'friendship is magic', 'kuda', 'pinkamena', 'bon bon', 'bonbon'].join('|'), 'i');
                k.composerExclude = new RegExp(['suck', 'shit', 'fuck', 'assho', 'crap', 'ponyfag', 'faggo', 'retard', 'dick'].join('|'), 'i');
                k.composerExclude = new RegExp(['suck', 'shit', 'fuck', 'assho', 'crap', 'ponyfag', 'faggo', 'retard', 'dick'].join('|'), 'i');
-               k.composerSpecialPages = {
-                        '140792002656140': {composer: LANG['ms_MY'].fb_composer_lessons, malay:true}
-                       ,'346855322017980': {composer: LANG['ms_MY'].fb_composer_lessons, malay:true}
-                       ,'366748370110998': {composer: LANG['ms_MY'].fb_composer_lessons, malay:true}
-                       ,'146225765511748': {composer: CURRENTLANG.fb_composer_coolstory}
-                       ,'496282487062916': {composer: CURRENTLANG.fb_composer_coolstory}
-               };
+               k.composerSpecialPages = null;
                k.composerSelectors = '.uiComposer textarea.mentionsTextarea, .composerTypeahead textarea';
                k.composerButtonSelectors = '.uiComposerMessageBoxControls .submitBtn input, .uiComposerMessageBoxControls .submitBtn .uiButtonText, ._11b input, .-cx-PRIVATE-fbComposerMessageBox__button input, button._11b, button.-cx-PRIVATE-fbComposerMessageBox__button';
                k.changeComposer = function(dom) {
                k.composerSelectors = '.uiComposer textarea.mentionsTextarea, .composerTypeahead textarea';
                k.composerButtonSelectors = '.uiComposerMessageBoxControls .submitBtn input, .uiComposerMessageBoxControls .submitBtn .uiButtonText, ._11b input, .-cx-PRIVATE-fbComposerMessageBox__button input, button._11b, button.-cx-PRIVATE-fbComposerMessageBox__button';
                k.changeComposer = function(dom) {
+                       if (!k.composerSpecialPages) {
+                               k._changeComposer_initSpecialPages();
+                       }
+
                        var pageid = '';
 
                        // tagging people with "Who are you with?" and new feelings feature
                        var pageid = '';
 
                        // tagging people with "Who are you with?" and new feelings feature
@@ -7727,7 +8313,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                                                k._changeComposer_insertReadme(insertBefore);
                                                        });
                                                }, true);
                                                                k._changeComposer_insertReadme(insertBefore);
                                                        });
                                                }, true);
-                                               return "Suggest something for Ponyhoof...";
+                                               return "Send feedback for Ponyhoof...";
                                        }
                                        if (k.composerSpecialPages[pageid] && k.composerSpecialPages[pageid].composer) {
                                                return k.composerSpecialPages[pageid].composer;
                                        }
                                        if (k.composerSpecialPages[pageid] && k.composerSpecialPages[pageid].composer) {
                                                return k.composerSpecialPages[pageid].composer;
@@ -7890,6 +8476,135 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        }
                };
 
                        }
                };
 
+               k._changeComposer_initSpecialPages = function() {
+                       k.composerSpecialPages = {
+                                '140792002656140': {composer: LANG['ms_MY'].fb_composer_lessons, malay:true}
+                               ,'346855322017980': {composer: LANG['ms_MY'].fb_composer_lessons, malay:true}
+                               ,'366748370110998': {composer: LANG['ms_MY'].fb_composer_lessons, malay:true}
+                               ,'146225765511748': {composer: CURRENTLANG['fb_composer_coolstory']}
+                               ,'496282487062916': {composer: CURRENTLANG['fb_composer_coolstory']}
+                       };
+               };
+
+               k.tooltip = function(outer) {
+                       domReplaceFunc(outer, '', '.tooltipContent', function(ele) {
+                               // <div class="tooltipContent"><div class="tooltipText"><span>Hide</span></div></div>
+                               // <div class="tooltipContent"><div>Ponyhoof brohoofs this.</div></div>
+                               // <div class="tooltipContent">xy</div>
+                               // <div class="tooltipContent"><div><div class="-cx-PRIVATE-HubbleTargetingImage__tooltipcontent" data-reactid=""><div data-reactid=""><b data-reactid="">Shared with:</b><br data-reactid=""><span data-reactid="">Public</span></div></div></div></div>
+
+                               // <div class="uiContextualLayerPositioner uiLayer" style="width: 294px; left: 877px; top: 1299px;" data-ownerid="js_14"><div class="uiContextualLayer uiContextualLayerAboveLeft" style="bottom: 0px;"><div class="uiTooltipX"><div class="tooltipContent"><div class="tooltipText"><span>Excellent</span></div></div><i class="arrow"></i></div></div></div>
+                               var io = ele.getElementsByClassName('tooltipText');
+                               if (io.length) {
+                                       var target = io[0];
+                               } else {
+                                       var target = ele;
+                               }
+                               var potentialLabel = target.querySelector('._5bqd, .-cx-PRIVATE-HubbleInfoTip__content, ._5j1i');
+                               if (potentialLabel) {
+                                       target = potentialLabel;
+                               }
+                               if (target.childNodes && target.childNodes.length && target.childNodes[0] && target.childNodes[0].tagName && target.childNodes[0].tagName.toUpperCase() == 'DIV') {
+                                       target = target.childNodes[0];
+                               }
+                               if (target.childNodes && target.childNodes.length && target.childNodes[0] && target.childNodes[0].tagName && target.childNodes[0].tagName.toUpperCase() == 'SPAN') {
+                                       target = target.childNodes[0];
+                               }
+                               
+                               // Get the tooltip outer layer
+                               var layer = k._tooltipGetLayer(ele);
+                               if (!layer) {
+                                       return;
+                               }
+
+                               //removeClass(layer, 'ponyhoof_tooltip_flip');
+
+                               // Replace text
+                               var orig = target.innerHTML;
+                               var origText = target.textContent;
+                               var t = orig;
+                               t = replaceText(tooltipTitles, t);
+                               if (orig != t) {
+                                       //var oldWidth = ele.offsetWidth;
+                                       target.innerHTML = t;
+
+                                       if (USINGMUTATION) {
+                                               // Replace text at the parent that we are *really* certain
+                                               if (orig === origText) {
+                                                       var owner = $(layer.getAttribute('data-ownerid'));
+                                                       if (owner) {
+                                                               owner.setAttribute('aria-label', t);
+                                                       }
+                                               }
+
+                                               // fix horizontal scrollbar
+                                               if (hasClass(layer.parentNode, 'fbPhotoSnowliftContainer')) {
+                                                       addClass(layer, 'ponyhoof_tooltip_widthFix');
+                                               } else {
+                                                       removeClass(layer, 'ponyhoof_tooltip_widthFix');
+                                               }
+
+                                               k.updateLayerPosition(layer);
+                                       }
+
+                                       /*// Get the inner layer inside the outer layer (get it...?)
+                                       var layerInner = layer.getElementsByClassName('uiContextualLayer');
+                                       if (!layerInner.length) {
+                                               return;
+                                       }
+                                       layerInner = layerInner[0];
+
+                                       if (layerInner.className.match(/Center/)) {
+                                               /*var rect = ele.getBoundingClientRect();
+                                               if (!rect) {
+                                                       return;
+                                               }* /
+
+                                               layer.style.width = 'auto'; // fix horizontal scrollbar
+                                               var left = parseInt(layer.style.left); // relative positioning at photo viewer
+                                               var newWidth = ele.offsetWidth;
+                                               //if ((rect.left + newWidth) < d.documentElement.clientWidth) {
+                                                       layer.style.left = (left - Math.round((newWidth - oldWidth) / 2))+'px';
+                                               /*} else {
+                                                        Fix long "X, Y and 2 others like this." tooltips on photo viewer
+                                                       layer.style.left = (left - (oldWidth / 2) /*+ ((newWidth - oldWidth) / 2) - 18* / )+'px';
+                                                       addClass(layer, 'ponyhoof_tooltip_flip');
+                                               }* /
+                                       } else if (layerInner.className.match(/Left/)) {
+                                               // Fix "Remember: all place ratings are public." tooltips that are being ponified and causing a horizontal page scrollbar
+                                               // 
+                                               // This is complicated, Facebook caches the ContextualLayer <div>s for tooltips
+                                               // If we directly change the classNames like this:
+                                               //     layerInner.className = layerInner.className.replace(/Left/, 'Right');
+                                               // This would cause future tooltips to display incorrectly
+                                               // So what we done is add our own "ponyhoof_tooltip_flip" class which flips the tooltip left to right
+
+                                               var rect = ele.getBoundingClientRect();
+                                               if (!rect) {
+                                                       return;
+                                               }
+                                               if (rect.right >= d.documentElement.clientWidth) {
+                                                       layer.style.width = 'auto'; // bogus anyway
+                                                       layer.style.left = (parseInt(layer.style.left) - rect.width + 18)+'px'; // 18 is the number of pixels to offset to position the arrow of the tooltip properly
+                                                       addClass(layer, 'ponyhoof_tooltip_flip');
+                                               }
+                                       }*/
+                               }
+                       });
+               };
+
+               k._tooltipGetLayer = function(ele) {
+                       // <div class="uiContextualLayerPositioner uiLayer" id="js_4" style="width: 862px; left: 309px; top: 1914px;" data-ownerid=""><div class="uiContextualLayer uiContextualLayerAboveCenter" style="bottom: 0px;"><div class="uiTooltipX"><div class="tooltipContent"><div>Loading...</div></div><i class="arrow"></i></div></div></div>
+                       if (!ele.parentNode || !ele.parentNode.parentNode || !ele.parentNode.parentNode.parentNode) {
+                               return false;
+                       }
+                       var layer = ele.parentNode.parentNode.parentNode;
+                       if (!hasClass(layer, 'uiContextualLayerPositioner')) {
+                               return false;
+                       }
+                       return layer;
+               };
+
                k.fbDockChatBuddylistNub = function(target) {
                        if (target.parentNode && target.parentNode.parentNode && target.parentNode.parentNode.getAttribute && target.parentNode.parentNode.getAttribute('id') == 'fbDockChatBuddylistNub' && hasClass(target, 'label')) {
                                k._fbDockChatBuddylistNub_change(target);
                k.fbDockChatBuddylistNub = function(target) {
                        if (target.parentNode && target.parentNode.parentNode && target.parentNode.parentNode.getAttribute && target.parentNode.parentNode.getAttribute('id') == 'fbDockChatBuddylistNub' && hasClass(target, 'label')) {
                                k._fbDockChatBuddylistNub_change(target);
@@ -7919,7 +8634,10 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                return true;
                        }
 
                                return true;
                        }
 
-                       $$(target, '.pokesDashboard > .objectListItem', k._pokesDashboard_item);
+                       // (Sep 25) Include xuiCard
+                       //$$(target, '.pokesDashboard > .objectListItem', k._pokesDashboard_item);
+                       //$$(target, '.objectListItem[id^="poke_"], ._4-u2[id^="poke_"], .-cx-PRIVATE-xuiCard__root[id^="poke_"]', k._pokesDashboard_item);
+                       $$(target, '.objectListItem[id^="poke_"], ._5lbv, .-cx-PRIVATE-pokesDashboard__pokercontent', k._pokesDashboard_item);
 
                        if (hasClass(target, 'highlight')) {
                                var t = target.textContent;
 
                        if (hasClass(target, 'highlight')) {
                                var t = target.textContent;
@@ -7936,27 +8654,52 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                };
 
                k._pokesDashboard_item = function(item) {
                };
 
                k._pokesDashboard_item = function(item) {
-                       var header = item.getElementsByClassName('pokeHeader');
-                       if (!header || !header.length) {
-                               return;
-                       }
-                       header = header[0];
+                       //var header = item.getElementsByClassName('pokeHeader');
+                       //if (!header || !header.length) {
+                       //      return;
+                       //}
+                       //header = header[0];
+
+                       // (Sep 25)
+                       var header = item.querySelector('._5lbt, .-cx-PRIVATE-pokesDashboard__pokername');
+                       if (header) {
+                               // <div class="-cx-PRIVATE-pokesDashboard__pokername _5lbt lfloat">&nbsp;<a href="" data-hovercard="">John</a> poked you.<br>&nbsp;<span class="-cx-PRIVATE-pokesDashboard__pokertime _5lbs"><abbr title="" data-utime="" class="timestamp">2 seconds ago</abbr></span></div>
+                               if (header.childNodes && header.childNodes.length) {
+                                       if (header.childNodes[2] && header.childNodes[2].nodeType === TEXT_NODE) {
+                                               var poke = header.childNodes[2];
+                                               var t = poke.textContent;
+                                               t = t.replace(/ poked you\./, ' nuzzled you.');
+                                               if (poke.textContent != t) {
+                                                       poke.textContent = t;
+                                               }
+                                       } else if (header.childNodes[4] && header.childNodes[4].nodeType === ELEMENT_NODE) {
+                                               var poke = header.childNodes[4];
+                                               if (poke.textContent === "Suggested Poke") {
+                                                       poke.textContent = "Suggested Nuzzle";
+                                               }
+                                       }
+                               }
+                       } else {
+                               var header = item.querySelector('.uiProfileBlockContent > ._6a > ._6b > .fwb'); // .-cx-PRIVATE-uiInlineBlock__root > .-cx-PRIVATE-uiInlineBlock__middle
+                               if (header) {
+                                       var t = header.innerHTML;
+                                       t = t.replace(/ poked you\./, ' nuzzled you.');
+                                       if (header.innerHTML != t) {
+                                               header.innerHTML = t;
+                                       }
 
 
-                       var t = header.innerHTML;
-                       t = t.replace(/ has poked you\./, ' has nuzzled you.');
-                       if (header.innerHTML != t) {
-                               header.innerHTML = t;
+                                       k._pokesDashboard_pokeLink(item);
+                               }
                        }
                        }
-
-                       k._pokesDashboard_pokeLink(item);
                };
 
                k._pokesDashboard_pokeLink = function(target) {
                };
 
                k._pokesDashboard_pokeLink = function(target) {
-                       $$(target, 'a[ajaxify^="/ajax/pokes/poke_inline.php"]', function(poke) {
+                       // (Sep 25) Skip buttons
+                       $$(target, 'a[ajaxify^="/pokes/inline/"]:not(._42ft)', function(poke) {
                                var text = "Nuzzle";
                                var text = "Nuzzle";
-                               if (poke.getAttribute('ajaxify').indexOf('pokeback=1') != -1) { // http://fb.com/406911932763192
+                               /*if (poke.getAttribute('ajaxify').indexOf('pokeback=1') != -1) { // http://fb.com/406911932763192
                                        text = "Nuzzle Back";
                                        text = "Nuzzle Back";
-                               }
+                               }*/
 
                                if (poke.childNodes && poke.childNodes.length && poke.childNodes[1]) {
                                        poke.childNodes[1].textContent = text;
 
                                if (poke.childNodes && poke.childNodes.length && poke.childNodes[1]) {
                                        poke.childNodes[1].textContent = text;
@@ -7978,8 +8721,14 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
 
                k.notification = function(dom) {
                        domReplaceFunc(dom.target, 'notification', '.notification', function(ele) {
 
                k.notification = function(dom) {
                        domReplaceFunc(dom.target, 'notification', '.notification', function(ele) {
-                               k._notification_change(ele, '.info', 'metadata', 'blueName');
+                               k._notification_change(ele, '.info', k._notification_general_metadata);
                        });
                        });
+
+                       if (ONPLUGINPAGE && hasClass(dom.target, 'notification-item')) {
+                               //.$$(dom.target, '.notification-item', function(ele) {
+                                       k._notification_change(dom.target, '.notification-text > .message', k._notification_messenger_metadata);
+                               //});
+                       }
                };
 
                k.notification_itemClass = ['_33c', '-cx-PRIVATE-fbNotificationJewelItem__item'];
                };
 
                k.notification_itemClass = ['_33c', '-cx-PRIVATE-fbNotificationJewelItem__item'];
@@ -7988,14 +8737,39 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                k._notification_react = function(ele) {
                        for (var i = 0; i <= 1; i += 1) {
                                if (hasClass(ele, k.notification_itemClass[i])) {
                k._notification_react = function(ele) {
                        for (var i = 0; i <= 1; i += 1) {
                                if (hasClass(ele, k.notification_itemClass[i])) {
-                                       k._notification_change(ele, '.'+k.notification_textClass[i]+' > span', k.notification_metadataClass[i], 'fwb');
+                                       k._notification_change(ele, '.'+k.notification_textClass[i]+' > span', k._notification_react_metadata);
                                        return true;
                                }
                        }
                        return false;
                };
 
                                        return true;
                                }
                        }
                        return false;
                };
 
-               k._notification_change = function(ele, info, metadata, bold) {
+               k._notification_general_metadata = function(node) {
+                       if (hasClass(node, 'metadata') || hasClass(node, 'blueName')) {
+                               return false;
+                       }
+                       return true;
+               };
+
+               k._notification_messenger_metadata = function(node) {
+                       // <a href="">X</a> likes your <a href="">comment</a>: "Also, please use this group in the..."
+                       //if (node.nodeType != TEXT_NODE) {
+                       //      return false;
+                       //}
+                       return true;
+               };
+
+               k._notification_react_metadata = function(node) {
+                       if (hasClass(node, 'fwb')) {
+                               return false;
+                       }
+                       if (hasClass(node, k.notification_metadataClass[0]) || hasClass(node, k.notification_metadataClass[1])) {
+                               return false;
+                       }
+                       return true;
+               };
+
+               k._notification_change = function(ele, info, metadataFunc) {
                        var info = ele.querySelector(info);
                        if (!info) {
                                return;
                        var info = ele.querySelector(info);
                        if (!info) {
                                return;
@@ -8006,7 +8780,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
 
                        for (var i = 0, len = info.childNodes.length; i < len; i += 1) {
                                var node = info.childNodes[i];
 
                        for (var i = 0, len = info.childNodes.length; i < len; i += 1) {
                                var node = info.childNodes[i];
-                               if (hasClass(node, metadata) || hasClass(node, bold)) {
+                               if (!metadataFunc(node)) {
                                        continue;
                                }
 
                                        continue;
                                }
 
@@ -8058,7 +8832,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
 
                                // lists/groups on Invite Friends dialogs
                                var listendpoint = ele.getAttribute('data-listendpoint');
 
                                // lists/groups on Invite Friends dialogs
                                var listendpoint = ele.getAttribute('data-listendpoint');
-                               if (listendpoint && listendpoint != '/ajax/chooser/list/friends/all/' && listendpoint.indexOf('/ajax/chooser/list/friends/') == 0 && listendpoint.indexOf('/ajax/chooser/list/friends/suggest/?filter=all') == -1) {
+                               if (listendpoint && listendpoint != '/ajax/chooser/list/friends/all/' && listendpoint.indexOf('/ajax/chooser/list/friends/') == 0 && listendpoint.indexOf('/ajax/chooser/list/friends/suggest/?filter=all') == -1 && listendpoint.indexOf('/ajax/chooser/list/friends/app_all_friends/') == -1 && listendpoint.indexOf('/ajax/chooser/list/friends/app_non_user/') == -1) {
                                        return;
                                }
 
                                        return;
                                }
 
@@ -8099,7 +8873,6 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
 
                                        var orig = '';
                                        var replaced = '';
 
                                        var orig = '';
                                        var replaced = '';
-                                       //var oldWidthBody = '';
                                        var oldLabelWidth = 0;
                                        ele.setAttribute('data-ponyhoof-menuitem-orig', ele.textContent);
                                        loopChildText(label, function(child) {
                                        var oldLabelWidth = 0;
                                        ele.setAttribute('data-ponyhoof-menuitem-orig', ele.textContent);
                                        loopChildText(label, function(child) {
@@ -8112,12 +8885,8 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                                                        hasScrollableArea = true;
                                                                }
                                                                if (hasScrollableArea) {
                                                                        hasScrollableArea = true;
                                                                }
                                                                if (hasScrollableArea) {
-                                                                       //oldWidthBody = ele.parentNode.parentNode.parentNode.style.width;
-                                                                       //ele.parentNode.parentNode.parentNode.style.width = 'auto';
                                                                        label.style.display = 'inline-block';
                                                                        label.style.display = 'inline-block';
-                                                                       //var oldWidth = label.offsetWidth;
                                                                        if (!oldLabelWidth) {
                                                                        if (!oldLabelWidth) {
-                                                                               //oldLabelWidth = oldWidth;
                                                                                oldLabelWidth = label.offsetWidth;
                                                                        }
                                                                }
                                                                                oldLabelWidth = label.offsetWidth;
                                                                        }
                                                                }
@@ -8126,9 +8895,6 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                                        replaced += t+' ';
                                                }
                                        });
                                                        replaced += t+' ';
                                                }
                                        });
-                                       //if (hasScrollableArea) {
-                                               //ele.parentNode.parentNode.parentNode.style.width = oldWidthBody;
-                                       //}
 
                                        orig = orig.substr(0, orig.length-1);
                                        replaced = replaced.substr(0, replaced.length-1);
 
                                        orig = orig.substr(0, orig.length-1);
                                        replaced = replaced.substr(0, replaced.length-1);
@@ -8205,6 +8971,11 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
 
                k.fbRemindersStory = function(target) {
                        $$(target, '.fbRemindersStory', function(item) {
 
                k.fbRemindersStory = function(target) {
                        $$(target, '.fbRemindersStory', function(item) {
+                               var reminderType = '';
+                               if (item.querySelector('#pages_reminders_link')) {
+                                       reminderType = 'page';
+                               }
+
                                var inner = item.querySelector('._42ef > .fcg, .-cx-PRIVATE-uiFlexibleBlock__flexiblecontent > .fcg');
                                if (!inner) {
                                        return;
                                var inner = item.querySelector('._42ef > .fcg, .-cx-PRIVATE-uiFlexibleBlock__flexiblecontent > .fcg');
                                if (!inner) {
                                        return;
@@ -8213,7 +8984,11 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                loopChildText(inner, function(child) {
                                        if (child.nodeType == TEXT_NODE) {
                                                var t = child.textContent;
                                loopChildText(inner, function(child) {
                                        if (child.nodeType == TEXT_NODE) {
                                                var t = child.textContent;
-                                               t = t.replace(/\bpoked you\b/, "nuzzled you");
+                                               if (reminderType === 'page') {
+                                                       t = t.replace(/\binvited you to like\b/, "invite you to "+CURRENTSTACK['like']);
+                                               } else {
+                                                       t = t.replace(/\bpoked you\b/, "nuzzled you");
+                                               }
                                                if (child.textContent != t) {
                                                        child.textContent = t;
                                                }
                                                if (child.textContent != t) {
                                                        child.textContent = t;
                                                }
@@ -8231,7 +9006,8 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                };
 
                k.flyoutLikeForm = function(target) {
                };
 
                k.flyoutLikeForm = function(target) {
-                       var result = k._flyoutLikeForm(target, 'groupsMemberFlyoutLikeForm', 'unlike');
+                       //var result = k._flyoutLikeForm(target, 'groupsMemberFlyoutLikeForm', 'unlike');
+                       var result = k._flyoutLikeForm(target, '_5nx0', 'unlike');
                        if (!result) {
                                result = k._flyoutLikeForm(target, 'fbEventMemberLike', 'liked');
                        }
                        if (!result) {
                                result = k._flyoutLikeForm(target, 'fbEventMemberLike', 'liked');
                        }
@@ -8267,18 +9043,31 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                };
 
                k.pluginButton = function(target) {
                };
 
                k.pluginButton = function(target) {
-                       if (!hasClass(d.body, 'plugin')) {
+                       if (!ONPLUGINPAGE) {
                                return;
                        }
 
                                return;
                        }
 
-                       //var root = target.getElementsByClassName('pluginConnectButtonLayoutRoot');
-                       var root = target.getElementsByClassName('pluginSkinLight');
+                       var root = target.getElementsByClassName('pluginConnectButtonLayoutRoot');
                        if (!root.length) {
                        if (!root.length) {
-                               return;
+                               var root = target.getElementsByClassName('pluginSkinLight');
+                               if (!root.length) {
+                                       return;
+                               }
                        }
                        root = root[0];
 
                        domReplaceFunc(root, '', '.pluginButton', function(ele) {
                        }
                        root = root[0];
 
                        domReplaceFunc(root, '', '.pluginButton', function(ele) {
+                               // oct 19
+                               var div = ele.getElementsByClassName('pluginButtonLabel');
+                               if (div.length) {
+                                       div = div[0];
+                                       if (div.innerHTML === "Like") {
+                                               div.innerHTML = capitaliseFirstLetter(CURRENTSTACK['like']);
+                                               return;
+                                       }
+                               }
+
+                               // old style
                                var div = ele.getElementsByTagName('div');
                                if (div.length) {
                                        ele = div[0];
                                var div = ele.getElementsByTagName('div');
                                if (div.length) {
                                        ele = div[0];
@@ -8290,9 +9079,9 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                        if (stop) {
                                                return;
                                        }
                                        if (stop) {
                                                return;
                                        }
-                                       if (child.tagName.toUpperCase() == 'SPAN') {
-                                               if (child.innerHTML == "Like") {
-                                                       child.innerHTML = capitaliseFirstLetter(CURRENTSTACK.like);
+                                       if (child.tagName.toUpperCase() === 'SPAN') {
+                                               if (child.innerHTML === "Like") {
+                                                       child.innerHTML = capitaliseFirstLetter(CURRENTSTACK['like']);
                                                        stop = true;
                                                }
                                        }
                                                        stop = true;
                                                }
                                        }
@@ -8315,9 +9104,11 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        });
 
                        // likebox
                        });
 
                        // likebox
-                       $$(root, '.uiGrid .pts > .uiGrid .pls > div > span', function(ele) {
-                               var t = k.likeSentence(ele.textContent);
-                               if (ele.textContent != t) {
+                       $$(root, '._51mx > .pls > div > span', function(ele) {
+                               var orig = ele.textContent;
+                               var t = k.likeSentence(orig);
+                               t = t.replace(/\bfriends\b/g, CURRENTSTACK['friends_logic']); // Be the first of your friends.
+                               if (orig != t) {
                                        ele.textContent = t;
                                }
                        });
                                        ele.textContent = t;
                                }
                        });
@@ -8391,27 +9182,83 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        return false;
                };
 
                        return false;
                };
 
-               k.beepNotification = function(dom) {
-                       warn("domNodeHandler.beepNotification() is deprecated");
+               k.pagesVoiceBarText = function(target) {
+                       if (hasClass(target, 'pagesVoiceBarText')) {
+                               if (target.childNodes && target.childNodes.length && target.childNodes[0]) {
+                                       var textNode = target.childNodes[0];
+                                       if (textNode.nodeType == TEXT_NODE) {
+                                               var t = textNode.textContent;
+                                               t = t.replace(/\bliking\b/, CURRENTSTACK['liking']);
+                                               if (textNode.textContent != t) {
+                                                       textNode.textContent = t;
+                                               }
+                                       }
+                               }
+                               return true;
+                       }
+                       return false;
+               };
+
+               k.endOfFeedPymlContainer = function(target) {
+                       if (target.getAttribute && target.getAttribute('id') === 'endOfFeedPymlContainer') {
+                               // _5jii - applicable table cell
+                               $$(target, '._5jii .fsm.fcg', function(ele) {
+                                       var orig = ele.textContent;
+                                       var t = orig;
+                                       t = t.replace(/\bLikes\b/, capitaliseFirstLetter(CURRENTSTACK['likes']));
+                                       t = t.replace(/\bLike\b/, capitaliseFirstLetter(CURRENTSTACK['like']));
+                                       t = t.replace(/\blikes\b/, CURRENTSTACK['likes']);
+                                       t = t.replace(/\blike\b/, CURRENTSTACK['like']);
+                                       if (t != orig) {
+                                               ele.textContent = t;
+                                       }
+                               });
+                               $$(target, '._5jii ._5f55', function(link) {
+                                       if (link.childNodes && link.childNodes.length && link.childNodes[1] && link.childNodes[1].nodeType === TEXT_NODE) {
+                                               var node = link.childNodes[1];
+                                               var orig = node.textContent;
+                                               var t = orig;
+                                               t = t.replace(/\bLike\b/, capitaliseFirstLetter(CURRENTSTACK['like']));
+                                               if (t != orig) {
+                                                       node.textContent = t;
+                                               }
+                                       }
+                               });
+
+                               return true;
+                       }
                        return false;
                };
 
                        return false;
                };
 
-               // XYZ commented on your Wall post: "I like it"
-               k._beepNotification_condition_classic = function(node, gt) {
-                       // <div class="UIBeep_Title"><span class="blueName">XYZ</span> likes your comment: "12"</div>
-                       // <div class="UIBeep_Title"><span class="blueName">XYZ</span>  brohoofs your friendship letter: "12"</div>
-                       if (node.nodeType == 3) {
+               k.pubcontentFeedChaining = function(target) {
+                       if (hasClass(target, '_5j5u')) {
+                               $$(target, '._5j5w > .content > div > .fcg', function(fcg) {
+                                       var orig = fcg.textContent;
+                                       var t = orig;
+                                       t = t.replace(/\blikes\b/, CURRENTSTACK['likes']);
+                                       t = t.replace(/\blike\b/, CURRENTSTACK['like']);
+                                       if (orig != t) {
+                                               fcg.textContent = t;
+                                       }
+                               });
+
                                return true;
                        }
                        return false;
                };
                                return true;
                        }
                        return false;
                };
+
                k._beepNotification_condition_react = function(node, gt) {
                k._beepNotification_condition_react = function(node, gt) {
-                       // <span id=".reactRoot[37].[0]{NUMBER}.0.[1].0.[1].0.0.[0]"><span class="fwb" id=".reactRoot[37].[0]{NUMBER}.0.[1].0.[1].0.0.[0].[0]"><span id=".reactRoot[37].[0]{NUMBER}.0.[1].0.[1].0.0.[0].[0].0">XYZ</span></span><span id=".reactRoot[37].[0]{NUMBER}.0.[1].0.[1].0.0.[0].[1]"> also commented on a </span><span class="fwb" id=".reactRoot[37].[0]{NUMBER}.0.[1].0.[1].0.0.[0].[2]"><span id=".reactRoot[37].[0]{NUMBER}.0.[1].0.[1].0.0.[0].[2].0">photo</span></span><span id=".reactRoot[37].[0]{NUMBER}.0.[1].0.[1].0.0.[0].[3]"> in </span><span class="fwb" id=".reactRoot[37].[0]{NUMBER}.0.[1].0.[1].0.0.[0].[4]"><span id=".reactRoot[37].[0]{NUMBER}.0.[1].0.[1].0.0.[0].[4].0">GROUP NAME</span></span><span id=".reactRoot[37].[0]{NUMBER}.0.[1].0.[1].0.0.[0].[5]">: "What?"</span></span>
+                       // <span id=""><span class="fwb" id=""><span id="">XYZ</span></span><span id=""> also commented on a </span><span class="fwb" id=""><span id="">photo</span></span><span id=""> in </span><span class="fwb" id=""><span id="">GROUP NAME</span></span><span id="">: "What?"</span></span>
+                       // <span data-reactid=""><span class="fwb" data-reactid="">NAME</span><span data-reactid=""> commented on your pony pic in </span><span class="fwb" data-reactid="">GROUP NAME</span><span data-reactid="">: "COMMENT"</span></span>
 
                        // **XYZ** posted on **Ponyhoof**'s **timeline**: "XYZ"
 
                        // **XYZ** posted on **Ponyhoof**'s **timeline**: "XYZ"
-                       //if (hasClass(node, 'fwb')) {
-                       //      return false;
-                       //}
+                       // **profile people test** posted in **group people test**: "like test"
+                       if (hasClass(node, 'fwb')) {
+                               if (node.textContent === 'timeline') {
+                                       return true;
+                               }
+                               return false;
+                       }
                        return true;
                };
 
                        return true;
                };
 
@@ -8425,31 +9272,16 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        for (var i = 0, len = info.childNodes.length; i < len; i += 1) {
                                var node = info.childNodes[i];
                                if (condition(node, gt)) {
                        for (var i = 0, len = info.childNodes.length; i < len; i += 1) {
                                var node = info.childNodes[i];
                                if (condition(node, gt)) {
-                                       if (node.nodeType == 3) {
-                                               var text = node.textContent;
+                                       var text = '';
+                                       if (node.nodeType === TEXT_NODE) {
+                                               text = node.textContent;
+                                               k._beepNotification_change_text(node, text);
                                        } else {
                                        } else {
-                                               var inner = node.getElementsByTagName('span');
-                                               if (inner.length) {
-                                                       // reactRoot .fwb
-                                                       node = inner[0];
-                                               }
-                                               var text = node.innerHTML;
-                                       }
-
-                                       if (text.indexOf('"') != -1) {
-                                               var finalText = k.textNotification(text.substring(0, text.indexOf('"')));
-                                               finalText += text.substring(text.indexOf('"'), text.length);
-                                       } else {
-                                               var finalText = k.textNotification(text);
-                                       }
-
-                                       if (node.nodeType == 3) {
-                                               if (node.textContent != finalText) {
-                                                       node.textContent = finalText;
-                                               }
-                                       } else {
-                                               if (node.innerHTML != finalText) {
-                                                       node.innerHTML = finalText;
+                                               // emoticons are smacked together, so we need to run another loop
+                                               for (var j = 0, jLen = node.childNodes.length; j < jLen; j += 1) {
+                                                       var textNode = node.childNodes[j];
+                                                       text = textNode.textContent;
+                                                       k._beepNotification_change_text(textNode, text);
                                                }
                                        }
 
                                                }
                                        }
 
@@ -8496,6 +9328,26 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        }
                };
 
                        }
                };
 
+               k._beepNotification_change_text = function(node, text) {
+                       if (!text) {
+                               return;
+                       }
+                       if (text.indexOf('"') != -1) {
+                               var finalText = k.textNotification(text.substring(0, text.indexOf('"')));
+                               finalText += text.substring(text.indexOf('"'), text.length);
+                       } else {
+                               var finalText = k.textNotification(text);
+                       }
+
+                       if (text != finalText) {
+                               if (node.nodeType === TEXT_NODE) {
+                                       node.textContent = finalText;
+                               } else {
+                                       node.innerHTML = finalText;
+                               }
+                       }
+               };
+
                k.insightsCountryData = [
                         ["United States of America", "United States of Amareica"]
                        ,["Malaysia", "Marelaysia"]
                k.insightsCountryData = [
                         ["United States of America", "United States of Amareica"]
                        ,["Malaysia", "Marelaysia"]
@@ -8505,8 +9357,8 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        ,["Singapore", "Singapony"]
                        ,["Singapore, Singapore", "Singapony"]
                ];
                        ,["Singapore", "Singapony"]
                        ,["Singapore, Singapore", "Singapony"]
                ];
-               k.insightsCountry = function(dom) {
-                       domReplaceFunc(dom.target, 'breakdown-list-table', '.breakdown-list-table', function(ele) {
+               k.insightsCountry = function(target) {
+                       /*domReplaceFunc(dom.target, 'breakdown-list-table', '.breakdown-list-table', function(ele) {
                                if (ele.getAttribute('data-ponyhoof-ponified')) {
                                        return;
                                }
                                if (ele.getAttribute('data-ponyhoof-ponified')) {
                                        return;
                                }
@@ -8514,6 +9366,15 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                $$(ele, '.breakdown-key .ufb-text-content', function(country) {
                                        country.textContent = replaceText(k.insightsCountryData, country.textContent);
                                });
                                $$(ele, '.breakdown-key .ufb-text-content', function(country) {
                                        country.textContent = replaceText(k.insightsCountryData, country.textContent);
                                });
+                       });*/
+
+                       $$(target, '._5brx ._55jr', function(ele) {
+                               var orig = ele.textContent;
+                               var t = orig;
+                               t = replaceText(k.insightsCountryData, ele.textContent);
+                               if (orig != t) {
+                                       ele.textContent = t;
+                               }
                        });
                };
 
                        });
                };
 
@@ -8561,6 +9422,116 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        }
                };
 
                        }
                };
 
+               k.uiStreamShareLikePageBox = function(target) {
+                       $$(target, '.uiStreamShareLikePageBox .uiPageLikeButton.rfloat + div > .fcg', function(ele) {
+                               var t = ele.textContent;
+                               t = t.replace(/likes/g, CURRENTSTACK['likes']);
+                               t = t.replace(/like/g, CURRENTSTACK['like']);
+                               if (ele.textContent != t) {
+                                       ele.textContent = t;
+                               }
+                       });
+               };
+
+               k.fbTimelineUnit = function(target) {
+                       if (!hasClass(target, 'fbTimelineUnit')) {
+                               return;
+                       }
+                       if (target.childNodes && target.childNodes.length) {
+                               if (hasClass(target.childNodes[1], 'pageFriendSummaryContainer')) {
+                                       var headerText = target.childNodes[1].getElementsByClassName('headerText');
+                                       if (!headerText.length) {
+                                               return;
+                                       }
+                                       headerText = headerText[0];
+
+                                       // Friend(s)
+                                       $$(headerText, '.fwb > a', function(link) {
+                                               var t = link.textContent;
+                                               t = t.replace(/\bFriends\b/, capitaliseFirstLetter(CURRENTSTACK['friends']));
+                                               t = t.replace(/\bFriend\b/, capitaliseFirstLetter(CURRENTSTACK['friend']));
+                                               if (link.textContent != t) {
+                                                       link.textContent = t;
+                                               }
+                                       });
+
+                                       // Like(s) PAGENAME
+                                       $$(headerText, '.fcg', function(fcg) {
+                                               var split = fcg.textContent.split(' ');
+                                               var t = split[0];
+                                               t = t.replace(/\bLikes\b/, capitaliseFirstLetter(CURRENTSTACK['likes']));
+                                               t = t.replace(/\bLike\b/, capitaliseFirstLetter(CURRENTSTACK['like']));
+                                               if (split[0] != t) {
+                                                       split[0] = t;
+                                                       fcg.textContent = split.join(' ');
+                                               }
+                                       });
+
+                                       return;
+                               }
+
+                               // Brohoofs section at pages
+                               var liked_pages_timeline_unit_list = $('liked_pages_timeline_unit_list');
+                               if (liked_pages_timeline_unit_list) {
+                                       $$(liked_pages_timeline_unit_list, '._42ef .fcg', function(fcg) {
+                                               loopChildText(fcg, function(child) {
+                                                       // <a href="/browse/friended_fans_of/?page_id=X" ajaxify="/ajax/browser/dialog/friended_fans_of/?page_id=X" rel="dialog" role="button">4 friends</a>
+                                                       // also like this.
+                                                       var t = child.textContent;
+                                                       t = k.textStandard(t);
+                                                       if (child.textContent != t) {
+                                                               child.textContent = t;
+                                                       }
+                                               });
+                                       });
+                               }
+                       }
+               };
+
+               // https://www.facebook.com/pages
+               k.pageBrowserItem = function(target) {
+                       // lazy-loaded: <div class="_8qg fsm fwn fcg"><a href="" data-hovercard="/ajax/hovercard/user.php?id="></a> likes this.<div class="_43qm mbs _43q9"><ul class="uiList _4cg3 _509- _4ki"><li class="_43q7">FACEPILE</li></ul></div></div>
+                       if (hasClass(target, '_8qg') && hasClass(target, 'fcg')) {
+                               k._pageBrowserItem_item(target);
+                               return;
+                       }
+
+                       $$(target, '._8qg.fcg', function(item) {
+                               // <div class="_8qg fsm fwn fcg"><div class="_8qg fsm fwn fcg"><div class="fsm fwn fcg">235,674 likes Â· 40,634 people talking about this</div></div></div>
+                               k._pageBrowserItem_item(item);
+                       });
+               };
+
+               k._pageBrowserItem_item = function(item) {
+                       loopChildText(item, function(child) {
+                               if (child.nodeType === TEXT_NODE || hasClass(child, 'fcg')) {
+                                       k.textBrohoof(child);
+                               }
+                       });
+               };
+
+               k._dialog_insertReadme = function(body) {
+                       var done = false;
+                       $$(body, '._22i .uiToken > input[type="hidden"]', function(input) { // @cx
+                               if (done) {
+                                       return;
+                               }
+                               if (input.getAttribute('name') == 'undefined[]' && isPonyhoofPage(input.value)) { // undefined[] is intentional from FB, NOT A TYPO
+                                       addClass(body, 'ponyhoof_composer_hasReadme');
+
+                                       var n = d.createElement('iframe');
+                                       n.className = 'ponyhoof_page_readme';
+                                       n.scrolling = 'auto';
+                                       n.frameborder = '0';
+                                       n.allowtransparency = 'true';
+                                       n.src = PONYHOOF_README;
+                                       body.appendChild(n);
+
+                                       done = true;
+                               }
+                       });
+               };
+
                k._dialog_playSound = function(title, outer) {
                        if (!title) {
                                return;
                k._dialog_playSound = function(title, outer) {
                        if (!title) {
                                return;
@@ -8740,12 +9711,21 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                                                                i = 1;
                                                                        }
 
                                                                                i = 1;
                                                                        }
 
-                                                                       k._notification_change(notificationItem, '.'+k.notification_textClass[i]+' > span', k.notification_metadataClass[i], 'fwb');
+                                                                       k._notification_change(notificationItem, '.'+k.notification_textClass[i]+' > span', k._notification_react_metadata);
                                                                });
                                                        }
                                                }
                                        }
                                }
                                                                });
                                                        }
                                                }
                                        }
                                }
+                       } else {
+                               // Nuzzles
+                               if (hasClass(parent, '_5lbu') || hasClass(parent, '-cx-PRIVATE-pokesDashboard__pokerbuttons')) {
+                                       var t = mutation.target.textContent;
+                                       t = t.replace(/\bPoke\b/, 'Nuzzle');
+                                       if (mutation.target.textContent != t) {
+                                               mutation.target.textContent = t;
+                                       }
+                               }
                        }
                };
 
                        }
                };
 
@@ -8776,7 +9756,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                                                t = t.replace(/\bunlike this \b/, CURRENTSTACK.unlike+' this ');
                                                                t = t.replace(/\bliking this \b/, CURRENTSTACK.liking+' this ');
 
                                                                t = t.replace(/\bunlike this \b/, CURRENTSTACK.unlike+' this ');
                                                                t = t.replace(/\bliking this \b/, CURRENTSTACK.liking+' this ');
 
-                                                               if (target.title != t) {
+                                                               if (orig != t) {
                                                                        target.title = t;
                                                                }
                                                                target.setAttribute('data-ponyhoof-title', orig);
                                                                        target.title = t;
                                                                }
                                                                target.setAttribute('data-ponyhoof-title', orig);
@@ -8930,6 +9910,44 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        return false;
                };
 
                        return false;
                };
 
+               k.updateLayerPosition = function(layer) {
+                       var tempClass = 'ponyhoof_temp_'+(+new Date());
+                       addClass(layer, tempClass);
+
+                       contentEval(function(arg) {
+                               try {
+                                       if (typeof window.requireLazy == 'function') {
+                                               window.requireLazy(['DataStore'], function(DataStore) {
+                                                       var layer = document.getElementsByClassName(arg.tempClass);
+                                                       if (!layer || !layer.length) {
+                                                               return;
+                                                       }
+                                                       layer = layer[0];
+
+                                                       var layerClass = DataStore.get(layer, 'layer');
+                                                       layerClass.updatePosition();
+                                                       layerClass = null;
+
+                                                       if (layer.classList) {
+                                                               layer.classList.remove(arg.tempClass);
+                                                       }
+                                               });
+                                       }
+                               } catch (e) {
+                                       if (arg.CANLOG && typeof console != 'undefined' && console.log && console.dir) {
+                                               console.log("Unable to hook to DataStore");
+                                               console.dir(e);
+                                       }
+                               }
+                       }, {'CANLOG':CANLOG, 'tempClass':tempClass});
+
+                       if (!layer.classList) {
+                               w.setTimeout(function() {
+                                       removeClass(layer, tempClass);
+                               }, 500);
+                       }
+               };
+
                // Ignore irrelevant tags and some classes
                k.shouldIgnore = function(dom) {
                        if (dom.target.nodeType == 8) { // comments
                // Ignore irrelevant tags and some classes
                k.shouldIgnore = function(dom) {
                        if (dom.target.nodeType == 8) { // comments
@@ -8987,12 +10005,14 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                };
 
                k.textBrohoof = function(ele) {
                };
 
                k.textBrohoof = function(ele) {
+                       var orig = '';
                        var t = '';
                        var t = '';
-                       if (ele.nodeType == TEXT_NODE) {
-                               t = ele.textContent;
+                       if (ele.nodeType === TEXT_NODE) {
+                               orig = ele.textContent;
                        } else {
                        } else {
-                               t = ele.innerHTML;
+                               orig = ele.innerHTML;
                        }
                        }
+                       t = orig;
                        t = t.replace(/\bpeople\b/g, " "+CURRENTSTACK['people']);
                        t = t.replace(/\bperson\b/g, " "+CURRENTSTACK['person']);
                        t = t.replace(/likes this/g, CURRENTSTACK['likes']+" this");
                        t = t.replace(/\bpeople\b/g, " "+CURRENTSTACK['people']);
                        t = t.replace(/\bperson\b/g, " "+CURRENTSTACK['person']);
                        t = t.replace(/likes this/g, CURRENTSTACK['likes']+" this");
@@ -9000,15 +10020,13 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        t = t.replace(/Likes/g, capitaliseFirstLetter(CURRENTSTACK['likes'])); // new news feed page likes
                        t = t.replace(/likes/g, CURRENTSTACK['likes']);
                        t = t.replace(/like/g, CURRENTSTACK['like']);
                        t = t.replace(/Likes/g, capitaliseFirstLetter(CURRENTSTACK['likes'])); // new news feed page likes
                        t = t.replace(/likes/g, CURRENTSTACK['likes']);
                        t = t.replace(/like/g, CURRENTSTACK['like']);
-                       t = t.replace(/talking about this/g, "blabbering about this");
+                       t = t.replace(/\btalking about this\b/g, "blabbering about this");
                        t = t.replace(/\bfriends\b/g, CURRENTSTACK['friends_logic']);
                        t = t.replace(/\bfriend\b/g, CURRENTSTACK['friend_logic']);
                        t = t.replace(/\bfriends\b/g, CURRENTSTACK['friends_logic']);
                        t = t.replace(/\bfriend\b/g, CURRENTSTACK['friend_logic']);
-                       if (ele.nodeType == TEXT_NODE) {
-                               if (ele.textContent != t) {
+                       if (orig != t) {
+                               if (ele.nodeType === TEXT_NODE) {
                                        ele.textContent = t;
                                        ele.textContent = t;
-                               }
-                       } else {
-                               if (ele.innerHTML != t) {
+                               } else {
                                        ele.innerHTML = t;
                                }
                        }
                                        ele.innerHTML = t;
                                }
                        }
@@ -9259,11 +10277,11 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                }
                
                var globalcss = '';
                }
                
                var globalcss = '';
-               globalcss += 'html.ponyhoof_settings_show_messages_other #navItem_app_217974574879787 > ul {display:block !important;}';
                globalcss += '.ponyhoof_page_readme {width:100%;height:300px;border:solid #B4BBCD;border-width:1px 0;-moz-box-sizing:border-box;box-sizing:border-box;}';
                globalcss += '#fbIndex_swf {position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;}';
                globalcss += '.ponyhoof_image_shadow {-moz-box-shadow:0 3px 8px rgba(0,0,0,.3);box-shadow:0 3px 8px rgba(0,0,0,.3);margin:0 auto;display:block;margin-bottom:3px;cursor:not-allowed;-webkit-user-drag:none;-moz-user-drag:none;user-drag:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;}';
                globalcss += '.ponyhoof_image_shadow.noshadow {-moz-box-shadow:none;box-shadow:none;}';
                globalcss += '.ponyhoof_page_readme {width:100%;height:300px;border:solid #B4BBCD;border-width:1px 0;-moz-box-sizing:border-box;box-sizing:border-box;}';
                globalcss += '#fbIndex_swf {position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;}';
                globalcss += '.ponyhoof_image_shadow {-moz-box-shadow:0 3px 8px rgba(0,0,0,.3);box-shadow:0 3px 8px rgba(0,0,0,.3);margin:0 auto;display:block;margin-bottom:3px;cursor:not-allowed;-webkit-user-drag:none;-moz-user-drag:none;user-drag:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;}';
                globalcss += '.ponyhoof_image_shadow.noshadow {-moz-box-shadow:none;box-shadow:none;}';
+               globalcss += '.ponyhoof_tooltip_widthFix {width:auto !important;}';
 
                injectManualStyle(globalcss, 'global');
                
 
                injectManualStyle(globalcss, 'global');
                
@@ -9299,7 +10317,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        }
                }
                
                        }
                }
                
-               if (userSettings.customBg) {
+               if (userSettings.customBg && !ONPLUGINPAGE) {
                        changeCustomBg(userSettings.customBg);
                }
 
                        changeCustomBg(userSettings.customBg);
                }
 
@@ -9603,7 +10621,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                try {
                        var href = w.location.href.toLowerCase();
                        
                try {
                        var href = w.location.href.toLowerCase();
                        
-                       if ((href.indexOf('/plugins/like.php') != -1 || href.indexOf('/plugins/likebox.php') != -1 || href.indexOf('/plugins/subscribe.php') || href.indexOf('/plugins/facepile.php') != -1) && (href.indexOf('login/plugin_roadblock.php') == -1 && (href.indexOf('#ponyhoof_runme') != -1 || href.indexOf('&ponyhoof_runme') != -1))) {
+                       if ((href.indexOf('/plugins/like.php') != -1 || href.indexOf('/plugins/likebox.php') != -1 || href.indexOf('/plugins/subscribe.php') != -1 || href.indexOf('/plugins/facepile.php') != -1) && (href.indexOf('login/plugin_roadblock.php') == -1 && (href.indexOf('#ponyhoof_runme') != -1 || href.indexOf('&ponyhoof_runme') != -1))) {
                                // Allow like boxes for the Ponyhoof page (yeah, a bit cheating)
                        } else if (hasClass(d.body, 'chrmxt')) {
                                // Allow for Facebook Notifications for Chrome
                                // Allow like boxes for the Ponyhoof page (yeah, a bit cheating)
                        } else if (hasClass(d.body, 'chrmxt')) {
                                // Allow for Facebook Notifications for Chrome
@@ -9618,6 +10636,14 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                        }
                                }
 
                                        }
                                }
 
+                               // Allow for comment boxes owned by Ponyhoof
+                               // (in theory, we could still be run by http://example/?api_key=231958156911371 but this isn't a big deal)
+                               if (w.location.pathname === '/plugins/comments.php') {
+                                       if (w.location.search.indexOf('api_key=231958156911371') != -1 || w.location.search.indexOf('api_key=376261472405891') != -1) {
+                                               allowedFramesOk = true;
+                                       }
+                               }
+
                                if (!allowedFramesOk) {
                                        if (USW.self != USW.top) {
                                                throw 1;
                                if (!allowedFramesOk) {
                                        if (USW.self != USW.top) {
                                                throw 1;
@@ -9657,7 +10683,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
 
                // Ban parasprites
                // If you would like to end up here, just simply show us that you have no clue about what Ponyhoof is really about and keep hitting "Send page source", don't be a moron please
 
                // Ban parasprites
                // If you would like to end up here, just simply show us that you have no clue about what Ponyhoof is really about and keep hitting "Send page source", don't be a moron please
-               if (USERID && ['0147135a7dc2d1b65ca0032c97f89c5b', '6c5b9bf8a304f1a3e0b085f974c53592', '4ab4094e54225dccadf42bee9ac212a9', '2887516d877df760641ed9247cc84b65', '06308ee7060101f04a18e41158408730', 'a95ef44112c18876a808b2d7781e63ba', '57b540dc72835f30d402f6abc566677c', '1f75490e12b25ee5839687e0ffe65502', '24363cd421635e8268983f6187def3c8', '3a420678fb395a9e71ad6b523e880a27', 'd7a9db4027cd407b281c84cc626a9f70', '23d69d7ecfeeb940deef6bc69c3aee00', 'ad3553f919b97dbbb19a69966666641e', '46077eeb2467c70ec9332b672d1d7bd1', 'bc8ef81105cfdc4c6b5ff349622dae8a', 'a21ad36f4c3fc35494626d1399cc4be1', '3a2135f78503521e570608c07c3e6386', '8dc11f39765f8fe83603502afcb630a9', 'ac966d33840736554984577a78d37d95', '11abc5dd16709ff201ec00781c39ac3c', '00e957ff53a5b34518087621165498f9', '025e1b15134402df1803de9421dc7819', '125c419ddbad08ee8c53b88801415887', 'ca94af2350690962e97e1ac1fb98fa06', '62e6c5f16e8ccc79c94aa452aa36f5d8', 'cf7e6ddb2fc7c7984d323a81dfca8dfb', 'df6495bacaeb347a931f7e676fc8ee0b', 'e5ffc53255c20275e2c7d8f0c2ca5201', '31161cecf1fd9804bb66fa4e373733c6', 'cb5f2107815d30a538b30d82df93a1ac', '3a420678fb395a9e71ad6b523e880a27', 'b002c047d235437b8b255173ce73744a'].indexOf(md5(USERID)) != -1) {
+               if (USERID && ['10e823f70f20d7ef90db87783d96d5a6', 'b002a2d15003dad6a1cf694bba258ea2', 'c2480aa0cd99186aac0430f6d24ff40c', '377533fc17cfd34fae337a4c9a5e4d49', 'a078ca1d2d6a98055fa448b8367a8190', 'b85f32cf81e4153975f1e1f55fecfe58', '40ab65332ad92345ab727aadcc623906', '0147135a7dc2d1b65ca0032c97f89c5b', '6c5b9bf8a304f1a3e0b085f974c53592', '4ab4094e54225dccadf42bee9ac212a9', '2887516d877df760641ed9247cc84b65', '06308ee7060101f04a18e41158408730', 'a95ef44112c18876a808b2d7781e63ba', '57b540dc72835f30d402f6abc566677c', '1f75490e12b25ee5839687e0ffe65502', '24363cd421635e8268983f6187def3c8', '3a420678fb395a9e71ad6b523e880a27', 'd7a9db4027cd407b281c84cc626a9f70', '23d69d7ecfeeb940deef6bc69c3aee00', 'ad3553f919b97dbbb19a69966666641e', '46077eeb2467c70ec9332b672d1d7bd1', 'bc8ef81105cfdc4c6b5ff349622dae8a', 'a21ad36f4c3fc35494626d1399cc4be1', '3a2135f78503521e570608c07c3e6386', '8dc11f39765f8fe83603502afcb630a9', 'ac966d33840736554984577a78d37d95', '11abc5dd16709ff201ec00781c39ac3c', '00e957ff53a5b34518087621165498f9', '025e1b15134402df1803de9421dc7819', '125c419ddbad08ee8c53b88801415887', 'ca94af2350690962e97e1ac1fb98fa06', '62e6c5f16e8ccc79c94aa452aa36f5d8', 'cf7e6ddb2fc7c7984d323a81dfca8dfb', 'df6495bacaeb347a931f7e676fc8ee0b', 'e5ffc53255c20275e2c7d8f0c2ca5201', '31161cecf1fd9804bb66fa4e373733c6', 'cb5f2107815d30a538b30d82df93a1ac', '3a420678fb395a9e71ad6b523e880a27', 'b002c047d235437b8b255173ce73744a'].indexOf(md5(USERID)) != -1) {
                        if (globalSettings.allowLoginScreen) {
                                globalSettings.allowLoginScreen = false;
                                saveGlobalSettings();
                        if (globalSettings.allowLoginScreen) {
                                globalSettings.allowLoginScreen = false;
                                saveGlobalSettings();
@@ -9724,7 +10750,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                }
 
                var luckyGuess = -1;
                }
 
                var luckyGuess = -1;
-               if (!CURRENTPONY) {
+               if (!CURRENTPONY && globalSettings.runForNewUsers) {
                        // If we have a "special" name, load the peferred theme for that character if we're in one
                        try {
                                getBronyName();
                        // If we have a "special" name, load the peferred theme for that character if we're in one
                        try {
                                getBronyName();
@@ -9755,8 +10781,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        addClass(d.documentElement, 'ponyhoof_isusingpage');
                }
 
                        addClass(d.documentElement, 'ponyhoof_isusingpage');
                }
 
-               var logo = d.querySelector('#pageLogo > a[href*="/business/dashboard/"]');
-               if (logo) {
+               if (d.querySelector('#pageLogo > a[href*="/business/dashboard/"]')) {
                        ISUSINGBUSINESS = true;
                        addClass(d.documentElement, 'ponyhoof_isusingbusiness');
                }
                        ISUSINGBUSINESS = true;
                        addClass(d.documentElement, 'ponyhoof_isusingbusiness');
                }
@@ -9795,7 +10820,8 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                        saveGlobalSettings();
                }
 
                        saveGlobalSettings();
                }
 
-               if (forceWhiteBackground || hasClass(d.body, 'plugin') || hasClass(d.body, 'transparent_widget')) {
+               if (forceWhiteBackground || hasClass(d.body, 'plugin') || hasClass(d.body, 'transparent_widget') || hasClass(d.body, '_1_vn')) {
+                       ONPLUGINPAGE = true;
                        addClass(d.documentElement, 'ponyhoof_fbplugin');
                        changeThemeSmart(CURRENTPONY);
                } else {
                        addClass(d.documentElement, 'ponyhoof_fbplugin');
                        changeThemeSmart(CURRENTPONY);
                } else {
@@ -9804,7 +10830,7 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                // Activate screen saver
                                screenSaverActivate();
 
                                // Activate screen saver
                                screenSaverActivate();
 
-                               $$(d.body, '#blueBar .loggedout_menubar > .rfloat, ._50dz > .ptl[style*="#3B5998"] .rfloat > #login_form, ._50dz > div[style*="#3B5998"] td > div[style*="float"] #login_form, .-cx-PRIVATE-regCmsContainer__root > .ptl[style*="#3B5998"] .rfloat > #login_form, .-cx-PRIVATE-regCmsContainer__root > div[style*="#3B5998"] td > div[style*="float"] #login_form', function() {
+                               $$(d.body, '#blueBar .loggedout_menubar > .rfloat, ._50dz > .ptl[style*="#3B5998"] .rfloat > #login_form, ._50dz > div[style*="#3B5998"] td > div[style*="float"] #login_form', function() {
                                        addClass(d.documentElement, 'ponyhoof_fbIndex_topRightLogin');
                                });
                        }
                                        addClass(d.documentElement, 'ponyhoof_fbIndex_topRightLogin');
                                });
                        }
@@ -9839,13 +10865,15 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
                                                changeThemeSmart(CURRENTPONY);
                                        }
 
                                                changeThemeSmart(CURRENTPONY);
                                        }
 
-                                       var dat = convertCodeToData(REALPONY);
-                                       if (dat.fbIndex_swf && !userSettings.disable_animation) {
-                                               addClass(d.documentElement, 'ponyhoof_fbIndex_hasswf');
+                                       if (canPlayFlash()) {
+                                               var dat = convertCodeToData(REALPONY);
+                                               if (dat.fbIndex_swf && !userSettings.disable_animation) {
+                                                       addClass(d.documentElement, 'ponyhoof_fbIndex_hasswf');
 
 
-                                               var swf = d.createElement('div');
-                                               swf.innerHTML = '<object type="application/x-shockwave-flash" id="fbIndex_swf" width="100%" height="100%" data="'+THEMEURL+dat.fbIndex_swf+'"><param name="movie" value="'+THEMEURL+dat.fbIndex_swf+'"><param name="wmode" value="opaque"><param name="menu" value="false"><param name="allowscriptaccess" value="never"></object>';
-                                               d.body.appendChild(swf);
+                                                       var swf = d.createElement('div');
+                                                       swf.innerHTML = '<object type="application/x-shockwave-flash" id="fbIndex_swf" width="100%" height="100%" data="'+THEMEURL+dat.fbIndex_swf+'"><param name="movie" value="'+THEMEURL+dat.fbIndex_swf+'"><param name="wmode" value="opaque"><param name="menu" value="false"><param name="allowscriptaccess" value="never"></object>';
+                                                       d.body.appendChild(swf);
+                                               }
                                        }
                                } else {
                                        changeThemeSmart(CURRENTPONY);
                                        }
                                } else {
                                        changeThemeSmart(CURRENTPONY);
@@ -9863,9 +10891,11 @@ function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-6808
 
                // Record the last user to figure out what theme to load at login screen
                // This is low priority, if all else fails, we would just load the default Equestria 'login' anyway
 
                // Record the last user to figure out what theme to load at login screen
                // This is low priority, if all else fails, we would just load the default Equestria 'login' anyway
-               if (CURRENTPONY != 'NONE' && USERID && globalSettings.lastUserId != USERID) {
-                       globalSettings.lastUserId = USERID;
-                       saveGlobalSettings();
+               if (CURRENTPONY != 'NONE' && userSettings.theme != null) { // Make sure we have a pony set
+                       if (USERID && globalSettings.lastUserId != USERID && globalSettings.allowLoginScreen) {
+                               globalSettings.lastUserId = USERID;
+                               saveGlobalSettings();
+                       }
                }
        }
        
                }
        }