﻿var g_chid_tt = 0;
var g_chid_ttt = 0;

var g_days = [
	'Понедельникъ',
	'Вторникъ',
	'Тритейникъ',
	'Четверикъ',
	'Пятница',
	'Шестица',
	'Седьмица',
	'Осьмица',
	'Неделя'
];

var g_hours = [
	{'name':'Паобед','description':'начало нового дня'},
	{'name':'Вечир','description':'появление звездной росы на Небесах'},
	{'name':'Ничь','description':'нечетное время трех Лун'},
	{'name':'Полночь','description':'полный путь Лун'},
	{'name':'Заутрось','description':'звездное утешение росы'},
	{'name':'Заура','description':'звездное сияние, заря'},
	{'name':'Заурнице','description':'окончание звездного сияния'},
	{'name':'Настя','description':'утренняя заря'},
	{'name':'Сваор','description':'восход Солнца'},
	{'name':'Утрось','description':'успокоение росы'},
	{'name':'Поутрось','description':'путь собирания успокоенной росы'},
	{'name':'Обестина','description':'обедня, совместное собрание'},
	{'name':'Обед','description':'трапеза'},
	{'name':'Подани','description':'отдых после трапезы'},
	{'name':'Утдайни','description':'время окончания деяний'},
	{'name':'Поудани','description':'завершенный день'}
];

var g_months = [
	{'name':'Рамхатъ', 'description':'Месяц Божественного Начала'},
	{'name':'Айлетъ', 'description':'Месяц Новых Даров'},
	{'name':'Бейлетъ', 'description':'Месяц Белого Сияния и Покоя Мира'},
	{'name':'Гэйлетъ', 'description':'Месяц Вьюг и Стужи'},
	{'name':'Дайлетъ', 'description':'Месяц Пробуждения Природы'},
	{'name':'Элетъ', 'description':'Месяц Посева и Наречения'},
	{'name':'Вэйлетъ', 'description':'Месяц Ветров'},
	{'name':'Хейлетъ', 'description':'Месяц Получения Даров Природы'},
	{'name':'Тайлетъ', 'description':'Месяц Завершения'}
];

var g_years = [
	'Странник (Путь)',
	'Жрец',
	'Жрица (Дева)',
	'Мир (Явь)',
	'Свиток',
	'Феникс',
	'Лис (Навь)',
	'Дракон',
	'Змей',
	'Орёл',
	'Дельфин',
	'Конь',
	'Пёс',
	'Тур (Корова)',
	'Хоромы (Дом)',
	'Капище (Храм)'
];

var g_elements = [
	{'name':'Земля', 'color':'Чёрный', 'attr':'Земной'},
	{'name':'Звезда', 'color':'Красный', 'attr':'Звёздный'},
	{'name':'Огонь', 'color':'Алый', 'attr':'Огненный'},
	{'name':'Солнце', 'color':'Златый', 'attr':'Солнечный'},
	{'name':'Древо', 'color':'Зелёный', 'attr':'Деревянный'},
	{'name':'Свага', 'color':'Небесный', 'attr':'Сважий'},
	{'name':'Океан', 'color':'Синий', 'attr':'Морской'},
	{'name':'Луна', 'color':'Фиолетовый', 'attr':'Лунный'},
	{'name':'Бог', 'color':'Белый', 'attr':'Божественный'}
];

