Login   Register  
Icontem

File: timer.html

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Jeff Martin  >  Timer  >  timer.html  >  Download  
File: timer.html
Role: Example script
Content type: text/plain
Description: Example that uses the timer to implement a sleep timer for external websites.
Class: Timer
Invoke callback functions periodically
Author: By
Last change:
Date: 2011-10-27 12:39
Size: 4,299 bytes
 

Contents

Class file image Download
<!DOCTYPE html>
<html lang="en-us">

<head>
   <title>Sleep Timer. DEV SITE.</title>
   
   <meta charset="utf-8" />
   <meta name="author" content="Jeff Martin, (970) 726-8326" />
   <meta name="description" content="Sleep Timer DEV SITE." />
   <meta name="keywords" content="sleep timer" />
   
   <script src="class.Timer.js" type="text/javascript"></script>
   
   <style media="screen" type="text/css">
      div#configure {
         float: left;
      }
      
      div#currentTime {
         float: right;
         font-size: 3em;
         line-height: 3em;
      }
      
      div#timeContainer {
         float: right;
      }
      
      div#timeLabel {
         float: left;
         font-size: 3em;
         line-height: 3em;
         padding-right: 40px;
      }
      
      iframe {
         border-top: 5px solid #000000;
         height: 700px;
         width: 100%
      }
   </style>
      
   <script type="text/javascript">
      var
         T = null,
         newWindow = null;
      
      function configure() {
         var
            time = document.getElementById('startTime').value,
            timeComponents = time.split(':'),
            i = 0,
            startTime = 0;
         timeComponents.reverse();
      
         // Open the external website
         if (document.getElementById('newTabBox').checked) {
            newWindow = window.open(document.getElementById('externalSiteURL').value, '_blank');
         } else {
            // We are closing newWindow at the end, so if we do not open a new window, we want to close the current window
            newWindow = window;
            window.open(document.getElementById('externalSiteURL').value, 'externalSiteFrame');
         }
         
         // Parse the time string to get a total number of seconds to keep external site open
         for (i = 0; i < timeComponents.length; i++) {
            switch(i) {
               case 0 :    // seconds
                  startTime += timeComponents[i] * 1;
                  break;
               case 1 :    // minutes
                  startTime += timeComponents[i] * 60;
                  break;
               case 2 :    // hours
                  startTime += timeComponents[i] * 3600;
                  break;
               case 3 :    // days
                  startTime += timeComponents[i] * 3600 * 24;
                  break;
            }
         }
         
         // Get rid of T if already has been configured
         if (T) {
            T.kill();
            delete T;
         }
         
         T = new Timer(startTime, 1000, 'zero');
         T.displayTimeId = 'currentTime';
         T.updateDisplayFreq = 60;
         T.subscribe(T.Events.TICK, T.displayTime);
         T.subscribe(T.Events.END, function () { newWindow.close(); });
         T.start();
         
         // This is just here to prevent the form from being submitted
         return false;
      }
   </script>
</head>

<body>
   <header>
      <section id="topDisplay">
         <div id="configure">
            <form onsubmit="return configure()">
               <label>Start time (dd:hh:mm:ss):</label><input type="text" id="startTime" name="startTime" value="00:02:00:00" /><br />
               <label>External website to show:</label><input type="text" id="externalSiteURL" name="externalSiteURL" value="http://iheartradio.com" /><br />
               <label>Show website in new tab (check here if website refuses to show up in the iframe below):</label><input type="checkbox" id="newTabBox" name="newTabBox" /><br />
               <button type="submit" id="configureButton">Go</button>
            </form>
         </div>
         <div id="timeContainer">
            <div id="timeLabel">Time til self destruct:</div>
            <div id="currentTime">Not Configured</div>
         </div>
      </section>
   </header>
   
   <section id="wrapper">
      <section id="subContent">
         <iframe  id="externalSiteFrame" name="externalSiteFrame">
         </iframe>
      </section>      <!-- End content  -->

      <footer>
         <hr />
         <p>
            <a href="http://www.dogsledrides.com/winterpark">Home</a>
         </p>
      </footer>      <!-- End footer div  -->
   </section>      <!-- End wrapper div  -->
</body>

</html>