summaryrefslogtreecommitdiff
path: root/views/index.ejs
diff options
context:
space:
mode:
Diffstat (limited to 'views/index.ejs')
-rw-r--r--views/index.ejs51
1 files changed, 35 insertions, 16 deletions
diff --git a/views/index.ejs b/views/index.ejs
index 2f616ed..7e9054c 100644
--- a/views/index.ejs
+++ b/views/index.ejs
@@ -8,6 +8,8 @@
<script src="/javascripts/jquery-ba-throttle.js"></script>
<script src="/javascripts/util.js"></script>
<script>
+
+
var cursor = "https://s3.amazonaws.com/luckyplop/52d5f60fde3d8562ad566838e0e09ca52725bb09.gif";
var socket = io.connect();
@@ -19,18 +21,23 @@
_id = null;
<% } %>
- var start = 0, now = 0;
+ var start = 0;
var users = {};
- function updateWait(data) {
+ function updateWait(now) {
+ if (afk) return;
if (start == 0) {
- start = data.now;
+ start = now;
}
- now = data.now;
- var howlong = Math.floor( (now - start) / 1000 );
- $("#waiting").html( howlong == 1 ? howlong + " second" : howlong + " seconds" );
+ var howlong = Math.floor( (now - start) ) - delay;
+ $("#waiting").html( toTime( howlong ) );
}
-
+
+ (function loop (){
+ requestAnimFrame(loop);
+ updateWait(Date.now());
+ })();
+
function updateUsers(data) {
console.log(data.users);
$("#count").html(Object.keys(data.users).length);
@@ -60,12 +67,12 @@
}
socket.on('count', function(data){
- updateWait(data);
+ // updateWait(data);
updateUsers(data);
});
socket.on('update', function(data){
- updateWait(data);
+ // updateWait(data);
});
socket.on('mouse', function(data){
@@ -84,28 +91,39 @@
$("#scores").append($li);
}
});
-
+
socket.on('focus', function(data) {
if (data.id != _id && _id in users && users[data.id].cursor) {
users[data.id].cursor.removeClass('idle');
}
});
+
socket.on('blur', function(data){
if (data.id != _id && _id in users && users[data.id].cursor) {
users[data.id].cursor.addClass('idle');
}
})
-
+ var afk = false, blurred = 0, blurTime = 0, delay = 0;
if (_id) {
- window.onfocus = function () {
- $("#really_waiting").html("FOCUS");
- socket.emit('focus', { id: _id });
- }
+
window.onblur = function () {
$("#really_waiting").html("BLUR");
socket.emit('blur', { id: _id });
+ blurred = Date.now();
+ afk = true;
+ }
+
+ window.onfocus = function () {
+ $("#really_waiting").html("FOCUS");
+ socket.emit('focus', { id: _id });
+ if (blurred) {
+ afk = false;
+ delay = delay + (Date.now() - blurred);
+ $("#reset").html( "You left the page for " + toTime(delay) + ", counting it against your score.." );
+ }
}
+
window.onmousemove = $.throttle(50, function (e) {
var y = Math.floor( e.pageY - window.innerHeight / 2 );
var x = Math.floor( e.pageX - window.innerWidth / 2 );
@@ -158,7 +176,8 @@
<a href="/auth/facebook">Login with Facebook</a>
<% } %>
- <div>You've been waiting for <span id="waiting">0 seconds</span></div>
+ <div>You've been waiting for <span id="waiting">0 seconds</span><br>
+ <span id="reset"></span></div>
<div><span id="count">0</span> ppl online now!!</div>
<div id="really_waiting">FOCUS</div>