Skip to content

Instantly share code, notes, and snippets.

@orlando
Last active December 20, 2015 22:49
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save orlando/6207953 to your computer and use it in GitHub Desktop.
Save orlando/6207953 to your computer and use it in GitHub Desktop.
var teamboxChatSound = function teamboxChatSound () {
var ping, chatBody, observer, base64string, hidden, visibilityChange;
base64String = "data:audio/wav;base64,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ZJGkkXBZcpmdh2ZegZyWelxqkZyKa198lJB9aG6JkYRyaHmNi31wcoKHfXZ3gIeAdnZ+g312eoSHfW5tgJKNdWVuipeDaWR9m5Z0WWWPp45iVHSipHhUW4ywlWRPbKOwhFdRgbKjb05hm7WQX011q6x9UFWNt59pS2ejtIlXT4C0qnRJWJe8nWBEa6q2hE1PirunaEBgpMGUUkN6trN1RFmZv5xYQ3Oyu35DT5DBpV1BaqzAhUZLh7+sZEFmqsOJRkeGxLRlOl2oypFFQILGumczVanSmEU2ecjFbi1KptqiRCpwys93LECc261MJWLD2IMsMY7cvVogULfcljooetTKbyQ/qN+nRyFoytF+LDWW2rRVI1u+04k1MorTul4lUK/WmkAsdcXEci5JnM2jTS5qusiBO0GIxLBjOV+lwo9KQ3y3tHVDVJG4m15Kcqesek1Yj7ScY0hsoq2CVlmGqZlpUG6dqYRYVoKnm3FWbJWihWBeg6CVc1tukZyHa2aBl452aHaQloNtaoCSj39vc4SLhntzfIiLg3ZyfoiMhndzfIiMgnVzgI+Pf21vg5WQemhyjJiKcWZ9l5iAZWmHmZJ2YHSTnYlmXoCfoIFcYoWgm3ddcZKhjGVdfqCmglhdhqqkc1FnlrKXX092prOFUlWFsqhtS2WbuJFVTHiutHxLV425o2NGZ6S7i1FMfravcEhblbqYW0hvqbWCUlODsaVxUWKVsZNkVnShp4BfYIKlnXZcZo2nlG9bbJSli2dcdp6kgVxZgKmjeVZejq6VZlNxpKyAVFSFsaJwUGSXrotdVn+qoXNTZJKrjmNaeZ6deFxpjKOOZl54l5x6YGyIm4toZH2UlnlgcIiZjWtjeZCXgGVuhJSPcWN3i5aGaWl8j5N8aHKEk4pwaXuMkoFscIGOiXdue4qMf3F0goqEenaAhYB6eYGKhHh1fIiJe3R7iI+AbHGElI10anqPk4BpbYabkHFjdJCbhmtpgJeSd2Vwj6CLbWJ2mJ6EaGWCnZV6ZW6RoYxtX3meoIJiYImomXNVa56ti1xRgbGndUlbm7iVW0V4s693RFedvphVPXa5t3tBTpjAnVo7cLW4fUFMlsChXj1usrmCREiPv6lmO2WrvI9LRIS5sXA7W6LBmU4/f7u4cjdWosmhTzd0vMJ5Nkyc0KhNL23Bz4AuPJTZtlMjWb/fji8phd3IYBpHt+efNBt33ddvGDap7LNCE2HS4oQgJ5fowlQTUcTmmC0egt/OZxlGteGhOyF7181vID+s3qZEH3HSzXgkN6PerkwcZMnSgyswmNy1UxtbwteMLSqN2LxcHVK42pUyJYDVx2YbRK7doTkgds/Mbx4+pd6oPx1qzNR4ITed3a5GH2bH03snOJjXr00laMHLfS9Bmc+rVC1nt8ODO0STw6dcNmyzu4ZDSJG7pmc+a6uzik9NjLKjc0ponquQYFOBpaB/WWaQoZVzYHaRmYhvbH+RkIBzdIKOiIB5eIOIhYN4eIOFioRzd3+Hk4JyeHyOlHtydICakHVvcIieiHRqb5GchHBjd52cgGZdgKSbe1pdjKqYcVBmnKyNXk56q6h8UFiPsJpqTm2hqoRZWIapm3JYapOiimpifJeTemlxiJOFdG99jYp7c3eEin93eX6Ff3Z7gIWBc3WAhoV0bnyIi3tqcYSQiG1leo6Te19riJqOaFl3maGAWF6Jp5tqTW2hsoxSTIO2rnE/XKLCmVA7eL/BezdJmc+sVTBous6JOjyKzrxlL1eq0ptENHnGyHUwRZjUrlMvYbTQijw9g8u8YzBSpdWcRTVxwsl3N0eS0atWN2CyzYhEQIDHtmk7UZ/Km1U7a7a9gkhGiL+qbEFcobqSWUZ6s614R1aYuZtfRHKssoFNVJC2oWdGbKezh09QirWkZ0NpqLmKTUuFtapsQGGhupJRRXuwr3VDWpa2mFhFdqqyfkVVjLKiYkVsnq+FT1WGqqBqS2uarYtWVIGmonNQaZWpj15VfKKjeVRlkKaRZVZ6oKN/V2CNqZhsU2+cqIheWYKonnNUZparj2RUdqGigF1dhqOWcllplaSLZld4oqJ/WVmGqJx0UmSXq5BiT3enqYBRVIyzoWxIZaK1jVZMgLOqdElem7aSW0t7rql4Tl6Ws5RhUXinqHxWYI6plGxbc5qfgmVlg5yTeGdyjJaIc2t8j4+DdHGBjIuAc3eEi4h6c3uFioR3dX+HiX93e4KHg3p6gISDfXqAg4J+en+Dgn97gIWBfXh7hoh+d3iCi4F2dYCOinhud4mSgnBxgJGNdmt5jZWDa22ClI92aHmQl4NqbIKVknlodImTh3NugJCOfGx0iJOKdWt5jJKFcW5/jo18bnWIk4hyanuRk4BqbYaVinJnepSWf2Zqh5uOcmV3kpiBaWyFmpFzY3OSnYVoZX+alnhjbo2dimpieZicf2Nmg5+UcV5ukqGHZWB+nZt5XmeMpZJtWnGZoYNkZIWglHJfcZWhh2ZhfpuXemdwipaEbmuAlJF6a3GFkYh4cXqHiH53eYKIhHt3eoCGgn58e3+AgYF+e36BhIB5eH+Fh4B2d4CIiHxzeoaNhHRxf46PfWxyhZOMc2p7kJWAaGyFmpFyYHSVn4VjYYGgmHNcb5SkiGFdgaSdcldqlaiJX1p/pJxxWGyTo4VhYIGflnBec5OdgGJpiJ6Pa2B5mZx8X2uMoI5nXXuanHpcaIygkGpceJmff11khqGVblxxlaKFY2B/oJp1XmuPo4poYHyenHlfZ4ykkGxfdpqfgGNlh6OUcWBzlp+EaWeCnJJ3Z3SQmYZwa4CUjXtvd4qQgXRzgI+JenN5houBd3iBiIJ4eICIiH11e4OKg3d3gIeHe3V/h4l/cXaEjol2bXyNkYBpcImZkHBfdZaghWBghKOcclVrma2NWlF/rqx1SFyYu5tZQ3GuuYBGT4y8p2M/Z6e8ikpHgbmvbUBbm72WVUV0sLV6SFOMt55jSm2msYBRVoq1nmZMaaCxhVhXgq2dbFRsmqqFXFuBqJ5xV2qUp4lhXH6hm3Rca5GiiWhifpuWd2RxjpqEa2uCl491aXeOlYJucYWUi3RtfZCQfW10ipSGcGyAk5B6aXSLlIVvbICTjXhpdo2SgWxthZSKdGh4kZJ+am6Jl4VuaICaknVjcpGchGpngJuRcmR2lZt/ZGqIn45tY3mYmntjbIqdi2xke5WVemVwipiIbGd7k5R9aG6FlIlyanmMkIBvb4COinlwdYSNhHdxeYiOgnRveYuOgXFsf5KPe2lth5eNdGN1kpiEaGOBnZd4XGqSo41oWnmfn39dYoumlW5YcJqmh2BcgqWddlhplaiPZlp8oaF+XWaOpZNtXHebooJiZIikl3JdcZmlh2Ngg6ScdltslaeLZF1+op93WWiRqI9lWnifoXtbZo2mkWhbeJ6hfFtjiqaSaVl0m6F+XGOJpJJqW3WYnX9hZoadkG1gd5SbgGRnhJiPc2V3j5WAaW2DlI11aHaMkoJtboCQinZrd4iOgG9wgIyJeG13h42BcG+AjYp3a3aJkIFubYCRjXZodY2Vg2lngJeUeGFujpyHZ2GAnpl0WGuTpY1iVn2koHdTZJSqkGBRe6WjeVBekq2TYlB2o6eAVFqLqphqUnKepYJaXYmll29WcpuihV9fhqGVcl12mJyBZGeKnY1xZHyXk3tocY+ahGtmgZuSdmZ0kpiAa22InIxwZ3uWmH9nboyci25lfpmYe2NtjJuLcGZ+l5R6ZnKPmohvaYCUkn9sc4qRhndxgI+KfXN4iIuCeHSAi4Z+d3uGh4B7e4OIgHp6gImFe3d8hop/dnmBi4V4dXyHin5zdoSOhnRueouPgHFxgI6KeW93iZCDcm59jo5/bnCDkIt5bHWJkYRvan2RkX1obIWXjHJmdpCXgWhogpmSdGFwkZ2FZWKAnJd4X22QoYtoYHybnHxha4ugkG1heJacgWZphJuTd2d0jpeFb2x/k5J8bHKGlYt1a3iMlINwbn+Qjnttc4mUhXFqfJOSe2lviJmIbWZ8mJh6YmuLoI1qYHqbnXpeZ4ymkWlbdp6jf1xiiqeVa1lznaeEXV2Dpp1zWWuVpotlW3ygn3xbZIuklG1ZcZeihmFdgKGbd1hnkaWRZlZ3nqN/Vl6Jp5hqU3CZp4VaW4SmnG9UbJioil1agaOcdFhqkqSLZF18nZt5XmmLnotrYXqXmX1ja4iai3BmeZKTfm1xhpOHdG9+jo18cXiJjoF0doWPh3VygI+OfG95jJGCbm+FlY10Z3qUmYFkZ4aflXJdcpeihmJfgqKadlpqlKaLY1l9pKF4VmOQrJRoVXOepYJeX4enmG9XbJmoh2BafqOeeFlljqaQaFl2naF/XGGJpZVtWXGZo4NhYIOjmXRba5GijGlfepubfWNoiJ2PcGJ0lJuDaWaAmZZ8ZGuJnJB0YXKRnIhrZH2amn5iaYuhkm1bdZuigl1ghqabb1ZumaeGXVuDpptwVGuZqIleWICmoHVWaJWojGJaf6SedVhnlKiNZFl9op54WGeSqJBlVnegpIBcYIimmG5WbZipiV1WfaajeFRgjquVZlFwoKyDVlWDrqJvTmKXsJBdT3eoqXtQWI6ymmVKbKWwg1NThbCibk1lnLCMXFF9q6V4Ul6TsJVlT3Kkq4JVVoivoW5MZ56yjVhPgLCpckphnLiTV0l7srB3SFmXu5paR3SutH1JVY+5n2BHbqm0gE1Vi7afZk1sn6+EWFqCqZ5wV2yWpohlYX+emHZib4yciGxnfZWSeWlzipaGb2x+kZB7bXSFkIVzb3yNjn1vc4OQiXhwe4qNgXRzgIyJe3B4hoyFd3J8h4qBdHSAiol8cXeDi4V3c32GiH90doCIhXlze4OHgHd4gISBe3l+goJ+en6BgH58fYGAfXx9gIJ+en2BhoB3eX+Gh3p0eoOMgXN0gIyLeG54iZKDb2+AkI94anWKloVsaoCVlHlmcYqZiW9pfJSVfGduiJqNcmZ4kZeBamyCl5B1ZXKOm4hsZnyWlnxmboibjW9keJWcgWZngpuUdmNxjpuIa2Z+mJd6ZG2JmopuZ3qRk31pboWUinRseYuOf3N3gomDeXiAhoV9en+Cgn58gYSBfHqBh4N8eH6IiX1zeIaOhHVxf46Nemx1ipSFb2x/kZB6aHOMlYRsaH+VknllcIyYh2tlf5aUemJtjJqKbGJ7lpZ9Y2uKnI1uYHiXm4BjZoadknJhdJSbhGZmg5uUdmJzkJuHamaAmpV3Y3CPnYpqZH2amXtha4qej21heJecf2Jnhp+Sb2Byk56DZWOAnpd2X2mLoI9vYHSVnIJnZoGclndibIyfjm5hdpWcgWVmg5+VdGBtkKGKaWF7m5t7YGeKopFuXXKXoYRjYYKgmXdebJChjGphfZyafWNrip2OcGV3lJmCa2qAlZB6bHOHk4h1bXiJkIRzb3yLjYBzcX6NjHxvcoKQiXhsc4eRhnNre4+QfWtuhZWKc2h2jpSCbWuAlI94aHSLloVva36Sj3tsdYmUhnFtf5KRe2x0iZSIcmx+k5J8a3KKl4lxan2TlX9pboeYjXNnd5GYgWlrgpaRd2ZyjJmHbGZ7k5V9aG2ElY11Z3WMlYNqaH6Uk3lmb4iWiW9ofJGSfmlvhJOLdGl4i5CAb3GAjIl5cHmGjIN2c32IiX51eIGIhXt2fISHgnt5foWGgHp8g4iEfHd9homBeXmCiod8dHuJjYN2c4COi31xeImQhXRwf5COfm90h5GHdW99jY1+cHSFkYp3bnmLkYNzcICQjXxwdIeSh3Zue42QgHFxgpKMem52ipOFcmx+kZKAbXCFlI14a3eNlINubIGUkXtrdIqWiHFrfZKSfWxyh5SJdG17jZB/cHKCkIh2bXiKj4FwcICOiXhvd4aMgXNxfomIfHN4g4iAd3eAh4R7dXqEiIB3doCGg3p2fIWHf3Z3gYmFfHN5hYmCeHN+iYh/dHaCjId6c3qGjIN2dICLiX5zd4aNhXhyfYqLgHR1hI2GenR8iYuAdnaDjIV7dnyIiYF5eIKJhH54e4SGgHx6gIaDf3t9goWBfXt/hYR/e3uBhoN/enuChYF7eYCFhH54e4SIgnp2foeHfnZ5hIuEeHR9iouAc3WCjYd4cnyKjIB0dIKMiHtyeoiLgXR0gYqHe3J5hYqBdnWAiIZ6c3uFiYJ2dX6Fhn52eoGEgXl3foOEf3d5gIWEfHZ8g4aBeXd+hIV+dnmBhoN5dn2EhoB3eICGhXt1e4SIgnh3f4WFfnh9g4WAeXuChoN+en+EhH97foSFgHt8g4eEfXqAh4V+eHyGiYJ4doCKiX10eoaLg3d0gIyLfXB2hY+IeHB8i46BcHKDkIt5bXiLkYNxboCQjXtsdYqThnFsfpCQf2xxhpKLdmt5jpODbm2BlJB5anSLlYdwan2Rkn5rcoeTinRse46RgG5wg5GJd295iI2Bc3KAi4h7c3iDiYJ5d32EhYB6eoCEgn15e4CDgn57fICBgH99fYCBgH98fYCCgX16fYGDgHx7f4CBf31+gICAfn5/gICAf4CAfn+AgH99fICCgn57fYKDgHt6gISDfnt8goWAe3uAhYN/e3yBhYF+fH2BgoB/fX+AgIGAfn6AgYOAfX1+"
var Sound = (function () {
var df = document.createDocumentFragment();
return function Sound(src) {
var snd = new Audio(src);
df.appendChild(snd); // keep in fragment until finished playing
snd.addEventListener('ended', function () {df.removeChild(snd);});
return snd;
}
}());
// PageVisiblity API compatibility
if (typeof document.hidden !== "undefined") { // Opera 12.10 and Firefox 18 and later support
hidden = "hidden";
visibilityChange = "visibilitychange";
} else if (typeof document.mozHidden !== "undefined") {
hidden = "mozHidden";
visibilityChange = "mozvisibilitychange";
} else if (typeof document.msHidden !== "undefined") {
hidden = "msHidden";
visibilityChange = "msvisibilitychange";
} else if (typeof document.webkitHidden !== "undefined") {
hidden = "webkitHidden";
visibilityChange = "webkitvisibilitychange";
}
// Audio as base64
ping = Sound(base64String);
chatBody = document.querySelector('tbody#log');
if (chatBody) {
// mutation observer API
var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
observer = new MutationObserver(function (mutations) {
if (document[hidden]) {
ping.play();
console.log("New Message While Window was hidden");
} else {
console.log("New Message while window was not hidden");
}
});
observer.observe(chatBody, {childList: true});
console.log("mutation observer ready");
} else {
console.log("chatBody not found");
}
};
teamboxChatSound();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment