X-Git-Url: https://git.rmz.io/dotfiles.git/blobdiff_plain/ad561c6184f822d259c5bd7109e181afab82dee9..3575cadcd195bb7c4562d0e1fc1c56be0a25a1a6:/dwb/greasemonkey/ponyhoof.user.js diff --git a/dwb/greasemonkey/ponyhoof.user.js b/dwb/greasemonkey/ponyhoof.user.js index c71c00b..be24c83 100644 --- a/dwb/greasemonkey/ponyhoof.user.js +++ b/dwb/greasemonkey/ponyhoof.user.js @@ -2,7 +2,7 @@ // @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 @@ -13,7 +13,7 @@ // @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/* @@ -46,6 +46,11 @@ (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; } @@ -67,11 +72,14 @@ var userSettings = {}; 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 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') { @@ -205,14 +213,10 @@ function clickLink(el) { 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) { @@ -545,7 +549,7 @@ var Menu = function(id, p) { 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;}'; @@ -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_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'); }; @@ -590,7 +594,7 @@ var Menu = function(id, p) { addClass(k.menuInner.parentNode, 'overflow'); } - if (k.canSearch) { + if (k.canSearch && !ISMOBILE) { var scrollTop = k.selectorMenu.scrollTop; k.menuSearchInput.focus(); k.menuSearchInput.select(); @@ -796,7 +800,7 @@ var MenuItem = function(menu) { // Dialog var DIALOGS = {}; -var DIALOGCOUNT = 400; +var DIALOGCOUNT = 2000; 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 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;}'; @@ -956,7 +960,7 @@ var Dialog = function(id) { k.onclosefinish(); }); if (callback) { - log("Legacy dialog close code found"); + log("Legacy dialog close code found [Dialog.close()]"); } if (ISOPERA) { @@ -1041,7 +1045,7 @@ var Dialog = function(id) { 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(); } }); @@ -1106,6 +1110,8 @@ var Dialog = function(id) { function createSimpleDialog(id, title, message) { if (DIALOGS[id]) { + DIALOGS[id].changeTitle(title); + DIALOGS[id].changeContent(message); DIALOGS[id].show(); return DIALOGS[id]; } @@ -1178,9 +1184,28 @@ var isPageHidden = function() { 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<>>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>2]|=f.charCodeAt(a)<<(a%4<<3);d[a>>2]|=128<<(a%4<<3);if(55a;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>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'; @@ -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 ONPLUGINPAGE = false; 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':'' }; - 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 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', - '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, - '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' }; - 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 = { @@ -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"} - ,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"} @@ -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) { - 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) { + 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 @@ -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) { + if (chrome_isExtUpdated()) { + extUpdatedError("[chrome_setValue("+name+")]"); + return; + } + 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) { @@ -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) { @@ -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}); @@ -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}); }; - var xpi_clearStorage = function(name, val) { + var xpi_clearStorage = function() { 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; }; + + 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(); - 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') { @@ -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 }; - 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; }; } @@ -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) { - if (extra === 'ModuleSystem has been deleted' || extra === 'TypeError: Cannot read property \'sendMessage\' of undefined' || extra === 'ModuleSystem has been deleted' || extra === 'TypeError: Cannot read property \'sendMessage\' of undefined') { - 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 { - createSimpleDialog('localStorageError_getValue', "Ponyhoof derp'd", "Ponyhoof can't load your settings. Please try again later.

If you keep seeing this error, please update to the latest version of Ponyhoof if available and visit the Ponyhoof page for help.

"+extra); + createSimpleDialog('localStorageError_getValue', "Ponyhoof derp'd", "Whoops, Ponyhoof can't load your settings. Please try again later.

If you keep seeing this error, please update to the latest version of Ponyhoof if available and visit and post to the Ponyhoof page for help.

"+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.

If you keep seeing this error, please update to the latest version of Ponyhoof if available and visit the Ponyhoof page for help.

