const ADD = 'add'; const MOVE = 'move'; const SQUARE = 30; const BODY = 'body'; const DIV = 'DIV'; const SVG = 'svg'; const PLAN = '#plan'; const POST = 'POST'; const CU = 'cu'; const OPAC = 100; var selected = null; var mode = null; var messageTimer = null; var messageOpacity = 0; function addClass(data){ parts = data.split(" "); $('#'+parts[0]).addClass(parts[1]); } function addMessage(txt){ $('#messages').html(txt); if (messageTimer != null) window.clearInterval(messageTimer); messageOpacity = 300; messageTimer = setInterval(fadeMessage,100); } function fadeMessage(){ messageOpacity -= 10; if (messageOpacity < 1) window.clearInterval(messageTimer); var o = messageOpacity; if (o>OPAC) o=OPAC; $('#messages').css('opacity',o/OPAC); } function addTile(x,y){ return request({action:mode,tile:selected.id,x:x,y:y}); } function car(id,mode){ return request({action:"car",id:id,mode:mode}); } function clickTile(x,y){ var id = x+"-"+y; if ($('#'+id).length > 0) request({action:'click',id:id}); return false; } function closeMenu(ev){ if (selected != null) $(selected).css('border',''); $('.menu .list').css('display','') mode = null; selected = null; return false; } function closeWindows(){ $('.window').remove(); } function connectCu(){ return request({realm:CU,action:"connect"}); } 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); $('.menu .trains .list > div').click(runAction); $('.menu .hardware .list > div').click(runAction); $(PLAN).click(planClick); $(document).keyup(keypress); (new EventSource("stream")).onmessage = stream; }