var g_chertogi = [
	{'state':'Ярило-Солнце Переходит из Чертога Девы в Чертог Вепря', 'attr':''},			// 0
	{'state':'Ярило-Солнце Переходит из Чертога Вепря в Чертог Шуки', 'attr':''},			// 1
	{'state':'Ярило-Солнце Переходит из Чертога Щуки в Чертог Лебедя', 'attr':''},			// 2
	{'state':'Ярило-Солнце Переходит из Чертога Лебедя в Чертог Змея', 'attr':''},			// 3
	{'state':'Ярило-Солнце Переходит из Чертога Змея в Чертог Ворона', 'attr':''},			// 4
	{'state':'Ярило-Солнце Переходит из Чертога Ворона в Чертог Медведя', 'attr':''},		// 5
	{'state':'Ярило-Солнце Переходит из Чертога Медведя в Чертог Бусла', 'attr':''},		// 6
	{'state':'Ярило-Солнце Переходит из Чертога Бусла в Чертог Волка', 'attr':''},			// 7
	{'state':'Ярило-Солнце Переходит из Чертога Волка в Чертог Лисы', 'attr':''},			// 8
	{'state':'Ярило-Солнце Переходит из Чертога Лисы в Чертог Тура', 'attr':''},			// 9
	{'state':'Ярило-Солнце Переходит из Чертога тура в Чертог Лося', 'attr':''},			// 10
	{'state':'Ярило-Солнце Переходит из Чертога Лося в Чертог Финиста', 'attr':''},			// 11
	{'state':'Ярило-Солнце Переходит из Чертога Финиста в Чертог Коня', 'attr':''},			// 12
	{'state':'Ярило-Солнце Переходит из Чертога Коня в Чертог Орла', 'attr':''},			// 13
	{'state':'Ярило-Солнце Переходит из Чертога Орла в Чертог Расы (Леопарда)', 'attr':''},	// 14
	{'state':'Ярило-Солнце Переходит из Чертога Расы (Леопарда) в Чертог Девы', 'attr':''},	// 15
	{'state':'Ярило-Солнце в Чертоге Вепря', 'attr':'Бог-Покровитель РАМХАТ'},				// 16
	{'state':'Ярило-Солнце в Чертоге Щуки', 'attr':'Богиня-Покровительница РОЖАНА'},		// 17
	{'state':'Ярило-Солнце в Чертоге Щуки', 'attr':'Богиня-Покровительница РОЖАНА'},		// 18
	{'state':'Ярило-Солнце в Чертоге Лебедя', 'attr':'Богиня-Покровительница МАКОШЬ'},		// 19
	{'state':'Ярило-Солнце в Чертоге Змея', 'attr':'Бог-Покровитель СЕМАРГЛ'},				// 20
	{'state':'Ярило-Солнце в Чертоге Змея', 'attr':'Бог-Покровитель СЕМАРГЛ'},				// 21
	{'state':'Ярило-Солнце в Чертоге Ворона', 'attr':'Бог-Покровитель КОЛЯДА'},				// 22
	{'state':'Ярило-Солнце в Чертоге Медведя', 'attr':'Бог-Покровитель СВАРОГ'},			// 23
	{'state':'Ярило-Солнце в Чертоге Медведя', 'attr':'Бог-Покровитель СВАРОГ'},			// 24
	{'state':'Ярило-Солнце в Чертоге Бусла', 'attr':'Бог-Покровитель РОД'},					// 25
	{'state':'Ярило-Солнце в Чертоге Волка', 'attr':'Бог-Покровитель ВЕЛЕС'},				// 26
	{'state':'Ярило-Солнце в Чертоге Волка', 'attr':'Бог-Покровитель ВЕЛЕС'},				// 27
	{'state':'Ярило-Солнце в Чертоге Лисы', 'attr':'Богиня-Покровительница МАРЕНА'},		// 28
	{'state':'Ярило-Солнце в Чертоге Лисы', 'attr':'Богиня-Покровительница МАРЕНА'},		// 29
	{'state':'Ярило-Солнце в Чертоге Тура', 'attr':'Бог-Покровитель КРЫШЕНЬ'},				// 30
	{'state':'Ярило-Солнце в Чертоге Лося', 'attr':'Богиня-Покровительница ЛАДА'},			// 31
	{'state':'Ярило-Солнце в Чертоге Лося', 'attr':'Богиня-Покровительница ЛАДА'},			// 32
	{'state':'Ярило-Солнце в Чертоге Финиста', 'attr':'Бог-Покровитель ВЫШЕНЬ'},			// 33
	{'state':'Ярило-Солнце в Чертоге Коня', 'attr':'Бог-Покровитель КУПАЛА'},				// 34
	{'state':'Ярило-Солнце в Чертоге Коня', 'attr':'Бог-Покровитель КУПАЛА'},				// 35
	{'state':'Ярило-Солнце в Чертоге Орла', 'attr':'Бог-Покровитель ПЕРУН'},				// 36
	{'state':'Ярило-Солнце в Чертоге Раса (Леопарда)', 'attr':'Бог-Покровитель ТАРХ'},		// 37
	{'state':'Ярило-Солнце в Чертоге Раса (Леопарда)', 'attr':'Бог-Покровитель ТАРХ'},		// 38
	{'state':'Ярило-Солнце в Чертоге Девы', 'attr':'Богиня-Покровительница ДЖИВА'}			// 39
];

