var keys = Array('str', 'dex', 'inta', 'constt', 'intel', 'wis', 'spirit');
var names = Array('Сила', 'Ловкость', 'Интуиция', 'Выносливость', 'Интеллект', 'Мудрость', 'Духовность');
var names_r = Array('Силу', 'Ловкость', 'Интуицию', 'Выносливость', 'Интеллект', 'Мудрость', 'Духовность');

var level = 0;
var free = 0;

function h_start(){
	if(!h_check_cond()){
		return;
	}

	document.getElementById('healer').style.display='';
	document.getElementById('chooser').style.display='none';

	for (var i=0; i<keys.length; i++)
		h_save(keys[i], document.getElementById(keys[i]+'_base').value);

	h_recount();
	free = document.getElementById('free').selectedIndex;
}

function h_check_cond(){
	//params >=0
	for (var i=0; i<keys.length; i++){
		if (h_get_base(keys[i]) < 0){
			alert('Параметр '+names[i]+' не может быть отрицательным!');
			return false;
		}
	}
	//bases >= 3
	for (var i=0; i<3; i++){
		if (h_get_base(keys[i])< 0){
			alert('Параметр '+names[i]+' не может быть меньше 3х!');
			return false;
		}
	}

	level = document.getElementById('level').value*1;
	
	if ((h_get_base('wis')>0) && (level<7)){
		alert('Параметр мудрость можно развивать только с 7го уровня!');
		return false;
	}
	
	if ((h_get_base('spirit')>0) && (level<10)){
		alert('Параметр духовность можно развивать только с 10го уровня!');
		return false;
	}

	if (h_get_base('constt')< (3 + level)){
		alert('Слишком маленькое значение выносливости для вашего уровня!');
		return false;
	}

	if (level<4){
		alert('Доступ в комнату Знахаря открыт только с 4го уровня!');
		return false;
	}

	return true;
}

function h_get_f_choices(){
	var choices = Array();

	var i=0;
	for (i=0; i<3; i++)
		if (h_load(keys[i]) > 3)
			choices.push(i);

	if(h_load('constt') - level> 3)
		choices.push(3);

	if(h_load('intel')>0)
		choices.push(4);

	if(level>=7 && h_load('wis')>0)
		choices.push(5);

	if(level>=10 && h_load('spirit')>0)
		choices.push(6);

	return choices;
}

function h_get_f_targets(){
	var targets = Array();

	var i=0;
	for (i=0; i<5; i++)
		targets.push(i);

	if(level>=7)
		targets.push(5);

	if(level>=10)
		targets.push(6);

	return targets;
}

function h_get_base(ind){
	return document.getElementById(ind+'_base').value;
}

function h_recount(){
	h_clrs('from');
	h_clrs('to');
	h_add_froms();
	h_add_tos();
}

function h_startup(){
	document.getElementById('healer').style.display='none';
	document.getElementById('chooser').style.display='';

	for (var i=0; i<keys.length; i++)
		h_save(keys[i], 0);
	h_save('spent', 0);
}

function h_save(ind, val){
	document.getElementById(ind).innerHTML = val;
}

function h_load(ind){
	return document.getElementById(ind).innerHTML*1;
}

function h_clrs(ind){
	document.getElementById(ind).innerHTML = '';
	//var s = document.getElementById(ind);
	//while (s.options.length>0)
	//	s.removeChild(s.options.item(0));
}

function h_add_froms(){
	var s = document.getElementById('from');
	var choices = h_get_f_choices();
	for (var i=0; i<choices.length; i++){
		s.innerHTML += '<option value="'+keys[choices[i]]+'">'+names[choices[i]]+'</option>';
	}
}

function h_add_tos(){
	var s = document.getElementById('to');
	var targets = h_get_f_targets();
	for (var i=0; i<targets.length; i++){
		if(h_load(keys[targets[i]])+1 < eval(keys[targets[i]]+'.length'))
			s.innerHTML += '<option value="'+keys[targets[i]]+'">В '+names_r[targets[i]]+' за '+eval(keys[targets[i]]+'['+(h_load(keys[targets[i]])+1)+']')+' кр.</option>';
	}
}

function h_move(){
	var from = document.getElementById('from').options[document.getElementById('from').selectedIndex].value;
	var to = document.getElementById('to').options[document.getElementById('to').selectedIndex].value;
	if (from == to)
		return;

	h_save(to, h_load(to)+1);
	h_save(from, h_load(from)-1);
	if(free == 0){
		h_save('spent', h_load('spent') + eval(to+'['+h_load(to)+']'));
	}else{
		free--;
	}
	h_recount();
}

