// текущая раскрытая секция
var current_section = null;

// функция вызывается, когда указатель мыши входит в область слоя профессии
function mouse_over_profession(e, element)
{
	document.getElementById(element).className='subscribe_profession subscribe_input_checkbox_container';
}
// функция вызывается, когда указатель мыши покидает область слоя профессии
function mouse_out_profession(e, element)
{
	document.getElementById(element).className='subscribe_input_checkbox_container';
}

// функция отображает список профессий данной секции, закрывая при этом 
// открытые ранее, если таковые имелись
function open_section(section)
{
	if (current_section != null)
	{
		reduce_section(current_section);
	}
	section.show();
	document.getElementById('professions_showing[' + extract_section_id(section.id) + ']').src = img_src_visible_section;
	document.getElementById('professions_showing_links[' + extract_section_id(section.id) + ']').style.fontWeight = 'bold';
	current_section = section;
}

// файлы изображений, используемые для обозначения открытых/закрытых секций
var img_src_visible_section = '/media/img/dashed_link_minus.gif';
var img_src_hidden_section = '/media/img/dashed_link_plus.gif';

// функция извлекает индекс из названия элемента в массиве
// "show_sections[18]" => "18"
function extract_section_id(instr)
{
	return instr.substring(instr.indexOf('[')+1, instr.indexOf(']'));
}

// функция закрывает список профессий секции
function reduce_section(section)
{
	section.hide();
	section_id = extract_section_id(section.id)
	document.getElementById('professions_showing[' + section_id + ']').src = img_src_hidden_section;
	document.getElementById('professions_showing_links[' + extract_section_id(section.id) + ']').style.fontWeight = 'normal';
	current_section = null;
}

// функция изменения цвета группы в зависимости от количества выделенных профессий в ней
function vacancies_selection_changed(section_id)
{
	for (var i = 0; i < professions.length; i++)
	{
		if (professions[i].sectionid != section_id)
		{
			continue;
		};
		if (document.getElementById("profession_id[" + professions[i].id + "]").checked == true)
		{
			document.getElementById('professions_showing_links[' + section_id + ']').className='subscribe_dashed_link';
			return;
		};
	};
	if (section_id)
	{
		document.getElementById('professions_showing_links[' + section_id + ']').className='subscribe_dashed_link_2';
	}
}

function change_section_class(e, profession)
{
	var section_id = extract_section_id(current_section.toString());
	vacancies_selection_changed(section_id);
}

// функция выбирает поведение, которое должно быть проявлено при обработке нажатия на изображение
function apply_action(e, section)
{
	if (modules[extract_section_id(section.id)].cfg.getProperty('visible') == true)
	{
		reduce_section(section);
	}
	else
	{
		open_section(section);
	}
}

function set_selection_of_section(section, selection)
{
	var selected_section_id = extract_section_id(section.id);
	for (var i = 0; i < professions.length; i++)
	{
		if (professions[i].sectionid == selected_section_id)
		{
			document.getElementById('profession_id[' + professions[i].id + ']').checked = selection;
		}
	}
}

// функция выделения всех профессий в заданной секции
function select_all_in_section(e, section)
{
	set_selection_of_section(section, true);
	vacancies_selection_changed(extract_section_id(section.toString()));
}

// функция снятия выделения со всех профессий в заданной секции
function deselect_all_in_section(e, section)
{
	set_selection_of_section(section, false);
	vacancies_selection_changed(extract_section_id(section.toString()));
}

validate_form = function()
{
	rez = frm.check();
	if (rez == false)
	{
		frm.fault('input_error');
	}
	return rez;
}