﻿registerNamespace("UpTheArse");

UpTheArse.SpursClock = function (p_el, p_args, p_namespace) {
    UpTheArse.SpursClock.initializeBase(this, arguments);

    var timer;

    this.initialize = function (p_objScope) {
        UpTheArse.SpursClock.getBaseMethod(this,
			"initialize", "Web.Bindings.Base").call(this, p_objScope);

        var lastSecs = 0;

        var staticClock = document.getElementById("staticClock");
        staticClock.style.display = 'none';
        var liveClock = document.getElementById("clock");
        liveClock.style.display = 'block';

        function displayTime() {
            var tSecs = ((86400 * 365) * 6) + ((86400 * 366) * 2) + (86400 * 259); // tSecs is # seconds from 17/4/1961 to 1/1/1970 
            var d = new Date();
            var tYear = d.getUTCFullYear() - 1961;
            if (d.getUTCMonth() < 3 ) tYear = tYear-- ;
            if ((d.getUTCMonth() == 3) && (d.getUTCDate() < 17)) tYear = tYear-- ;

            var tLeap = Math.floor((tYear / 4));
            var nNow = d / 1000;

            // tNow is the time in seconds from 17/4/1961 21:25:00 (BST)
            var tNow = tSecs + nNow - 77100 + 3600 // #seconds from 17/4/1961 to 31/12/1969
            // plus #seconds from 1/1/1970
            // minus #seconds for 21:25 (Evening kick-off + 10 minutes half time. It was BST in 1961!)

            var Days = Math.floor(tNow / 86400);
            var Years = tYear;
            var Hours = Math.floor((tNow - (Days * 86400)) / 3600);
            var Mins = Math.floor((tNow - (Days * 86400) - (Hours * 3600)) / 60);
            var Secs = Math.floor(tNow - (Days * 86400) - (Hours * 3600) - (Mins * 60));
            Days = Days - (365 * (tYear - tLeap)) - (366 * tLeap);

            // this uses the new W3C DOM object model
            var dNode = document.getElementById("spursYears");
            dNode.childNodes[0].nodeValue = Years; //  +' (' + tYear + '/' + tLeap + ')'; // Years;

            var dNode = document.getElementById("spursDays");
            dNode.childNodes[0].nodeValue = Days;

            var hNode = document.getElementById("spursHours");
            hNode.childNodes[0].nodeValue = Hours;

            var mNode = document.getElementById("spursMins");
            mNode.childNodes[0].nodeValue = Mins;

            var sNode = document.getElementById("spursSecs");
            sNode.childNodes[0].nodeValue = Secs;

            //	p_el.innerHTML =  new Date(now).toLocaleTimeString();
        }

        timer = setInterval(displayTime, 100);
        displayTime();
    };
    UpTheArse.SpursClock.registerBaseMethod(this, "initialize");

    this.dispose = function (p_blnUnload) {
        UpTheArse.SpursClock.getBaseMethod(this,
			"dispose", "Web.Bindings.Base").call(this, p_blnUnload);
        clearInterval(timer);
        timer = null;
    };
    UpTheArse.SpursClock.registerBaseMethod(this, "dispose");


};
UpTheArse.SpursClock.registerClass("SampleNamespace.SampleGadget",
	"Web.Bindings.Base");

