const ADD = 'add'; const MOVE = 'move'; const SQUARE = 30; const BODY = '#plan'; const DIV = 'DIV'; const SVG = 'svg'; const PLAN = 'plan'; const POST = 'POST'; var selected = null; var mode = null; function addClass(data){ parts = data.split(" "); $('#'+parts[0]).addClass(parts[1]); } function addMessage(txt){ $('#messages').html(txt).show().delay(5000).fadeOut(5000); } function addTile(x,y){ console.log("addTile:",selected.id,x,y); return request({action:mode,tile:selected.id,x:x,y:y}); } function bodyClick(ev){ //console.log('bodyClick:',ev); var x = Math.floor(ev.clientX/SQUARE); var y = Math.floor(ev.clientY/SQUARE); switch (mode){ case undefined: case null: return clickTile(x,y); case ADD: return addTile(x,y); case MOVE: return moveTile(x,y); } console.log('unknown action "'+mode+'" @ ('+ev.clientX+','+ev.clientY+')'); } function clickTile(x,y){ console.log("clickTile:",x,y); if ($('#tile-'+x+'-'+y).length > 0) request({action:'click',x:x,y:y}); return false; } function closeMenu(ev){ console.log('closeMenu:',ev); if (selected != null) $(selected).css('border',''); $('.menu .list').css('display','') mode = null; selected = null; return false; } function closeWindows(){ $('.window').remove(); } function dropClass(data){ var parts = data.split(" "); for (var i=1; i div').click(closeMenu); $('.menu .addtile .list svg').click(enableAdding); $('.menu .move .list div').click(enableMove); $('.menu .actions .list > div').click(runAction); $(BODY).click(bodyClick); (new EventSource("stream")).onmessage = stream; }