"use strict"; var socket; function initialiseVisibilityMonitoring (socket) { var hidden, visibilityChange; 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"; } document.addEventListener(visibilityChange, function () { if (document[hidden]) { socket.emit("users:away"); } else { socket.emit("users:online"); } }, false); } function initialiseComponents () { var socketUrl = window.location.protocol + "//" + window.location.host; socket = io(socketUrl) .on("connect", function () { console.log("Connected"); }) .on("reconnect", function () { console.log("Reconnected"); }) .on("disconnect", function () { console.log("Disconnected") }); initialiseVisibilityMonitoring(socket); // Render Page React.render(, document.getElementById('side-menu')); React.render(, document.getElementById('chatroom')); React.render(, document.getElementById('gathers')); React.render(, document.getElementById('currentuser')); React.render(, document.getElementById('admin-menu')); };