	var	 bclick = false;
	var	_hideMode	=	[];
	
	var treeImage = [];
	
	treeImage['default']	=	[];

	treeImage['default']['p']	=	'images/-.gif';
	treeImage['default']['m']	=	'images/+.gif';
	
	
	function	mb_displayTree(_id, _node, _swap)
	{
		if (_id)
		{
			_node = (_node) ? _node : 'page';
			if (_img = $('image_' + _node + '_' + _id))
			{
				_img.name		=	(_img.name == 'p') ? 'm' : 'p'
				_hideMode[_node]=	(_hideMode[_node] != null) ? _hideMode[_node] : _img.name
				if (treeImage[_node] && treeImage[_node].length)
					_img.src		=	theme_path + treeImage[_node][_hideMode[_node]]
				else
					_img.src		=	theme_path + treeImage['default'][_hideMode[_node]]
			}
			var oColl	=	document.getElementsByName(_node + '_' + _id);
			if (oColl && oColl.length)
			{
				for (i = 0; i < oColl.length; i++)
				{
					oColl.item(i).style.display	=	(_hideMode[_node] == 'p') ? '' : 'none';
				}
			}
			if (_swap)
			{
				if (_imgf = $('img_page_' + _node + '_' + _id))
				{
					_imgf.name	=	(_imgf.name == 'c') ? 'o' : 'c'
					_imgf.src	=	theme_path  + treeImage[_node][_imgf.name]
				}
			}
			if (treeStruct && treeStruct[_node] && _hideMode && _node && _hideMode[_node] == 'm')
			{
				if (treeStruct[_node][_id] && treeStruct[_node][_id].length)
				{
					var k;
					for (k = 0; k < treeStruct[_node][_id].length; k++)
					{
						mb_displayTree(treeStruct[_node][_id][k], _node, _swap)
					}
				}
			}
		}
		bclick =	true;
		return false;
	}	
	
	
	function	mb_displayTree_alt(_id)
	{
		if (_id)
		{
			if (_img = $('image_' + _id))
			{
				_img.name	=	(_img.name == 'p') ? 'm' : 'p'
				_hideMode	=	(_hideMode != null) ? _hideMode : _img.name
				_img.src	=	(_hideMode == 'p') ? theme_path  + 'images/-.gif' : theme_path  + 'images/+.gif'
			}
			var oColl	=	document.getElementsByName('page_' + _id);
			if (oColl && oColl.length)
			{
				for (i = 0; i < oColl.length; i++)
				{
					oColl.item(i).style.display	=	(_hideMode == 'p') ? '' : 'none';
				}
			}
//			if (_imgf = $('img_page_' + _id))
//			{
//				_imgf.name	=	(_imgf.name == 'c') ? 'o' : 'c'
//				_imgf.src	=	(_imgf.name == 'o') ? theme_path  + 'images/icon.page_active.gif' : theme_path + 'images/icon.page_passive.gif'
//			}
			if (treeStruct && _hideMode == 'm')
			{
				if (treeStruct[_id] && treeStruct[_id].length)
				{
					var k;
					for (k = 0; k < treeStruct[_id].length; k++)
					{
						mb_displayTree(treeStruct[_id][k])
					}
				}
			}
		}
		bclick =	true;
		return false;
	}
	function	mb_checkSubmit(_form, _message)
	{
		if (_form)
		{
			if (isAnyChecked(_form))
			{
				return	confirm(_message)
			}
		}
		return	false;
	}
	function	updateSelection (_form, _name, _target)
	{
		if (_form)
		{
			var	oColl		=	_form.elements;
			var _chkStatus	=	true;
			if (oColl && oColl.length)
			{
				for (i=0; i<oColl.length; i++)
				{
					var oObject	=	oColl.item(i);
					if (oObject && oObject.name.indexOf(_name) != -1 && oObject.type == "checkbox")
					{
						_chkStatus	=	(oObject.checked) ? _chkStatus : false;
					}
				}
			}
			if (_form[_target])
			{
				_form[_target].checked	=	_chkStatus;
			}
			return true;
		}
	}
	function	checkAll (_form, _name, _mode)
	{
		if (_form)
		{
			var	oColl	=	_form.elements;
			if (oColl && oColl.length)
			{
				for (i=0; i<oColl.length; i++)
				{
					var oObject	=	oColl.item(i);
					if (oObject && oObject.name.indexOf(_name) != -1 && oObject.type == "checkbox")
					{
						oObject.checked = _mode;
					}
				}
			}
			return true;
		}
	}
	function	isAnyChecked(_form)
	{
		if (_form)
		{
			var	oColl	=	_form.elements;
			if (oColl && oColl.length)
			{
				for (i=0; i<oColl.length; i++)
				{
					var oObject	=	oColl.item(i);
					if (oObject && oObject.type == "checkbox")
					{
						if (oObject.checked)
						return true;
					}
				}
			}
		}
		return false;
	}

	/**
	 * Администрирование языков: статус языка поменялся.
	 */
	function onLanguagesFlagsChanged(object) {
		if (!object || !object.id) return;

		lang = object.id.substr(11,2);

		checkInterface = $("edit_langs["+lang+"][l_interface]");
		checkActive    = $("edit_langs["+lang+"][l_active]");
		radioDefault   = $("edit_langs[l_default]["+lang+"]");

		if (!checkInterface || !checkActive) return;

		enableDefault = checkInterface.checked && checkActive.checked;

		radioDefault.disabled = !enableDefault;
	}

	/**
	 * Администрирование языков. смена статуса языка при его редактировании
	 */
	function onAddLanguageFlagsChanged() {
		form = $('lang_admin_edit_language_form');
		if (!form || !form['edit_language[l_default]'] || 
			!form['edit_language[l_active]'] || !form['edit_language[l_interface]']) return;

		form['edit_language[l_default]'].disabled = !(form['edit_language[l_active]'].checked && form['edit_language[l_interface]'].checked)
	}

	/**
	 * Администрирование, конфигурация сайта. Восстановление настроек по умолчанию для формы
	 */
	function setDefaultValues() {
		form = $("configForm");

		if (!form) return;

		for (groupKey in configDefaultValues) {
			for (itemKey in configDefaultValues[groupKey]) {

				formItem = form.elements["fd["+groupKey+"]["+itemKey+"]"];
			
				if (!formItem) continue;

				// @todo add other supported types
				if (formItem.type=="text"    || 
					formItem.type=="textarea" ) 
				{
					formItem.value=configDefaultValues[groupKey][itemKey];
				}
			}
		}
	}

	/**
	 * Переключение видимости элементов. 
	 * При включении элемента предыдущий видимый прячется
	 */
	var toggleItemVisibilityObject = null;

	function toggleItemVisibility(id) {
		object = document.getElementById(id);
		if (!object) return;

		if (toggleItemVisibilityObject && toggleItemVisibilityObject!=object)
			toggleItemVisibilityObject.style.display = "none";

		object.style.display = object.style.display?"":"none";
	
		toggleItemVisibilityObject = object;
	}

	/**
	 * Переключение видимости панелей для tabctrl в настройках сайта
	 */
	var toggleTabVisibilityTab = null;

	function toggleTabVisibility(tabObj, id) {
		if (toggleItemVisibilityObject==document.getElementById(id)) return;

		toggleItemVisibility(id);

		if (toggleTabVisibilityTab)
			toggleTabVisibilityTab.className="tabctrl_tab";

		toggleTabVisibilityTab = tabObj;
		toggleTabVisibilityTab.className="tabctrl_tab_active";
	}

	/**
	 * указатель мыши над вкладкой таба
	 */
	function onTabMouseOver(tabObj, over) {
		if (toggleTabVisibilityTab == tabObj) return;

		if (over)
			tabObj.className="tabctrl_tab_over";
		else
			tabObj.className="tabctrl_tab";
	}

	/**
	 * Раскрытие/свёртывание дерева для Content
	 */
	function toggleTreeElement(object, subitems_id) 
	{
		subitems = document.getElementById(subitems_id);
		if (!subitems) return false;

		bShow = subitems.style.display.length;
		subitems.style.display = bShow?"":"none";
		object.src   = imagesDir+(bShow?"-.gif":"+.gif");
		object.title = bShow?collapseTitle:expandTitle;
		object.alt   = bShow?collapseTitle:expandTitle;
		return false;
	}

	/**
	 * Select/unselect all messages in mailbox
	 */
	function selectAll(form, check)
	{
		if (!form || !form.elements || !form.elements.length) return;

		for (i=0; i<form.elements.length; i++)
		{
			var oObject	=	form.elements.item(i);
			if (oObject && oObject.type == "checkbox")
			{
				oObject.checked = check;
			}
		}
		return true;
	}