function grades (g,v) {
	s = v.toString();
	while (s.length < g) s = '0'+s;
	return s;
}

var time_s = 0;
var time_i = 0;
var time_h = 0;
var time_d = 0;
var time_m = 0;
var time_y = 0;
var time_ds = 0;
var time_di = 0;
var time_dh = 0;
var time_dd = 0;
var time_dm = 0;
var time_dy = 0;

function dgt_grades(sz) {
	str = '1';
	for (k = 1;k < sz;k++) str += '0';
	return str;
}

function dgts_frsh(sz,str,id,alt) {
	var len = str.length;
	for (var k = 0;k < len;k++) {
		var num = parseInt(str.substr(k,1));
		if (id != undefined && id != '') {
			var grd = dgt_grades(len-k);
			var iid = id+grd;
			var obj = gebi(iid);
			if (obj != undefined) {
				obj.style.backgroundPosition = '0 -'+(num*sz)+'px';
				obj.alt = str+' '+alt;
				obj.title = str+' '+alt;
			}
		}
	}
}


function tttime_tk (usetyk) {
	mons = [31,28,31,30,31,30,31,31,30,31,30,31];
	/*
	// первый вариант
	var d = new Date();
	sec = d.getSeconds(); // 0-59
	min = d.getMinutes(); // 0-59
	hour = d.getHours(); // 0-23
	day = d.getDate(); // 1-31
	mon = d.getMonth(); // 0-11
	year = d.getFullYear(); // 1900+
	yday = day-1; // 0-365
	for (k = 0;k < mon;k++) yday += mons[k];
	if (year%4 == 0 && mon > 1) yday++; // день високосного года
	*/
	/*
	// второй вариант
	time_s++;
	if (time_s >= 60) { time_s = 0; time_i++; }
	if (time_i >= 60) { time_i = 0; time_h++; }
	if (time_h >= 24) { time_h = 0; time_d++; }
	if (time_y%4 == 0) if (time_d >= 365) { time_d = 0; time_y++; }
	else if (time_d >= 364) { time_d = 0; time_y++; }
	*/
	var d = new Date();
	sec = d.getSeconds(); // 0-59
	min = d.getMinutes(); // 0-59
	hour = d.getHours(); // 0-23
	day = d.getDate(); // 1-31
	mon = d.getMonth()+1; // 0-11 -> 1-12
	year = d.getFullYear(); // 1900+
	
	sec += time_ds;
	min += time_di;
	hour += time_dh;
	day += time_dd;
	if (sec < 0) { min--; sec += 60; }
	if (sec >= 60) { min++; sec -= 60; }
	if (min < 0) { hour--; min += 60; }
	if (min >= 60) { hour++; min -= 60; }
	if (hour < 0) { day--; hour += 24; }
	if (hour >= 24) { day++; hour -= 24; }
	while (day < 1) {
		mon--;
		if (mon < 1) { year--; mon += 12; }
		monsd = mons[mon-1]; if (mon == 2 && year%4 == 0) monsd++;
		day += monsd;
	}
	monsd = mons[mon-1]; if (mon == 2 && year%4 == 0) monsd++;
	while (day > monsd) {
		day -= monsd; 
		mon++;
		if (mon > 12) { year++; mon -= 12; }
		monsd = mons[mon-1]; if (mon == 2 && year%4 == 0) monsd++;
	}
	mon += time_dm;
	if (mon < 1) { year--; mon += 12; }
	if (mon > 12) { year++; mon -= 12; }
	year += time_dy;
	

	yday = day-1; // не учитывается текущий день
	for (k = 0;k < mon-1;k++) yday += mons[k];
	if (year%4 == 0 && mon > 2) yday++; // день високосного года

	tek = sec;
	tik = min%30;
	tmn = year*8766+yday*24+hour; // время в целых часах
	tmn += 8766*1000; 
	tmn *= 2; // время в целых таках
	tak = tmn%16+Math.floor(min/30); tmn = Math.floor(tmn/16); // пересчитали на туки
	tuk = tmn%64; tmn = Math.floor(tmn/64); // пересчитали на тяки
	tyak = tmn%16; tmn = Math.floor(tmn/16); // пересчитали на токи
	tok = tmn;
	tyk = 0;
	//tok = tmn%1024; tmn = Math.floor(tmn/1024); // пересчитали на тыки
	//tyk = tmn;
	if (usetyk) { tyk = Math.floor(tmn/1024); tok = tmn%1024; } 
	if (tyk > 0) dgts_frsh(13,tyk,'time-t','тык');
	if (tok > 0) if (tyk>0) dgts_frsh(13,grades(3,tok),'time-y','ток'); else dgts_frsh(13,grades(4,tok),'time-y','ток');
	if (tyak > 0) dgts_frsh(13,grades(2,tyak),'time-m','тяк');
	if (tuk > 0) dgts_frsh(13,grades(2,tuk),'time-d','тук');
	//if (tyk > 0) gebi('time-t').innerHTML = tyk;
	//if (tok > 0) if (tyk>0) gebi('time-y').innerHTML = grades(3,tok); else gebi('time-y').innerHTML = grades(4,tok);
	//if (tyak > 0) gebi('time-m').innerHTML = grades(2,tyak);
	//if (tuk > 0) gebi('time-d').innerHTML = grades(2,tuk);
	dgts_frsh(16,grades(2,tak),'time-h','так')
	dgts_frsh(16,grades(2,tik),'time-i','тик')
	dgts_frsh(16,grades(2,tek),'time-s','тек')
	//gebi('time-h').innerHTML = grades(2,tak);
	//gebi('time-i').innerHTML = grades(2,tik);
	//gebi('time-s').innerHTML = grades(2,tek);
}

