﻿(function ($) {
    function tick(obj, offset) {
        var time = GetUTCTime(offset);
        //set the minute hand
        var minuteAngle = 360 / 60 * time.getMinutes(); //turn the time into angle
        var minuteHand = obj.children('.minuteHand');
        minuteHand.rotate(minuteAngle, 'abs');

        //set the hour hand
        var hourAngle = 360 / 12 * time.getHours(); //turn the time into angle
        var hourHand = obj.children('.hourHand');
        hourHand.rotate((hourAngle + minuteAngle / 12) % 360, 'abs');

        var min = time.getMinutes() + '';
        if (min.length < 2) { min = '0' + min; }
        obj.children(".time").html(time.getHours() + ":" + min);
    };

    function GetUTCTime(offset) {
        var d = new Date();
        var l = d.getTime();
        var loffset = d.getTimezoneOffset() * 60000;
        return new Date((l + loffset) + (3600000 * offset));
    }

    $.fn.setclock = function (offset) {
        var obj = $(this);
        //offset to align on the minute
        setTimeout(function () {
            tick(obj, offset);
            setInterval(function () {
                tick(obj, offset);
            }, 60000);
        }, (60000 - (GetUTCTime(offset).getSeconds() * 1000)));



        tick(obj, offset); //make sure they start in the right position
        return this;
    }
})(jQuery);