"+extra; + var desc = "Whoops, Ponyhoof can't save your settings. Please try again later."; + if (ISFIREFOX && STORAGEMETHOD === 'greasemonkey' && userSettings.customBg) { + desc += "

This may be caused by a large custom background that you have set. Please try removing it."; + } + desc += "

If you keep seeing this error, please update to the latest version of Ponyhoof if available and visit and post to the Ponyhoof page for help.

"+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.

"+extra); + createSimpleDialog('ponyhoofError', "Ponyhoof derp'd", "Whoops, Ponyhoof encountered an internal error. Please try again later.

If you keep seeing this error, please update to the latest version of Ponyhoof if available and visit and post to the Ponyhoof page for help.

"+extra+""); 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.

"+extra+""); + }; 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': - callback(w.external.mxGetRuntime().storage.getConfig(name)); + mxaddon_getValue(name, callback); 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': - w.external.mxGetRuntime().storage.setConfig(name, v); + mxaddon_setValue(name, v); 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) { - extra = ""+e.message+""; + extra = e.message; } else { - extra = ""+e.toString()+""; + extra = e.toString(); } 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') { - 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; } - extra = ""+e.message+""; + extra = e.message; } else { - extra = ""+e.toString()+""; + extra = e.toString(); } 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.setAttribute('aria-hidden', 'true'); 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) { @@ -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.saveTheme = true; 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)" - ,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'); - userSettings.theme = 'RANDOM'; - saveSettings(); + if (k.saveTheme) { + userSettings.theme = 'RANDOM'; + saveSettings(); + } 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); - userSettings.theme = code; - saveSettings(); + if (k.saveTheme) { + userSettings.theme = code; + saveSettings(); + } 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; } } + + if (STORAGEMETHOD === 'chrome' && chrome_isExtUpdated()) { + extUpdatedError("PonySound.play()"); + return; + } 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': - //ele.href = json.xpi; + ele.href = json.xpi; + break; + + case 'mxaddon': + // Handled by function 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; + case 'mxaddon': + k.mxaddon(); + return; + 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.changeTitle(CURRENTLANG.updater_title); + k.cwsWaitDialog.changeTitle(CURRENTLANG['updater_title']); 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 = ''; - var ponyData = convertCodeToData(CURRENTPONY); + var ponyData = convertCodeToData(REALPONY); if (ponyData.successText) { successText = ponyData.successText; } else { successText = "Yay!"; } - var c = successText+" Reloading... "; + var c = successText+" Update complete, reloading... "; 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 c = ""+header+"

To update now, go to about:extensions in the address bar, enable Developer mode at the top-right and click Update extensions now."; + var c = ""+header+"

To update now, go to about:extensions in the address bar, enable Developer mode at the top-right and click Update extensions now."; if (newversion) { c += "

Verify that the version changes from "+VERSION+" to "+parseFloat(newversion)+" and reload Facebook."; } c += "

<"+"img src='"+THEMEURL+"_welcome/chrome_forceupdate.png' alt='' width='177' height='108' class='ponyhoof_image_shadow'>"; var bottom = ''; - bottom += 'Open Extensions'; + bottom += 'Open Extensions'; bottom += ''+CURRENTLANG.reloadNow+''; bottom += ''+CURRENTLANG.notNow+''; @@ -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); - 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); @@ -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.xpiWaitDialog = null; + k.xpiOneClickSuccess = false; k._xpi = function() { - if (k.xpiDialog) { - k.xpiDialog.show(); + if (k.xpiWaitDialog) { + k._xpi_showDialog(); + return; + } + + var c = "Updating... "; + 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 += " "; + k.xpiWaitDialog.changeContent(c); + } + }); + }); + + w.setTimeout(k._xpi_fallback, 10000); + }; + + k._xpi_fallback = function() { + if (k.xpiOneClickSuccess) { 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 Allow.