function realtime_tk (usethousand) {
	mons = [31,28,31,30,31,30,31,31,30,31,30,31];
	var d = new Date();
	sec = d.getSeconds(); // 0-59
	min = d.getMinutes(); // 0-59
	hour = d.getHours(); // 0-23
	day = d.getDate(); // 1-31
	mon = d.getMonth()+1; // 0-11
	year = d.getFullYear(); // 1900+

	sec += time_ds;
	min += time_di;
	hour += time_dh;
	day += time_dd;
	if (sec < 0) { min--; sec += 60; }
	if (sec >= 60) { min++; sec -= 60; }
	if (min < 0) { hour--; min += 60; }
	if (min >= 60) { hour++; min -= 60; }
	if (hour < 0) { day--; hour += 24; }
	if (hour >= 24) { day++; hour -= 24; }
	while (day < 1) {
		mon--;
		if (mon < 1) { year--; mon += 12; }
		monsd = mons[mon-1]; if (mon == 2 && year%4 == 0) monsd++;
		day += monsd;
	}
	monsd = mons[mon-1]; if (mon == 2 && year%4 == 0) monsd++;
	while (day > monsd) {
		day -= monsd; 
		mon++;
		if (mon > 12) { year++; mon -= 12; }
		monsd = mons[mon-1]; if (mon == 2 && year%4 == 0) monsd++;
	}
	mon += time_dm;
	if (mon < 1) { year--; mon += 12; }
	if (mon > 12) { year++; mon -= 12; }
	year += time_dy;

	year += 1000;
	thousand = 0;
	//year = tmn%1024; tmn = Math.floor(tmn/1024); // пересчитали на тыки
	//thousand = tmn;
	if (usethousand) { thousand = Math.floor(tmn/1024); year = tmn%1024; } 
	if (thousand > 0) gebi('time-t').innerHTML = thousand;
	if (year > 0) if (thousand>0) gebi('time-y').innerHTML = grades(3,year); else gebi('time-y').innerHTML = grades(4,year);
	if (mon > 0) gebi('time-m').innerHTML = grades(2,mon);
	if (day > 0) gebi('time-d').innerHTML = grades(2,day);
	gebi('time-h').innerHTML = grades(2,hour);
	gebi('time-i').innerHTML = grades(2,min);
	gebi('time-s').innerHTML = grades(2,sec);
}

var tttimer = 0;
function start_tttime () {
	var d = new Date();
	sec = d.getSeconds(); // 0-59
	min = d.getMinutes(); // 0-59
	hour = d.getHours(); // 0-23
	day = d.getDate(); // 1-31
	mon = d.getMonth()+1; // 0-11 -> 1-12
	year = d.getFullYear(); // 1900+
	time_dy = time_y-year;
	time_dm = time_m-mon;
	time_dd = time_d-day;
	time_dh = time_h-hour;
	time_di = time_i-min;
	time_ds = time_s-sec;
	//alert('wow '+time_dy+','+time_dm+','+time_dd+' '+time_dh+':'+time_di+':'+time_ds);
	tttimer = setInterval('tttime_tk()',1000);
}

var realtimer = 0;
function start_realtime () {
	var d = new Date();
	sec = d.getSeconds(); // 0-59
	min = d.getMinutes(); // 0-59
	hour = d.getHours(); // 0-23
	day = d.getDate(); // 1-31
	mon = d.getMonth()+1; // 0-11 -> 1-12
	year = d.getFullYear(); // 1900+
	time_dy = time_y-year;
	time_dm = time_m-mon;
	time_dd = time_d-day;
	time_dh = time_h-hour;
	time_di = time_i-min;
	time_ds = time_s-sec;
	realtimer = setInterval('realtime_tk()',1000);
}