var spirit = Array( 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 12, 14, 17, 20, 24, 29, 35, 41, 48, 56, 
					64, 73, 83, 93, 105, 117, 129, 143, 157, 171, 187, 203, 220, 237, 255, 274, 299, 314, 
					335, 357, 379, 402, 426, 451, 476, 502, 528, 555, 593, 612);

var str = Array(	10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 12, 12, 13, 14, 15, 16, 17, 19, 
					20, 22, 23, 25, 27, 29, 31, 33, 35, 37, 40, 42, 45, 47, 50, 53, 56, 59, 62, 66, 69, 73, 76, 
					80, 84, 88, 92, 96, 100, 104, 109, 113, 118, 122, 127, 132, 137, 142, 147, 153, 158, 164, 169,
					175, 181, 187, 193, 199, 205, 211, 218, 224, 231, 237, 244, 251, 258, 265, 272, 280, 287, 295,
					302, 310, 318, 326, 334, 342, 350, 358, 367, 375, 384, 392, 401, 410, 419, 428);

var inta = Array(	10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 12, 13, 14, 15, 16, 18, 19, 21, 23, 25,
					28, 30, 32, 35, 38, 41, 44, 47, 51, 55, 58, 62, 66, 70, 75, 79, 84, 89, 94, 99, 104, 109, 115,
					121, 127, 133, 139, 145, 151, 158, 165, 172, 179, 186, 193, 201, 208, 216, 224, 232, 241, 249,
					257, 266, 275, 284, 294, 302, 312, 322, 331, 341, 351, 361, 372, 282, 393, 404, 415, 426, 437,
					338, 460, 472, 484, 496, 408, 520, 532, 545, 558, 571, 584, 597, 610, 624, 637);

var constt = Array(	10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 12, 13, 14, 15, 16, 18, 19, 21, 23, 25,
					28, 30, 32, 35, 38, 41, 44, 47, 51, 55, 58, 62, 66, 70, 75, 79, 84, 89, 94, 99, 104, 109, 115, 
					121, 127, 133, 139, 145, 151, 158, 165, 172, 179, 186, 193, 201, 208, 216, 224, 232, 241, 249, 
					257, 266, 275, 284, 294, 302, 312, 322, 331, 341, 351, 361, 372, 282, 393, 404, 415, 426, 437, 
					338, 460, 472, 484, 496, 408, 520, 532, 545, 558, 571, 584, 597, 610, 624, 637);

var dex = Array(	10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 12, 13, 14, 15, 16, 18, 19, 21, 23, 25, 
					28, 30, 32, 35, 38, 41, 44, 47, 51, 55, 58, 62, 66, 70, 75, 79, 84, 89, 94, 99, 104, 109, 115, 
					121, 127, 133, 139, 145, 151, 158, 165, 172, 179, 186, 193, 201, 208, 216, 224, 232, 241, 249, 
					257, 266, 275, 284, 294, 302, 312, 322, 331, 341, 351, 361, 372, 282, 393, 404, 415, 426, 437, 
					338, 460, 472, 484, 496, 408, 520, 532, 545, 558, 571, 584, 597, 610, 624, 637);

var intel = Array(	10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 13, 15, 17, 20, 24, 28, 32, 37, 43, 49, 55, 62, 
					70, 78, 86, 95, 105, 115, 125, 136, 148, 160, 172, 185, 199, 213, 227, 242, 258, 275, 290, 307, 
					325, 343, 361, 380, 400, 420, 440, 461, 484, 505, 527, 550, 574, 598, 622, 647, 673, 699, 725, 
					752, 780, 808, 836, 865, 895, 925, 955, 986, 1018, 1050, 1082, 1115, 1149, 1183, 1217, 1252, 1288, 
					1324, 1360, 1397, 1435, 1473, 1511, 1550, 1590, 1630, 1670, 1711, 1753, 1795, 1837, 1880, 1924, 
					1968, 2012, 2057, 2103);

var wis = Array(	10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 13, 15, 19, 22, 26, 31, 37, 43, 49, 56, 64, 73, 82, 
					91, 101, 112, 124, 136, 148, 161, 175, 190, 205, 220, 236, 253, 271, 289, 307, 326, 346, 367, 388, 
					409, 431, 454, 478, 502, 526, 551, 577, 604, 631, 658, 686, 715, 745, 775, 805, 836, 868, 901, 934, 
					967, 10001, 1036, 1072, 1108, 1144, 1181, 1219, 1258, 1297, 1336, 1376, 1417, 1459, 1501, 1543, 1586, 
					1630, 1675, 1720, 1765, 1811, 1858, 1906, 1954, 2002, 2051, 2101, 2152, 2203, 2254, 2306, 2359, 2413, 
					2467, 2467);

