1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml">
4 <title>Dispense @ UCC</title>
5 <link rel="stylesheet" type="text/css" href="dispense.css" />
6 <meta name="viewport" content="initial-scale = 1.0, user-scalable = no, width=device-width">
7 <meta name="apple-mobile-web-app-capable" content="yes" />
8 <meta name="apple-mobile-web-app-status-bar-style" content="hidden" />
9 <script type="text/javascript" src="jquery.js"></script>
10 <script type="text/javascript">
11 drink_icons = { "Sunkist" : "sunkist.png",
12 "lemony fizz" : "lemonade.png",
13 "han solo" : "solo.png",
14 "lemony aide" : "lemonade.png",
16 "pepsi max" : "pepsimax.png",
17 "null coke" : "cokezero.png"
19 function dispense (slot) {
20 $("#slot" + slot).css ("background", "no-repeat url('loading.gif') center center");
21 $.getJSON ("dispense.py?slot=" + slot, {}, function (data) {
22 result = data["result"];
23 if (result != "success") {
24 alert ("Error: " + result);
26 alert ("Dispense successful!");
32 // Loads machine status, then displays it.
33 function updateStatus () {
34 $.getJSON ("query.py", {}, function (data) {
35 $.getJSON ("balance.py", {}, function (baldata) {
36 result = baldata["result"];
37 if (result != "success") {
38 alert ("Error: " + result);
39 $('#login').css ("background", "no-repeat url('login.png')");
42 window.balance = baldata["balance"];
43 showScreen ("main_menu");
44 $("#lcdusername").text (window.username);
45 $("#lcdbalance").text (window.balance);
47 drink = data["slot" + i][0];
49 if (!data["slot" + i][2]) available = "dark-";
50 if (drink in drink_icons) icon = available + drink_icons[drink];
51 else icon = available + "default.png";
52 $("#slot" + i).html (data["slot" + i][1] + "c");
53 $("#slot" + i).css ("background", "no-repeat url('icons/" + icon + "') center center");
55 $('#login').css ("background", "no-repeat url('login.png')");
61 window.username = getCookie ("username");
62 window.pin = getCookie ("pin");
63 $('#username').val (window.username);
64 $('#pin').val (window.pin);
65 window.current_screen = "login_screen";
66 if (window.username != "" && window.pin != ""){
67 $('#login').css ("background", "no-repeat url('loading.gif') center center");
72 $('#login').css ("background", "no-repeat url('loading.gif') center center");
73 window.username = $("#username").val ();
74 window.pin = $("#pin").val ();
75 document.cookie = "username=" + escape (username) + ";";
76 document.cookie = "pin=" + escape (pin) + ";";
80 document.cookie = "username=";
81 document.cookie = "pin=";
82 showScreen ("login_screen");
84 function showScreen (name) {
85 $("#" + window.current_screen).css ("display","none");
86 $("#" + name).css ("display", "block");
87 window.current_screen = name;
89 function getCookie(c_name) {
90 if (document.cookie.length>0) {
91 c_start=document.cookie.indexOf(c_name + "=");
93 c_start=c_start + c_name.length+1;
94 c_end=document.cookie.indexOf(";",c_start);
95 if (c_end==-1) c_end=document.cookie.length;
96 return unescape(document.cookie.substring(c_start,c_end));
103 <body onload="load();">
104 <div class="screen" id="login_screen">
105 UCC Account Name:<br />
106 <input type="text" id="username" /><br />
108 <input type="password" id="pin" />
109 <div id="login" onclick="login();"></div>
111 <div class="screen" id="main_menu">
112 <div class="button" id="slot0" onclick="dispense(0);"></div>
113 <div class="button" id="slot1" onclick="dispense(1);"></div>
114 <div class="button" id="slot2" onclick="dispense(2);"></div>
115 <div class="button" id="slot3" onclick="dispense(3);"></div>
116 <div class="button" id="slot4" onclick="dispense(4);"></div>
117 <div class="button" id="slot5" onclick="dispense(5);"></div>
118 <div class="button" id="slot6" onclick="dispense(6);"></div>
119 <div id="lcd">Hi, <span id="lcdusername">you</span>!<br />Balance: $<span id="lcdbalance">who knows?</span></div>
120 <div id="opendoor" onclick="opendoor();"></div>
121 <div id="logout" onclick="logout();"></div>