Permalink
Browse files

initial checkin

  • Loading branch information...
0 parents commit c200fd07676ab1c6f59d1470a95133c02c30c1a4 @chrismatthieu committed Sep 24, 2010
Showing with 118 additions and 0 deletions.
  1. 0 app.rb
  2. +11 −0 timer.rb
  3. +73 −0 views/countdown.erb
  4. +10 −0 views/index.erb
  5. +24 −0 views/layout.erb
No changes.
@@ -0,0 +1,11 @@
+require "rubygems"
+require "sinatra"
+
+get '/' do
+ erb :index
+end
+
+get '/go' do
+ @minutes = params[:minutes]
+ erb :countdown
+end
@@ -0,0 +1,73 @@
+
+<div style="text-align:center">
+
+<div style="margin-left:auto; margin-right:auto; ">
+<br/><br/><br/>
+<div style="font-size:200px;margin-top:25px;margin-bottom:10px">
+
+ <script>
+
+
+ function calcage(secs, num1, num2) {
+ s = ((Math.floor(secs/num1))%num2).toString();
+ if (LeadingZero && s.length < 2)
+ s = "0" + s;
+ return "<b>" + s + "</b>";
+ }
+
+ function CountBack(secs) {
+ if (secs < 0) {
+ document.getElementById("cntdwn").innerHTML = FinishMessage;
+ return;
+ }
+ DisplayStr = DisplayFormat.replace(/%%D%%/g, calcage(secs,86400,100000));
+ DisplayStr = DisplayStr.replace(/%%H%%/g, calcage(secs,3600,24));
+ DisplayStr = DisplayStr.replace(/%%M%%/g, calcage(secs,60,60));
+ DisplayStr = DisplayStr.replace(/%%S%%/g, calcage(secs,1,60));
+
+ document.getElementById("cntdwn").innerHTML = DisplayStr;
+ if (CountActive)
+ setTimeout("CountBack(" + (secs+CountStepper) + ")", SetTimeOutPeriod);
+ }
+
+ function putspan(backcolor, forecolor) {
+ document.write("<span id='cntdwn' style='background-color:" + backcolor +
+ "; color:" + forecolor + "'></span>");
+ }
+
+ if (typeof(BackColor)=="undefined")
+ BackColor = "white";
+ if (typeof(ForeColor)=="undefined")
+ ForeColor= "black";
+ if (typeof(TargetDate)=="undefined")
+ TargetDate = "12/31/2020 5:00 AM";
+ if (typeof(DisplayFormat)=="undefined")
+ DisplayFormat = "%%D%% Days, %%H%% Hours, %%M%% Minutes, %%S%% Seconds.";
+ if (typeof(CountActive)=="undefined")
+ CountActive = true;
+ if (typeof(FinishMessage)=="undefined")
+ FinishMessage = "";
+ if (typeof(CountStepper)!="number")
+ CountStepper = -1;
+ if (typeof(LeadingZero)=="undefined")
+ LeadingZero = true;
+
+
+ CountStepper = Math.ceil(CountStepper);
+ if (CountStepper == 0)
+ CountActive = false;
+ var SetTimeOutPeriod = (Math.abs(CountStepper)-1)*1000 + 990;
+ putspan(BackColor, ForeColor);
+ var dthen = new Date(TargetDate);
+ var dnow = new Date();
+ if(CountStepper>0)
+ ddiff = new Date(dnow-dthen);
+ else
+ ddiff = new Date(dthen-dnow);
+ gsecs = Math.floor(ddiff.valueOf()/1000);
+ CountBack(gsecs);
+
+ </script>
+ </div>
+
+
@@ -0,0 +1,10 @@
+<center>
+ <br/><br/>
+ <h1>@SunnyConf Speaker Timer</h1>
+ <br/><br/><br/>
+ <form action="/go">
+ How many minutes?
+ <input "text" name="minutes">
+ <input type="submit" value="Go!">
+ </form>
+</center>
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>Conference Timer</title>
+<script language="JavaScript">
+ var popUpsBlocked = false;
+ var minutes = <%=@minutes%>;
+ TargetDate = new Date().valueOf() + 24*60*60*1000*0 + 0*60*60*1000 + minutes*6*10000;
+ BackColor = "palegreen";
+ ForeColor = "navy";
+ CountActive = true;
+ CountStepper = -1;
+ LeadingZero = true;
+ DisplayFormat = "%%M%% Minutes <br/> %%S%% Seconds";
+ FinishMessage = "<span style='background-color:red;color:white;'>TIME HAS EXPIRED!</span>";
+</script>
+</head>
+
+<body style="margin:0">
+
+<%= yield %>
+
+</body>
+</html>

0 comments on commit c200fd0

Please sign in to comment.