<"+"img src='"+THEMEURL+"_welcome/guide/firefox/xpi_1_facebook.png' alt='' width='409' height='144' class='ponyhoof_image_shadow'>
"; c += "When you see the Software Installation dialog, click Install Now. The update will load after you reload Facebook, you do not need to restart Firefox.

<"+"img src='"+THEMEURL+"_welcome/guide/firefox/xpi_2.png' alt='' width='400' height='412' class='ponyhoof_image_shadow'>"; var bottom = ''; - bottom += ''; - bottom += ''+CURRENTLANG.reloadNow+''; - bottom += ''+CURRENTLANG.notNow+''; + bottom += ''; + bottom += ''+CURRENTLANG['reloadNow']+''; + bottom += ''+CURRENTLANG['notNow']+''; 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); - 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 Update when you see this dialog. The update will load after you reload Facebook.

<"+"img src='"+THEMEURL+"_welcome/guide/maxthon/update.png' alt='' width='446' height='419' class='ponyhoof_image_shadow'>"; + + var bottom = ''; + bottom += ''; + bottom += ''+CURRENTLANG['reloadNow']+''; + bottom += ''+CURRENTLANG['notNow']+''; + + 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]; - 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 { - 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); } @@ -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) { - 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.

If you keep seeing this error, please update to the latest version of Ponyhoof if available and visit and post to the Ponyhoof page for help."); } 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 += '
'; //c += '
'; c += '
'; - c += 'Share with your pals!'; + c += renderBrowserConfigWarning(); + + c += 'Share with your pals!'; 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 += ''; c += '
'; + c += '
'; c += '
'; - c += '
Drag and drop an image here to customize your background.

Or browse for an image:
'; + c += '
'; + c += 'Drag and drop a pony pic here to customize your background.

'; + c += 'Or browse for a pony pic: '; + c += ''; + c += '
'; c += '
Drop here
'; c += '
'; c += '
'; @@ -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 += '
'; - c += '
Sounds are experimental, they might derp from time to time.
'; - c += '
Notification sounds are not available when you are using Facebook as your page.

'; + c += '
Notification sounds are not available when you are using Facebook as your page.
'; c += k.generateCheckbox('sounds', soundsText, {customFunc:k.soundsClicked}); - c += '

'; - c += '
'; + c += '
'; + c += '

'; c += '
Notification sound:
'; c += '
Don\'t play sounds for these types of notifications:
'; c += 'Volume: Preview'; @@ -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 += 'Enable now'; c += 'The chat sound option built into Facebook needs to be enabled.'; c += '
'; + c += '
Please turn off Facebook Messenger for Windows for chat sounds to work properly.
'; c += k.generateCheckbox('chatSound', "Change chat sound", {customFunc:k.chatSound}); c += '
'; c += '
Chat sound:
'; @@ -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 += '
'; c += '
'; - 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.

<"+"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 += '
'; 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 += '
'; c += k.generateCheckbox('disable_emoticons', "Disable emoticon ponification"); - c += '
Who to randomize:
'; + c += '
Characters to randomize:
'; c += '
Appearance:
'; c += '
'; c += '

