var G = {
	init:function(){for(var n in G)if(G[n].init)G[n].init()},
	set:function(a,b){for(var o in b)a[o]=b[o];return a},
	create:function(a,b,c,d){var o=(d||document).createElement(a);G.set(o,b);G.set(o.style,c);return o},
	append:function(a,b,c,d){var o=b.tagName?b:G.create(b,c,d);a.appendChild(o);return o}
}

G.clock={
init:function(){var m=this,o=$('clock');if(o)m.prepare(o)},
prepare:function(a){
    var m=this,o=G.create('div',{className:'face'}),r=m.radius=a.offsetWidth/2
    m.make('hh',0.5,o);m.make('mm',0.75,o);m.make('ss',0.9,o)
    m.make('hh2',0.5,o);m.make('mm2',0.75,o);m.make('ss2',0.9,o)
    G.append(a,o);
    m.timer=setInterval(G.clock.tick,200)
},
make:function(a,b,c){
    var m=G.clock,n=Math.floor(m.radius*b),o=m[a]=[]
    for(i=0;i<n;i++)o[i]=G.append(c,'div',{className:a})
},
tick:function(){
    var m=G.clock,d=new Date,hh,mm,ss,f=m.update
    try{
        ss=d.getSeconds()+d.getMilliseconds()/1000
        mm=d.getMinutes()+ss/60
        hh=d.getHours()+mm/60
        
        f(m.hh,hh%12,12);f(m.mm,mm,60);f(m.ss,ss,60)
        
        ss2=d.getUTCSeconds()+32+d.getMilliseconds()/1000
        mm2=d.getUTCMinutes()+19+ss2/60
        hh2=d.getUTCHours()+mm2/60
        
        f(m.hh2,hh2%12,12);f(m.mm2,mm2,60);f(m.ss2,ss2,60)
        
        
    }catch(e){alert('error');m.stop()}
},
update:function(a,b,c){
    var M=Math,P=M.PI,rp=b*P*2/c-P/2,r=G.clock.radius
    for(i=0;i<a.length;i++)G.set(a[i].style,{top:r+M.sin(rp)*i+'px',left:r+M.cos(rp)*i+'px'})
},
stop:function(){clearInterval(G.clock.timer)}
}

window.addEvent('load', G.init);