var serverTime = new Date();
serverTime.setFullYear(2008);
serverTime.setMonth(7);
serverTime.setDate(21);
serverTime.setHours(18);
serverTime.setMinutes(36);
serverTime.setSeconds(58);
// Yes, I realize that putting data in the script is ugly.

var timeDifference = new Date() - serverTime;

function zeropad(n, digits)
{
     n = n.toString();
     while (digits > n.length) {
         n = '0' + n;
     }
     return n;
}

function runClock(element)
{
    var time = new Date();
    time.setTime(time.getTime() - timeDifference);
    element.innerHTML = zeropad(time.getHours(), 2) + ':' + zeropad(time.getMinutes(), 2) + ':' + zeropad(time.getSeconds(), 2);
    function runClockAgain()
    {
        runClock(element);
    }
    setTimeout(runClockAgain, 1000);
}