'; c += 'Multi-user'; - 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 += '
'; @@ -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 += 'Performance'; 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 += '
'; c += '
'; c += 'Reset settings'; @@ -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 += 'Remove style'; c += '
'; c += 'Send page source'; - c += 'Reset all settings (including global)'; + if (STORAGEMETHOD != 'mxaddon') { + c += 'Reset all settings (including global)'; + } c += '
'; c += '
'; c += '
'; c += '
'; - c += '
<'+'img src="'+THEMEURL+'icon100.png" alt="" width="50" height="50">'; + c += ''; c += 'Ponyhoof v'+VERSION+'
'; c += 'By Ng Yik Phang and many contributors'; @@ -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 += '
'; var successText = ''; - var ponyData = convertCodeToData(CURRENTPONY); + var ponyData = convertCodeToData(REALPONY); 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.dialog.dialog.className += ' ponyhoof_dialog_localstorageWarningEmbedded'; + 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 += "localStorage.length: " + localStorage.length + "\n"; + tech += "localStorage.length: " + w.localStorage.length + "\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 = ''; - for (i in localStorage) { + for (var i in localStorage) { 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; } - 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(); @@ -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); - $('ponyhoof_options_clearLocalStorage').addEventListener('click', k.clearStorage, false); + + var clearLocalStorage = $('ponyhoof_options_clearLocalStorage'); + if (clearLocalStorage) { + clearLocalStorage.addEventListener('click', k.clearStorage, false); + } 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) { + e.preventDefault(); + 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 { - localStorage.clear(); + w.localStorage.clear(); } catch (e) { - alert(e.toString()); + alert("Can't clear localStorage :(\n\n"+e.toString()); } } else { - return false; + return; } 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; + case 'mxaddon': + // Maxthon does not have a clear storage function + break; + default: break; } k.dialog.close(); - e.preventDefault(); 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); } + + // 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(); @@ -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.bgMessage = null; 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.bgMessage = $('ponyhoof_options_background_message'); 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'); @@ -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); + 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; @@ -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.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; @@ -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); } + k.bgReaderFile = null; + k.bgReaderBg = null; 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) { - 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 { - 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; } - 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 { - 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() { @@ -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.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; @@ -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_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;}'; @@ -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_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_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_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_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;}'; @@ -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() { - 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); @@ -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 = ''; - co += '
'; + co += '
'; co += 'Update now'; co += 'An update (v) for Ponyhoof is available.'; co += '
'; - + + co += renderBrowserConfigWarning(); + + if (STORAGEMETHOD == 'chrome' && chrome.extension.inIncognitoContext) { + co += '
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.

'; + } + co += 'Select your favorite character to get started:'; co += '
'; co += '
You can re-select your character in Ponyhoof Options at the Account menu.
'; @@ -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.dialog.className += ' ponyhoof_dialog_localstorageWarningEmbedded'; 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(); @@ -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) { + e.preventDefault(); if (hasClass(this, 'uiButtonDisabled')) { - e.preventDefault(); 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; - // Detect Social Fixer - if ($('bfb_options_button')) { - userSettings.show_messages_other = false; - } saveSettings(); globalSettings.lastVersion = VERSION; + if (globalSettings.allowLoginScreen) { + globalSettings.lastUserId = USERID; + } 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(); } - - e.preventDefault(); }, 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 += ''+capitaliseFirstLetter(CURRENTSTACK['like'])+' us to receive news and help for Ponyhoof!'; - c += ''; + c += '
'; c += 'Got somepony else that you want to suggest? Want to leave some feedback? Let us know at our page!'; } else { c += 'Visit our Ponyhoof page for the latest news!'; } var successText = ''; - var ponyData = convertCodeToData(CURRENTPONY); + var ponyData = convertCodeToData(REALPONY); 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_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'); }; }; + + var renderBrowserConfigWarning = function() { + var c = ''; + if (STORAGEMETHOD == 'localstorage') { + c += '
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.

'; + } else if (ISMOBILE) { + c += '
Mobile support for Ponyhoof is provided as a courtesy and is not officially supported.

'; + } + return c; + }; // 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) { + // 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'); @@ -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'; - 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) { @@ -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'); } - $('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) { @@ -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]; } - } + + } /*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 Contributors", capitaliseFirstLetter(CURRENTSTACK['friends'])+" of Contributors"] ,["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"] + ,["Request Deleted", "Request Nuked"] ,["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"] + ,["Stay on Message", "Stay on Friendship Report"] ,["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"] - ,["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"] @@ -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"] - ,["In a private Message", "In a private Friendship Report"] + ,["In a private message", "In a private friendship report"] ,["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"] - ,["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)] @@ -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 - ,["Likers", "Brohoofers"] // graph search @todo likers ,["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"] @@ -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 = [ - [/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"] @@ -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"] + ,["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"] @@ -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 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"] @@ -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 + ,["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"] @@ -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 + ,["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+"?"] @@ -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"] + ,["Don't Send Message?", "Don't Send Friendship Report?"] // webmessenger ,["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"] + ,["Group Admins", "Herd Admins"] + ,["Change Group Privacy?", "Change Herd Privacy?"] ,["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"] - ,["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)] @@ -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"] + ,["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"] @@ -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"] + ,["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"] + + ,["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]); @@ -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"] + ,["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']] @@ -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."] - ,["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."] + ,["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."] + ,["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"] @@ -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 Album", "Nuke Album"] ,["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"] + ,["Add Friend", "Add "+capitaliseFirstLetter(CURRENTSTACK['friend'])] // people you may know // 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 + ,["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"] @@ -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 - ,["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]); @@ -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"] - ,["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"] @@ -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)] - ,["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"] + ,["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'])] @@ -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)] + ,["Add To News Feed", "Add To Feed Bag"] ,["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"] @@ -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 + ,["Photos", "Pony Pics"] // /media/video/ + ,["Post to Your Wall", "Post to Your Stall"] ]; 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 of Contributors", capitaliseFirstLetter(CURRENTSTACK['friends'])+" of Contributors"] ,["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..."] - ,["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"] @@ -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 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..."] @@ -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"] + ,["Leave Event", "Leave Adventure"] ,["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..."] + ,["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..."] @@ -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"] + ,["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"] @@ -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"] - // 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"] @@ -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 of Contributors", capitaliseFirstLetter(CURRENTSTACK['friends'])+" of Contributors"] ,["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." + ,"Image Resource Invalid" + ,"Confirmation Required" + ,"Error Uploading Video" + ,"Upload Failed" + ,"Photo Upload Failed" + ,"Sticker Failed" ]; 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 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."] + + ,["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; - //k.ufiData = {}; - + 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); - k.notificationsFlyoutSettings(dom); + k.notificationsFlyoutSettings(); + k.findFriendsNav(); // .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) { // Finish // // // Promote App + + // 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(); @@ -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); + + // 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; } - 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"]'); @@ -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) { - //
xy
- //
xy
- - //
Edit or Delete
- 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; - - //
Loading...
- 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')) { @@ -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')) { @@ -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); } + + 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) { @@ -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; @@ -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; } - }); + });*/ 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); - k.insightsCountry(dom); + //k.insightsCountry(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, '.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"); @@ -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, '#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; } @@ -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.notificationsFlyoutSettings = function(dom) { + k.notificationsFlyoutSettings = function() { 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')) { @@ -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]; - 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 t = k.likeSentence(inner.innerHTML); - if (inner.innerHTML != t) { - inner.innerHTML = t; - } + k._likePostBox_loop(inner); } 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 - //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'); @@ -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; } - /*var id = k.getReactId(ufi); - if (!id) { - return; - } - if (!k.ufiData[id]) { - k.ufiData[id] = {}; - }*/ - if (isLike) { - //k.ufiData[id].brohoofed = false; removeClass(ufi.parentNode, 'ponyhoof_brohoofed'); } else { - //k.ufiData[id].brohoofed = true; 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; - if (ufiitem.childNodes && ufiitem.childNodes[0]) { + if (ufiitem.childNodes && ufiitem.childNodes.length && ufiitem.childNodes[0]) { 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')) { - 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); - } else { + //} else { // 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) { @@ -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; } @@ -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; }; - 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.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) { + if (!k.composerSpecialPages) { + k._changeComposer_initSpecialPages(); + } + 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); - return "Suggest something for Ponyhoof..."; + return "Send feedback for Ponyhoof..."; } 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) { + //
Hide
+ //
Ponyhoof brohoofs this.
+ //
xy
+ //
Shared with:
Public
+ + //
Excellent
+ 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
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) { + //
Loading...
+ 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); @@ -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; } - $$(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; @@ -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) { - 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) { + //
 John poked you.
 2 seconds ago
+ 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) { - $$(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"; - 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"; - } + }*/ 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_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']; @@ -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_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; }; - 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) { + // X likes your comment: "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; @@ -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]; - if (hasClass(node, metadata) || hasClass(node, bold)) { + if (!metadataFunc(node)) { 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'); - 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; } @@ -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 oldWidthBody = ''; 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) { - //oldWidthBody = ele.parentNode.parentNode.parentNode.style.width; - //ele.parentNode.parentNode.parentNode.style.width = 'auto'; label.style.display = 'inline-block'; - //var oldWidth = label.offsetWidth; if (!oldLabelWidth) { - //oldLabelWidth = oldWidth; 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+' '; } }); - //if (hasScrollableArea) { - //ele.parentNode.parentNode.parentNode.style.width = oldWidthBody; - //} 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) { + var reminderType = ''; + if (item.querySelector('#pages_reminders_link')) { + reminderType = 'page'; + } + 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; - 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; } @@ -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) { - 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'); } @@ -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) { - if (!hasClass(d.body, 'plugin')) { + if (!ONPLUGINPAGE) { return; } - //var root = target.getElementsByClassName('pluginConnectButtonLayoutRoot'); - var root = target.getElementsByClassName('pluginSkinLight'); + var root = target.getElementsByClassName('pluginConnectButtonLayoutRoot'); if (!root.length) { - return; + var root = target.getElementsByClassName('pluginSkinLight'); + if (!root.length) { + return; + } } 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]; @@ -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 (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; } } @@ -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 - $$(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; } }); @@ -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; }; - 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; }; - // XYZ commented on your Wall post: "I like it" - k._beepNotification_condition_classic = function(node, gt) { - //
XYZ likes your comment: "12"
- //
XYZ brohoofs your friendship letter: "12"
- 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; }; + k._beepNotification_condition_react = function(node, gt) { - // XYZ also commented on a photo in GROUP NAME: "What?" + // XYZ also commented on a photo in GROUP NAME: "What?" + // NAME commented on your pony pic in GROUP NAME: "COMMENT" // **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; }; @@ -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)) { - 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 { - 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"] @@ -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"] ]; - 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; } @@ -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); }); + });*/ + + $$(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) { + // 4 friends + // 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:
likes this.
  • FACEPILE
+ if (hasClass(target, '_8qg') && hasClass(target, 'fcg')) { + k._pageBrowserItem_item(target); + return; + } + + $$(target, '._8qg.fcg', function(item) { + //
235,674 likes · 40,634 people talking about this
+ 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; @@ -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; } - 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 '); - if (target.title != t) { + if (orig != t) { 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; }; + 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 @@ -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) { + var orig = ''; var t = ''; - if (ele.nodeType == TEXT_NODE) { - t = ele.textContent; + if (ele.nodeType === TEXT_NODE) { + orig = ele.textContent; } 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"); @@ -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(/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']); - if (ele.nodeType == TEXT_NODE) { - if (ele.textContent != t) { + if (orig != t) { + if (ele.nodeType === TEXT_NODE) { ele.textContent = t; - } - } else { - if (ele.innerHTML != t) { + } else { 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 = ''; - 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_tooltip_widthFix {width:auto !important;}'; 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); } @@ -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(); - 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 @@ -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; @@ -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 - 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(); @@ -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; - 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(); @@ -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'); } - 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'); } @@ -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(); } - 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 { @@ -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(); - $$(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'); }); } @@ -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); } - 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 = ''; - d.body.appendChild(swf); + var swf = d.createElement('div'); + swf.innerHTML = ''; + d.body.appendChild(swf); + } } } 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 - 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(); + } } }