﻿
// function to calculate local time
// in a different city
// given the city's UTC offset
function calcTime(city, offset) {
    // create Date object for current location
    d = new Date();
   
    // convert to msec
    // add local time zone offset
    // get UTC time in msec
    utc = d.getTime() + (d.getTimezoneOffset() * 60000);
   
    // create new Date object for different city
    // using supplied offset
    nd = new Date(utc + (3600000*offset));
   
    // return time as a string
    var hours = nd.getHours();
    var ampm = 'AM';
    if(hours >= 12) {
        hours = hours - 12;
        ampm = 'PM';
    }
    if(hours < 10)
        hours = '0' + hours;
       
    var minutes = nd.getMinutes();
    if(minutes < 10)
        minutes = '0' + minutes;
        
    return hours + ":" + minutes + " " + ampm;
}

// please keep these lines on when you copy the source
// made by: Nicolas - http://www.javascript-page.com
var clockID = 0;
var clockObjId;

function showLocalTime(objId) {
    clockObjId = objId;
}

function UpdateClock() {
   if(clockID) {
      clearTimeout(clockID);
      clockID  = 0;
   }

   if(clockObjId) {
       var obj = document.getElementById(clockObjId);
       if(obj) {
           obj.innerHTML = calcTime('', '+11');
       }
   }
   
   clockID = setTimeout("UpdateClock()", 60000);
}

function StartClock() {
   clockID = setTimeout("UpdateClock()", 500);
}

function KillClock() {
   if(clockID) {
      clearTimeout(clockID);
      clockID  = 0;
   }
}

/* Thanks to Scott Andrew */
function addEvent(obj, evType, fn){
    if (obj == null) return;

    if (obj.addEventListener) {
        obj.addEventListener(evType, fn, true);
        return true;
    } else if (obj.attachEvent) {
        var r = obj.attachEvent("on"+evType, fn);
        return r;
    } else {
        return false;
    }
}

addEvent(window, 'load', StartClock);
addEvent(window, 'unload', KillClock);