function dar_time(intime) {
	this.getShortTime = getShortTime;
	this.getFullTime = getFullTime;

	if(!intime) {
		this.hour = 0;
		this.part = 0;
		this.unit = 0;
		return;
	}

	var jew_time = new Date(intime);
	var msec = jew_time.getTime() - (jew_time.getTimezoneOffset() * 60000) + 5*60*60*1000;
	var time = (msec % (24*60*60*1000));
	time /= (24*60*60*1000)/(16*144*1296);
	this.hour = Math.floor(time/(144*1296));
	this.part = Math.floor((time % (144*1296))/1296);
	this.unit = Math.floor(time % 1296);
}

function getShortTime() {
	return(this.hour + ":" + (this.part < 100? "0" + (this.part < 10? "0": ""): "") + this.part);
}

function getFullTime() {
	return(this.hour + ":" + (this.part < 100? "0" + (this.part < 10? "0": ""): "") + this.part + ":" + (this.unit < 1000 ? "0" + (this.unit < 100? "0" + (this.unit < 10? "0": ""): ""): "") + this.unit);
}

function dar_date(indate) {
	if(!indate) {
		this.hour = 0;
		this.part = 0;
		this.unit = 0;
		this.day = 0;
		this.display_day = "";
		this.display_hour = "";
		this.display_daypart = "";
		this.month = 0;
		this.display_month = "";
		this.display_month_descr = "";
		this.day_number = 0;
		this.chertog = 0;
		this.display_chertog = "";
		this.krug_let = 0;
		this.krug_zhizni = 0;
		this.display_krug = "";
		this.SMZH = 0;
		return;
	}

	var today = new Date(indate);
	var msec = today.getTime() - (today.getTimezoneOffset() * 60000) + 5*60*60*1000;
	var time = (msec % (24*60*60*1000));
	time /= (24*60*60*1000)/(16*144*1296);
	this.hour = Math.floor(time/(144*1296));
	this.part = Math.floor((time % (144*1296))/1296);
	this.unit = Math.floor(time % 1296);
	var days = Math.floor(1.00 * (msec / 86400000));
	this.day = Math.floor(days % 9.00);

	this.display_day = g_days[this.day];
	this.display_hour = g_hours[this.hour].name + " (" + g_hours[this.hour].description + ")";
	if(this.hour >=0 && this.hour < 4) this.display_daypart = "Вечер";
	if(this.hour >=4 && this.hour < 8) this.display_daypart = "Ночь";
	if(this.hour >=8 && this.hour < 12) this.display_daypart = "Утро";
	if(this.hour >=12 && this.hour <= 15) this.display_daypart = "День";

	days -= 264;
	this.krug_let = 7;
	this.krug_zhizni = 103;
	this.day_number = 1;
	this.month = 1;
	this.SMZH = 7479;

	while(days > 0) {
// отнимает (в цикле while) число полных Простых Лет
		if(this.krug_let != 16 && days >= 365 ) {
			days -= 365; this.day_number = 1; this.month = 1;
			this.krug_let++; this.krug_zhizni++; this.SMZH++;
		}
// отнимает (в цикле while) число полных Священных Лет
		if(this.krug_let == 16 && days >= 369) {
			days -= 369; this.day_number = 1; this.month = 1; this.krug_let = 1;
			if(this.krug_zhizni == 144) this.krug_zhizni = 1; else this.krug_zhizni++;
			this.SMZH++;
		}
// отнимает (в цикле while) для Простого Лета число полных нечетных Месяцев - по 41 дню
		if(this.krug_let != 16 && days < 365 && days >= 41 && this.month != 2 && this.month != 4 && this.month != 6 && this.month != 8) {
			days -= 41; this.day_number = 1;
			if(this.month == 9) {
				this.month = 1; this.krug_let++; this.krug_zhizni++; this.SMZH++;
			} else this.month++;
		}
// отнимает (в цикле while) для Простого Лета число полных четных Месяцев - по 40 дней
		if(this.krug_let != 16 && days < 365 && days >= 40 && this.month != 1 && this.month != 3 && this.month != 5 && this.month != 7 && this.month != 9) {
			days -= 40; this.day_number = 1; this.month++;
		}
// отнимает (в цикле while) для Священного Лета число полных Месяцев - по 41 дню
		if(this.krug_let == 16 && days >= 41 && days < 369) {
			days -= 41; this.day_number = 1;
			if(this.month == 9) {
				this.month = 1; this.krug_let = 1;
				if(this.krug_zhizni == 144) this.krug_zhizni = 1; else this.krug_zhizni++;
				this.SMZH++;
			} else this.month++;
		}
// отнимает (в цикле while) для Простого Лета число дней в нечетных Месяцах - которые по 41 дню
		if(this.krug_let != 16 && days > 0 && days < 41 && this.month != 2 && this.month != 4 && this.month != 6 && this.month != 8) {
			days --;
			if(this.day_number == 41) {
				this.day_number = 1;
				if(this.month == 9) {
					this.month = 1; this.krug_let++; this.krug_zhizni++; this.SMZH++;
				} else this.month++;
			} else this.day_number++;
		}
// отнимает (в цикле while) для Простого Лета число дней в четных Месяцах - которые по 40 дней
		if(this.krug_let != 16 && days > 0 && days < 40 && this.month != 1 && this.month != 3 && this.month != 5 && this.month != 7 && this.month != 9) {
			days --;
			if(this.day_number == 40) {
				this.day_number = 1; this.month++;
			} else this.day_number++;
		}
// отнимает (в цикле while) для Священного Лета число дней в Месяце - которые все по 41 дню
		if(this.krug_let == 16 && days > 0 && days < 41) {
			days --;
			if(this.day_number == 41) {
				this.day_number = 1;
				if(this.month == 9) {
					this.month = 1; this.krug_let = 1;
					if(this.krug_zhizni == 144) this.krug_zhizni = 1; else this.krug_zhizni++;
					this.SMZH++;
				} else this.month++;
			} else this.day_number++;
		}
	}

	this.display_month = g_months[this.month-1].name;
	this.display_month_descr = g_months[this.month-1].description;

	var x1 = Math.round(this.krug_zhizni/16);
	x1 = (16*x1 >= this.krug_zhizni) ? this.krug_zhizni - 16*(x1 - 1) - 1 : this.krug_zhizni - 16*x1 - 1;

	var x2 = Math.round(this.krug_zhizni/18);
	x2 = (18*x2 >= this.krug_zhizni) ? Math.round((this.krug_zhizni - 18*(x2 - 1))/2) - 1 : Math.round((this.krug_zhizni - 18*x2)/2) - 1;

	this.display_krug = g_elements[x2].color + " " + g_elements[x2].attr + " " + g_years[x1];

	if(this.month == 1 && this.day_number == 1) this.chertog = 0;
	if(this.month == 1 && this.day_number == 22) this.chertog = 1;
	if(this.month == 2 && this.day_number == 4) this.chertog = 2;
	if(this.month == 2 && this.day_number == 25) this.chertog = 3;
	if(this.month == 3 && this.day_number == 7) this.chertog = 4;
	if(this.month == 3 && this.day_number == 29) this.chertog = 5;
	if(this.month == 4 && this.day_number == 12) this.chertog = 6;
	if(this.month == 4 && this.day_number == 37) this.chertog = 7;
	if(this.month == 5 && this.day_number == 22) this.chertog = 8;
	if(this.month == 6 && this.day_number == 4) this.chertog = 9;
	if(this.month == 6 && this.day_number == 26) this.chertog = 10;
	if(this.month == 7 && this.day_number == 9) this.chertog = 11;
	if(this.month == 7 && this.day_number == 31) this.chertog = 12;
	if(this.month == 8 && this.day_number == 13) this.chertog = 13;
	if(this.month == 8 && this.day_number == 35) this.chertog = 14;
	if(this.month == 9 && this.day_number == 18) this.chertog = 15;
	if(this.month == 1 && this.day_number > 1 && this.day_number < 22) this.chertog = 16;
	if(this.month == 1 && this.day_number > 22) this.chertog = 17;
	if(this.month == 2 && this.day_number < 4) this.chertog = 18;
	if(this.month == 2 && this.day_number > 4 && this.day_number < 25) this.chertog = 19;
	if(this.month == 2 && this.day_number > 25) this.chertog = 20;
	if(this.month == 3 && this.day_number < 7) this.chertog = 21;
	if(this.month == 3 && this.day_number > 7 && this.day_number < 29) this.chertog = 22;
	if(this.month == 3 && this.day_number > 29) this.chertog = 23;
	if(this.month == 4 && this.day_number < 12) this.chertog = 24;
	if(this.month == 4 && this.day_number > 12 && this.day_number < 37) this.chertog = 25;
	if(this.month == 4 && this.day_number > 37) this.chertog = 26;
	if(this.month == 5 && this.day_number < 22) this.chertog = 27;
	if(this.month == 5 && this.day_number > 22) this.chertog = 28;
	if(this.month == 6 && this.day_number < 4) this.chertog = 29;
	if(this.month == 6 && this.day_number > 4 && this.day_number < 26) this.chertog = 30;
	if(this.month == 6 && this.day_number > 26) this.chertog = 31;
	if(this.month == 7 && this.day_number < 9) this.chertog = 32;
	if(this.month == 7 && this.day_number > 9 && this.day_number < 31) this.chertog = 33;
	if(this.month == 7 && this.day_number > 31) this.chertog = 34;
	if(this.month == 8 && this.day_number < 13) this.chertog = 35;
	if(this.month == 8 && this.day_number > 13 && this.day_number < 35) this.chertog = 36;
	if(this.month == 8 && this.day_number > 35) this.chertog = 37;
	if(this.month == 9 && this.day_number < 18) this.chertog = 38;
	if(this.month == 9 && this.day_number > 18) this.chertog = 39;

	this.display_chertog = g_chertogi[this.chertog].state + ". " + g_chertogi[this.chertog].attr;
}

