function flip(did) {
	var des = document.getElementById(did);

	if (des.style.display == "block")
		des.style.display = "none";
	else
		des.style.display = "block";
}

function check_children(name, state) {
	var elements = document.getElementsByTagName('input');

	if (/where_domain_\d+/.test(name)) {
		var count = 0;

		for (i = 0; i < elements.length; i++) {
			if (elements[i].className.match(name)) {
				elements[i].checked = state;
				document.getElementById('title_' + elements[i].id).style.fontWeight = state ? 'bold' : 'normal';
				count++;
			}
		}

		check_parent('where_portal', 'parent_where_portal', count);
	} else {
		for (i = 0; i < elements.length; i++) {
			if (elements[i].className.match(name)) {
				elements[i].checked = state;
				document.getElementById('title_' + elements[i].id).style.fontWeight = state ? 'bold' : 'normal';
			}
		}
	}
}


function check_parent(name, parent, count) {
	var inputs = document.getElementsByTagName('input');
	var parent = document.getElementById(parent);
	var length = inputs.length;
	var elements = 0;
	var checked = 0;

	if (/where_portal/.test(name)) {
		for (i = 0; i < inputs.length; i++) {
			if (inputs[i].className.match(name)) {
				elements++;

				if (inputs[i].checked) {
					checked++;
					document.getElementById('title_' + inputs[i].id).style.fontWeight = 'bold';
				} else {
					document.getElementById('title_' + inputs[i].id).style.fontWeight = 'normal';
				}
			}
		}

		if (checked == elements - 1 && !parent.checked) {
			parent.checked = true;
			document.getElementById('title_' + parent.id).style.fontWeight = 'bold';
		} else if (checked == elements - count && parent.checked) {
			parent.checked = false;
			document.getElementById('title_' + parent.id).style.fontWeight = 'normal';
		}
	} else if (/where_domain_\d+/.test(name)) {
		for (i = 0; i < inputs.length; i++) {
			if (inputs[i].className.match(name)) {
				elements++;

				if (inputs[i].checked) {
					checked++;
					document.getElementById('title_' + inputs[i].id).style.fontWeight = 'bold';
				} else {
					document.getElementById('title_' + inputs[i].id).style.fontWeight = 'normal';
				}
			}
		}

		if (checked == elements - 1 && !parent.checked) {
			parent.checked = true;
			document.getElementById('title_' + parent.id).style.fontWeight = 'bold';
		} else if (checked == elements - 1 && parent.checked) {
			var portal = document.getElementById('parent_where_portal');
			parent.checked = false;
			portal.checked = false;
			document.getElementById('title_' + parent.id).style.fontWeight = 'normal';
		}

		check_parent('where_portal', 'parent_where_portal', elements);
	} else {
		for (i = 0; i < length; i++) {
			if (inputs[i].className == name) {
				elements++;

				if (inputs[i].checked) {
					checked++;
					document.getElementById('title_' + inputs[i].id).style.fontWeight = 'bold';
				} else {
					document.getElementById('title_' + inputs[i].id).style.fontWeight = 'normal';
				}
			}
		}

		if (checked == elements - 1 && !parent.checked) {
			parent.checked = true;
			document.getElementById('title_' + parent.id).style.fontWeight = 'bold';
		} else if (checked == elements - 1 && parent.checked) {
			parent.checked = false;
			document.getElementById('title_' + parent.id).style.fontWeight = 'normal';
		}
	}
}


function CheckIt() {
	for (var i = 1; i < 5; i++) {
		document.getElementById('titlerb' + i).style.fontWeight = document.getElementById('rb' + i).checked ? 'bold' : 'normal';
	}
}

// ================== Функции для чеканья ======================
// Кликанье по общему чекбоксу
function checkG(id) {
	var parent = $(id);

	$$('input.' + parent.className).each(
		function(element) {
			element.checked = parent.checked;
		}
	)
}

// Кликанье по чекбоксу
function checkP(class_name) {
	var total = $$('input.' + class_name).length - 1;
	var parent = $(class_name + '_all');
	var check = 0;
	
	// Считаем кол-во чекнутых
	$$('input.' + class_name).each(
		function(element) {
			if (element.id != parent.id && element.checked)
				check++;
		}
	)

	// Если чекнуты все модули и нечекнут общий, чекаем его
	// и тут же если наоборот
	if ((check == total && !parent.checked) || (check < total && parent.checked))
		parent.checked = !parent.checked;
}
