function competence_group_switch(id)
{
	var e = document.getElementById('competence_group_contents_' + id);
	var display = e.style.display.toLowerCase();
	if (display == 'block' || display == '')
	{
		e.style.display = 'none';
	}
	else
	{
		e.style.display = 'block';
	}
}
function competence_tree_expand()
{
	for (var i in competences_show_blocks)
	{
		document.getElementById('competence_group_contents_' + i).style.display = 'block';
	}
}
function competence_tree_contract()
{
	for (var i in competences_show_blocks)
	{
		document.getElementById('competence_group_contents_' + i).style.display = 'none';
	}
}
var competences = new Array();
var competences_show_blocks = new Array();
function show_competence(id)
{
	for (var i in competences[id].show_blocks)
	{
		document.getElementById('competence_group_contents_' + i).style.display = 'block';
	}
}
function show_original_competences(opened_level, open_groups_with_compentences)
{
	for (var i in competences_show_blocks)
	{
		if (competences_show_blocks[i].level > opened_level || !open_groups_with_compentences && competences_show_blocks[i].competences && competences_show_blocks[i].competences.length)
		{
			document.getElementById('competence_group_contents_' + i).style.display = 'none';
		}
	}
	for (var t in competences)
	{
		if (competences[t].show)
		{
			show_competence(t);
		}
	}
}
var filter_competences_timeout = null;
function filter_competences(text)
{
	if (filter_competences_timeout)
	{
		filter_competences_timeout = null
	}
	if (text)
	{
		filter_competences_timeout = setTimeout(function() {
			filter_competences_internal(text);
		}, 150);
	}
	else
	{
		filter_competences_timeout = setTimeout(show_original_competences, 150);
	}
}
function filter_competences_internal(text)
{
	text = text.toLowerCase();
	text = text.replace(/&/g, "&amp;");
	text = text.replace(/\"/g, "&quot;");
	text = text.replace(/\'/g, "&apos;");
	text = text.replace(/</g, "&lt;");
	text = text.replace("\>", "&gt;");
	var shown_nodes = new Array();
	for (var t in competences)
	{
		if (competences[t].title_lower.indexOf(text) >= 0)
		{
			for (var u in competences[t].show_blocks)
			{
				shown_nodes[u] = true;
			}
		}
	}
	for (var i in competences_show_blocks)
	{
		document.getElementById('competence_group_contents_' + i).style.display = shown_nodes[i] ? 'block' : 'none';
	}
}