function tt() {
	if(g_chid_tt) {
		clearTimeout(g_chid_tt);
		g_chid_tt  = 0;
	}
	var d = new Date();
	var dt = new dar_time(d.getTime());
	var time2_el = document.getElementById("time");
	time2_el.innerHTML = "Время: " + dt.getFullTime();
	g_chid_tt = setTimeout("tt()", 50);
}

function ttt() {
	if(g_chid_ttt) {
		clearTimeout(g_chid_ttt);
		g_chid_ttt = 0;
	}

	var d = new Date();
	var dd = new dar_date(d.getTime());

	var krug_el = document.getElementById("krug");
	krug_el.innerHTML =
		"Час: " + dd.display_hour + ", " + dd.display_daypart + "<br>" +
		dd.display_day + ", " + dd.day_number+" " + dd.display_month+", " + dd.display_month_descr + "<br>" +
		"Лето "+ dd.SMZH + " от С.М.З.Х.<br>" +
		"Лето в Круге Лет: " + dd.krug_let + "<br>" +
		"Лето в Круге Жизни: " + dd.krug_zhizni + " - " + dd.display_krug + "<br>" +
		"Чертог: " + dd.display_chertog;
	g_chid_ttt = setTimeout("ttt()", 1000);
}

function start_krug() {
	g_chid_tt = setTimeout("tt()", 1000);
	g_chid_ttt = setTimeout("ttt()", 1000);
}

function stop_krug() {
	if(g_chid_tt) {
		clearTimeout(g_chid_tt);
		g_chid_tt = 0;
	}
	if(g_chid_ttt) {
		clearTimeout(g_chid_ttt);
		g_chid_ttt = 0;
	}
}

