G.clock={
	init:function(){
		var m=this,o=$g('analog-clock');
		if(o)m.prepare(o)
	},
	prepare:function(a){
		var m=this,o=G.create('div',{
			className:'face'
		}),r=m.radius=a.offsetWidth/2
		for(i=0;i<12;i++)G.append(o,'div',{
			innerHTML:i+1
			})
		m.make('hh',0.55,o);
		m.make('mm',0.7,o);
		m.make('ss',0.8,o)
		G.append(a,o);
		m.setHrs(o,r)
		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
		})
	},
	setHrs:function(o,r){
		var p,M=Math,P=M.PI,rp,n=r*0.8;
		
		for(i=0;i<12;i++){
			p=o.childNodes[i];
			rp=(i+1)*2*P/12-P/2
			G.set(p.style,{
				top:r+M.sin(rp)*n-p.offsetHeight/2+'px',
				left:r+M.cos(rp)*n-p.offsetWidth/2+'px'
				})
		}
	},
	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)
		}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)
		}
}
