Your IP : 172.28.240.42


Current Path : /var/www/html/clients/old.e-nkama.ru/e-nkama_bitrix/bitrix/modules/main/public/
Upload File :
Current File : /var/www/html/clients/old.e-nkama.ru/e-nkama_bitrix/bitrix/modules/main/public/menu_edit.php

<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_js.php");

$bFileMan = CModule::IncludeModule('fileman');
if (!$bFileMan)
	die();

if($bFileMan && !$USER->CanDoOperation('fileman_edit_menu_elements'))
	$APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));

CUtil::JSPostUnescape();

IncludeModuleLangFile(__FILE__);

$addUrl = 'lang='.LANGUAGE_ID.($logical == "Y"?'&logical=Y':'');

$strWarning = "";
$menufilename = "";

$site = CFileMan::__CheckSite($site);
$DOC_ROOT = CSite::GetSiteDocRoot($site);

while(($l=strlen($path))>0 && $path[$l-1]=="/")
	$path = substr($path, 0, $l-1);

$path = Rel2Abs("/", $path);
$arParsedPath = CFileMan::ParsePath(Array($site, $path), true, false, "", $logical == "Y");

$menufilename = $path;

$bExists = false;
$arTypes = Array();
$armt = GetMenuTypes($site, "left=".GetMessage("MENU_EDIT_LEFT_MENU").",top=".GetMessage("MENU_EDIT_TOP_MENU"));

foreach($armt as $key => $title)
{
	if(!$USER->CanDoFileOperation('fm_edit_existent_file', Array($site, $path."/.".$key.".menu.php")))
		continue;
		
	$arTypes[] = array($key, $title);
	if($key == $name)
		$bExists = true;
}
if(!$bExists) 
	$name = $arTypes[0][0];

if(strlen($name)>0)
	$menufilename = $path."/.".$name.".menu.php";

$abs_path = $DOC_ROOT.$menufilename;

if(file_exists($abs_path) && strlen($new)<=0)
	$bEdit = true;
else
	$bEdit = false;

$extended = 'Y';
$bSimple = false;

$arPath_m = Array($site, $menufilename);
$only_edit = !$USER->CanDoOperation('fileman_add_element_to_menu') || !$USER->CanDoFileOperation('fm_create_new_file',$arPath_m);

/******* POST **********/
//ïðîâåðèì ïðàâà íà äîñòóï â ýòó ïàïêó
if($bFileMan && !$USER->CanDoOperation('fileman_edit_existent_files') || !$USER->CanDoFileOperation('fm_edit_existent_file',$arPath_m) ||
(!$bEdit && $only_edit))
	$strWarning = GetMessage("ACCESS_DENIED");
else
{
	if($REQUEST_METHOD=="POST" && $_REQUEST['save'] == 'Y')
	{
		if (!is_array($ids)) $ids = array();
	
		$arValues = $_POST;

		$res = CFileMan::GetMenuArray($abs_path);
		if($bSimple)
		{
			$aMenuLinksTmp = $res["aMenuLinks"];
			$sMenuTemplateTmp = $res["sMenuTemplate"];
		}
		else
		{
			$aMenuLinksTmp = $res["aMenuLinks"];
			$aMenuLinksTmp_ = Array();
		}

		//ñîáåðåì $aMenuLinksTmp èç òîãî ÷òî ïðèøëî ñ ôîðìû
		$aMenuSort = Array();
		for($i=0; $i<count($ids); $i++)
		{
			$num = $ids[$i];
			if (!isset($aMenuLinksTmp[$num-1]) && $only_edit)
				continue;
			
			if(${"del_".$num}=="Y" && !$only_edit)
				continue;

			$aMenuItem = Array($arValues["text_".$num], $arValues["link_".$num]);

			if ($arValues['additional_params_'.$num])
				$arAdditionalParams = @unserialize($arValues['additional_params_'.$num]);
			else
				$arAdditionalParams = array(array(), array());
			
			$aMenuItem = array_merge($aMenuItem, $arAdditionalParams);
			
			/*
			$arAddLinks = Array();
			$additional_link = $arValues["additional_link_".$num];
			$arAddLinksTmp = explode("\n", $additional_link);
			for($j=0; $j<count($arAddLinksTmp); $j++)
			{
				if(strlen(trim($arAddLinksTmp[$j]))>0)
					$arAddLinks[] = trim($arAddLinksTmp[$j]);
			}
			$aMenuItem[] = $arAddLinks;

			$arParams = Array();
			$param_cnt = IntVal(${"param_cnt_".$num});
			for($j=1; $j<=IntVal($param_cnt); $j++)
			{
				$param_name = trim($arValues["param_name_".$num."_".$j]);
				$param_value = trim($arValues["param_value_".$num."_".$j]);
				if(strlen($param_name)>0 || strlen($param_value)>0)
					$arParams[$param_name]=$param_value;
			}
			$aMenuItem[] = $arParams;
			*/
			
			$aMenuLinksTmp_[] = $aMenuItem;
			$aMenuSort[] = IntVal(${"sort_".$num});
		}

		$aMenuLinksTmp = $aMenuLinksTmp_;

		for($i=0; $i<count($aMenuSort)-1; $i++)
			for($j=$i+1; $j<count($aMenuSort); $j++)
				if($aMenuSort[$i]>$aMenuSort[$j])
				{
					$tmpSort = $aMenuLinksTmp[$i];
					$aMenuLinksTmp[$i] = $aMenuLinksTmp[$j];
					$aMenuLinksTmp[$j] = $tmpSort;

					$tmpSort = $aMenuSort[$i];
					$aMenuSort[$i] = $aMenuSort[$j];
					$aMenuSort[$j] = $tmpSort;
				}
				
		//echo '<pre>'; print_r($aMenuLinksTmp); echo '</pre>';
		//die();
		//òåïåðü $aMenuLinksTmp ïðÿìî â òàêîì ãîòîâîì âèäå, ÷òî õîòü ìåíþ ðèñóé :-)
		if (!check_bitrix_sessid())
		{
			$strWarning = GetMessage('MENU_EDIT_SESSION_EXPIRED');
		}
		else
		{
			CFileMan::SaveMenu(Array($site, $menufilename), $aMenuLinksTmp, $sMenuTemplateTmp);
	
			if($e = $APPLICATION->GetException())
				$strWarning = $e->GetString();
	
			if($strWarning == '')
			{
				$bEdit = true;
		?>
<script bxrunfirst="true">
top.BX.WindowManager.Get().Close();
top.BX.showWait();
top.BX.reload('<?=CUtil::JSEscape($back_url);?>', true);
</script>
<?
				die();
			}
		}
	}
}
/******* /POST **********/

$arMenuTypes = GetMenuTypes($site);

$TITLE = GetMessage("MENU_EDIT_TITLE_".($bEdit ? "EDIT" : "ADD"));
$DESCRIPTION = str_replace(
	array("#TYPE#", "#DIR#"),
	array(strlen($arMenuTypes[$name]) > 0 ? $arMenuTypes[$name] : $name, $path.'/'),
	GetMessage("MENU_EDIT_DESCRIPTION_".($bEdit ? "EDIT" : "ADD"))
);

$obJSPopup = new CJSPopup('', 
	array(
		'TITLE' => GetMessage('MENU_EDIT_TITLE'),
		'ARGS' => "lang=".urlencode($_GET["lang"])."&site=".urlencode($_GET["site"])."&back_url=".urlencode($_GET["back_url"])."&path=".urlencode($_GET["path"])."&name=".urlencode($_GET["name"])
	)
);

// ======================== Show titlebar ============================= //
$obJSPopup->ShowTitlebar();
?>
<script src="/bitrix/js/main/dd.js" type="text/javascript"></script>

<?
// ======================== Show description ============================= //
$obJSPopup->StartDescription('bx-core-edit-menu');
?>
<p><b><?=$TITLE?></b></p>
<p class="note"><?=$DESCRIPTION?>
</p><p>
<a href="/bitrix/admin/fileman_menu_edit.php?<?="lang=".urlencode($_GET["lang"])."&site=".urlencode($_GET["site"])."&back_url=".urlencode($_GET["back_url"])."&path=".urlencode($_GET["path"])."&name=".urlencode($_GET["name"])?>"><?=GetMessage('MENU_EDIT_OLD_STYLE')?></a>
</p>
<?
if($strWarning <> "")
{
	//ShowError($strWarning);
	//echo '<script>jsPopup.ShowError(\''.CUtil::JSEscape($strWarning).'\')</script>';
	$obJSPopup->ShowValidationError($strWarning);
}
?>

<?
// ======================== Show content ============================= //
$obJSPopup->StartContent();
?>
<style type="text/css">
div.bx-core-dialog-content div.bx-menu-current-row {background-color: #EAF8DF !important;}
div.bx-core-dialog-content div.view-area {white-space: nowrap; overflow: hidden; width: 220px; padding: 2px; display: block; cursor: text; -moz-box-sizing: border-box; -webkit-box-sizing:border-box; background-position: right center; background-repeat: no-repeat; border: 1px solid white;}
div.bx-core-dialog-content div.bx-menu-current-row div.edit-field {border: 1px solid #EAF8DF !important; background-color: #EAF8DF !important;}
div.bx-core-dialog-content div.bx-menu-current-row div.edit-field-active {border-color: #434B50 #ADC0CF #ADC0CF #434B50 !important; background-color: white !important;}
</style>
<?
if($bEdit && strlen($strWarning)<=0)
{
	$res = CFileMan::GetMenuArray($abs_path);
	$aMenuLinksTmp = $res["aMenuLinks"];
	//echo '<pre>'; print_r($aMenuLinksTmp); echo '</pre>';
}

if(!is_array($aMenuLinksTmp))
	$aMenuLinksTmp = Array();
?>
	<input type="hidden" name="save" value="Y" />
	<table border="0" cellpadding="2" cellspacing="0" class="bx-width100 internal" class="menu-table">
	<thead>
		<tr class="heading">
			<td width="0"></td>
			<td width="50%"><b><?echo GetMessage("MENU_EDIT_NAME")?></b></td>
			<td width="50%"><b><?echo GetMessage("MENU_EDIT_LINK")?></b></td>
			<td width="0"></td>
			<td width="0"></td>
			<td width="0"></td>
			<td width="0"></td>
		</tr>
	</thead>
	</table>
	
	<div id="bx_menu_layout" class="bx-menu-layout"><?
	$itemcnt = 0;
	for($i=1; $i<=count($aMenuLinksTmp); $i++):
		$itemcnt++;
		$aMenuLinksItem = $aMenuLinksTmp[$i-1];
	?><div class="bx-menu-placement" id="bx_menu_placement_<?=$i?>"><div class="bx-edit-menu-item" id="bx_menu_row_<?=$i?>"><table border="0" cellpadding="2" cellspacing="0" class="bx-width100 internal" class="menu-table"><tbody>
	<tr>
		
		<td><input type="hidden" name="sort_<?=$i?>" value="<?echo $i*10?>" />
		<input type="hidden" name="ids[]" value="<?=$i?>" />
		<input type="hidden" name="del_<?=$i?>" value="N" />
		<input type="hidden" name="additional_params_<?=$i?>" value="<?=htmlspecialcharsex(serialize(array($aMenuLinksItem[2], $aMenuLinksItem[3], $aMenuLinksItem[4])))?>" />
		<span class="rowcontrol drag" title="<?=GetMessage('MENU_EDIT_TOOLTIP_DRAG')?>"></span>
		</td>
		</td><td>
			<div onmouseout="rowMouseOut(this)" onmouseover="rowMouseOver(this)" class="edit-field view-area" id="view_area_text_<?=$i?>" style="width: 220px; padding: 2px; display: block; border: 1px solid white; cursor: text; -moz-box-sizing: border-box; background-position: right center; background-repeat: no-repeat;" onclick="editArea('text_<?=$i?>')" title="<?=GetMessage('MENU_EDIT_TOOLTIP_TEXT_EDIT')?>"><?=strlen($aMenuLinksItem[0]) > 0 ? htmlspecialchars($aMenuLinksItem[0]) : GetMessage('MENU_EDIT_JS_NONAME')?></div>
			<div class="edit-area" id="edit_area_text_<?=$i?>" style="display: none;"><input type="text" style="width: 220px;" name="text_<?echo $i?>" value="<?=htmlspecialchars($aMenuLinksItem[0])?>" onblur="viewArea('text_<?=$i?>')" />
</div>
		</td>
		<td>
			<div onmouseout="rowMouseOut(this)" onmouseover="rowMouseOver(this)" class="edit-field view-area" id="view_area_link_<?=$i?>" style="width: 220px; padding: 2px; display: block; border: 1px solid white; cursor: text; -moz-box-sizing: border-box; background-position: right center; background-repeat: no-repeat;" onclick="editArea('link_<?=$i?>')" title="<?=GetMessage('MENU_EDIT_TOOLTIP_LINK_EDIT')?>"><?=strlen($aMenuLinksItem[1]) > 0 ? htmlspecialchars($aMenuLinksItem[1]) : GetMessage('MENU_EDIT_JS_NONAME')?></div>
			<div class="edit-area" id="edit_area_link_<?=$i?>" style="display: none;"><input type="text" style="width: 220px;" name="link_<?echo $i?>" value="<?=htmlspecialchars($aMenuLinksItem[1])?>" onblur="viewArea('link_<?=$i?>')" /></div>
		</td>
		<td>
<?
CAdminFileDialog::ShowScript(
	Array
	(
		"event" => "OpenFileBrowserWindFile_".$i,
		"arResultDest" => Array("FUNCTION_NAME" => 'setLink'),
		"arPath" => Array("SITE" => $site, 'PATH' => $aMenuLinksItem[1]),
		"select" => 'F',// F - file only, D - folder only, DF - files & dirs
		"operation" => 'O',// O - open, S - save
		"showUploadTab" => false,
		"showAddToMenuTab" => false,
		"fileFilter" => 'php, html',
		"allowAllFiles" => true,
		"SaveConfig" => true
	)
);
?>
			<span onclick="if (!GLOBAL_bDisableActions) {currentLink = '<?=$i?>'; OpenFileBrowserWindFile_<?=$i?>();}" class="rowcontrol folder" title="<?=GetMessage('MENU_EDIT_TOOLTIP_FD')?>"></span>
		</td>
		<td><span onclick="menuMoveUp(<?=$i?>)" class="rowcontrol up" style="visibility: <?=($i == 1 ? 'hidden' : 'visible')?>" title="<?=GetMessage('MENU_EDIT_TOOLTIP_UP')?>"></span></td>
		<td><span onclick="menuMoveDown(<?=$i?>)" class="rowcontrol down" style="visibility: <?=($i == count($aMenuLinksTmp) ? 'hidden' : 'visible')?>" title="<?=GetMessage('MENU_EDIT_TOOLTIP_DOWN')?>"></span></td>
		<td><span onclick="menuDelete(<?=$i?>)" class="rowcontrol delete" title="<?=GetMessage('MENU_EDIT_TOOLTIP_DELETE')?>"></span></td>
	</tr>
	</tbody></table></div></div><?endfor?>
</div>
	<?if(!$only_edit):?><input type="button" onClick="menuAdd()" value="<?echo GetMessage("MENU_EDIT_ADD_ITEM")?>" /><?endif;?>
	<input type="hidden" name="itemcnt" value="<?echo $itemcnt?>" />
<script type="text/javascript">
var currentLink = -1;
var currentRow = null;

var GLOBAL_bDisableActions = false;
var GLOBAL_bDisableDD = false;

var jsMenuMess = {
	noname: '<?=CUtil::JSEscape(GetMessage('MENU_EDIT_JS_NONAME'))?>'
}

function setLink(filename, path, site)
{
	<?echo $obJSPopup->jsPopup?>.GetForm()['link_' + currentLink].value = (path == '' ? '/' : path + '/') + filename;
	editArea('link_' + currentLink, true);
	viewArea('link_' + currentLink, true);
}

function menuCheckIcons()
{
	var obLayout = BX('bx_menu_layout');

	for (var i = 0, num = obLayout.childNodes.length; i < num; i++)
	{
		if (
			obLayout.childNodes[i].tagName 
			&& obLayout.childNodes[i].tagName == 'DIV' 
			&& obLayout.childNodes[i].className == 'bx-menu-placement'
		)
		{
			var obTbody = obLayout.childNodes[i].firstChild.firstChild.tBodies[0];
		
			obTbody.rows[0].cells[4].firstChild.style.visibility = (i == 0 ? 'hidden' : 'visible');
			obTbody.rows[0].cells[5].firstChild.style.visibility = (i == num-1 ? 'hidden' : 'visible');
			obTbody.rows[0].cells[0].firstChild.value = 10 * (i+1);
		}
	}
}

function menuMoveUp(i)
{
	if (GLOBAL_bDisableActions)
		return;

	var obRow = BX('bx_menu_row_' + i);
	var obPlacement = obRow.parentNode;
	
	var index = obPlacement.id.substring(18);
	if (1 >= index)
		return;
	
	var obNewPlacement = obPlacement.previousSibling;
	var obSwap = obNewPlacement.firstChild;
	
	obPlacement.removeChild(obRow);
	obNewPlacement.removeChild(obSwap);
	obPlacement.appendChild(obSwap);
	obNewPlacement.appendChild(obRow);
	
	setCurrentRow(obRow);
	menuCheckIcons();
}

function menuMoveDown(i)
{
	if (GLOBAL_bDisableActions)
		return;

	var obRow = BX('bx_menu_row_' + i);
	var obPlacement = obRow.parentNode;
	var obNewPlacement = obPlacement.nextSibling;
	if (null == obNewPlacement)
		return;
	
	var obSwap = obNewPlacement.firstChild;
	
	obPlacement.removeChild(obRow);
	obNewPlacement.removeChild(obSwap);
	obPlacement.appendChild(obSwap);
	obNewPlacement.appendChild(obRow);
	
	setCurrentRow(obRow);
	menuCheckIcons();
}

function menuDelete(i)
{
	if (GLOBAL_bDisableActions)
		return;

	var obInput = <?echo $obJSPopup->jsPopup?>.GetForm()['del_' + i];
	var obPlacement = BX('bx_menu_row_' + i).parentNode;
	
	obInput.value = 'Y';

	if (obPlacement.firstChild == currentRow) currentRow = null;
	
	obPlacement = BX.remove(obPlacement);
	menuCheckIcons();
}

function menuAdd()
{
	var obCounter = <?echo $obJSPopup->jsPopup?>.GetForm().itemcnt;
	var nums = parseInt(obCounter.value);
	obCounter.value = ++nums;
	
	var obPlacement = BX.create('DIV', {props: {className: 'bx-menu-placement', id: 'bx_menu_placement_' + nums}});
	
	document.getElementById('bx_menu_layout').appendChild(obPlacement);
	
	var obRow = BX.create('DIV', {props: {className: 'bx-edit-menu-item', id: 'bx_menu_row_' + nums}});
	obPlacement.appendChild(obRow);

	<?
	ob_start();
	CAdminFileDialog::ShowScript(
		Array
		(
			"event" => "OpenFileBrowserWindFile____NUMS___",
			"arResultDest" => Array("FUNCTION_NAME" => 'setLink'),
			"arPath" => Array("SITE" => $site, 'PATH' => $path),
			"select" => 'F',// F - file only, D - folder only, DF - files & dirs
			"operation" => 'O',// O - open, S - save
			"showUploadTab" => false,
			"showAddToMenuTab" => false,
			"fileFilter" => 'php, html',
			"allowAllFiles" => true,
			"SaveConfig" => true
		)
	);
	$out = ob_get_contents();
	ob_end_clean();
	$out = trim($out);
	$unscript_pos = strpos($out, '</script>');
	$out = substr($out, 8, $unscript_pos-8);
	$out = trim($out);
	
	$out = CUtil::JSEscape($out);
	$out = str_replace('___NUMS___', "' + nums + '", $out);
	echo 'eval(\''.$out.'\');';
?>
	
	var arCellsHTML = [
		'<span class="rowcontrol drag" title="<?=CUtil::JSEscape(GetMessage('MENU_EDIT_TOOLTIP_DRAG'))?>"></span>',
		getAreaHTML('text_' + nums, '', '<?=CUtil::JSEscape(GetMessage('MENU_EDIT_TOOLTIP_TEXT_EDIT'))?>'),
		getAreaHTML('link_' + nums, '', '<?=CUtil::JSEscape(GetMessage('MENU_EDIT_TOOLTIP_LINK_EDIT'))?>'),
		'<span onclick="if (!GLOBAL_bDisableActions) {currentLink = \'' + nums + '\'; OpenFileBrowserWindFile_' + nums + '();}" class="rowcontrol folder" title="<?=CUtil::JSEscape(GetMessage('MENU_EDIT_TOOLTIP_FD'))?>"></span>',
		'<span onclick="menuMoveUp(' + nums + ')" class="rowcontrol up" style="visibility: ' + (nums == 1 ? 'hidden' : 'visible') + '" title="<?=CUtil::JSEscape(GetMessage('MENU_EDIT_TOOLTIP_UP'))?>"></span>',
		'<span onclick="menuMoveDown(' + nums + ')" class="rowcontrol down" style="visibility: hidden" title="<?=CUtil::JSEscape(GetMessage('MENU_EDIT_TOOLTIP_DOWN'))?>"></span>',
		'<span onclick="menuDelete(' + nums + ')" class="rowcontrol delete" title="<?=CUtil::JSEscape(GetMessage('MENU_EDIT_TOOLTIP_DELETE'))?>"></span>'
	];
	
	var row_content = '<table border="0" cellpadding="2" cellspacing="0" class="bx-width100 internal" class="menu-table"><tbody><tr>';
	
	for (var i = 0; i < arCellsHTML.length; i++)
	{
		//var obCell = obRow.insertCell(-1);
		//obCell.innerHTML = arCellsHTML[i];
		row_content += '<td>' + arCellsHTML[i] + '</td>';
	}
	
	row_content += '</tr></tbody></table>';
	
	obRow.innerHTML = row_content;

	var arInputs = [
		['ids[]', nums],
		['del_' + nums, 'N'],
		['sort_' + nums, 2 * nums * 10]
	];

	for (var i = 0; i<arInputs.length; i++)
	{
		var obInput = BX.create('INPUT', {
			props: {type: 'hidden', name: arInputs[i][0], value: arInputs[i][1]}
		});
	
		obInput.value = arInputs[i][1];
		var obFirstCell = obRow.firstChild.tBodies[0].rows[0].cells[0];
		obFirstCell.insertBefore(obInput, obFirstCell.firstChild);
	}

	jsDD.registerDest(obPlacement);
	
	obRow.onbxdragstart = BXDD_DragStart;
	obRow.onbxdragstop = BXDD_DragStop;
	obRow.onbxdraghover = BXDD_DragHover;

	jsDD.registerObject(obRow);

	//setCurrentRow(i);
	//ResetDD();
	setCurrentRow(nums);
	menuCheckIcons();

	//var obScroller = document.getElementById('bx_popup_content');
	//obScroller.scrollTop = jsUtils.IsIE() ? obScroller.scrollHeight : 10000;
	
	
	//document.getElementById('bx_popup_content').scrollTop = 10000;
}

function getAreaHTML(area, value, title)
{
	if (null === value) value = '';

	return '<div onmouseout="rowMouseOut(this)" onmouseover="rowMouseOver(this)" class="edit-field view-area" style="width: 220px; padding: 2px; display: block; border: 1px solid white; cursor: text; -moz-box-sizing: border-box; background-position: right center; background-repeat: no-repeat;" id="view_area_' + area + '" onclick="editArea(\'' + area + '\')" title="' + title + '">' + (value ? value : jsMenuMess.noname) + '</div>' +
			'<div class="edit-area" id="edit_area_' + area + '" style="display: none;"><input type="text" style="width: 220px;" name="' + area + '" value="' + value + '" onblur="viewArea(\'' + area + '\')" /></div>';
}

var currentEditingRow = null;

function editArea(area, bSilent)
{
	if (GLOBAL_bDisableActions)
		return;
		
	jsDD.Disable();
	GLOBAL_bDisableDD = true;
	
	jsDD.allowSelection();
	l = BX('bx_menu_layout');
	l.ondrag = l.onselectstart = null;
	l.style.MozUserSelect = '';

	if (null == bSilent) bSilent = false;

	var obEditArea = BX('edit_area_' + area);
	var obViewArea = BX('view_area_' + area);
	
	obEditArea.style.display = 'block';
	obViewArea.style.display = 'none';
	
	if (!bSilent) 
	{
		obEditArea.firstChild.focus();

		if (BX.browser.IsIE())
			setTimeout(function () {setCurrentRow(obViewArea.parentNode.parentNode.parentNode.parentNode.parentNode)}, 30);
		else
			setCurrentRow(obViewArea.parentNode.parentNode.parentNode.parentNode.parentNode);
	}
	
	return obEditArea;
}

function viewArea(area, bSilent)
{
	if (GLOBAL_bDisableActions)
		return;

	jsDD.Enable();
	GLOBAL_bDisableDD = false;

	l = BX('bx_menu_layout');
	l.ondrag = l.onselectstart = BX.False;
	l.style.MozUserSelect = 'none';
	
	if (null == bSilent) bSilent = false;
	
	var obEditArea = BX('edit_area_' + area);
	var obViewArea = BX('view_area_' + area);
	
	obEditArea.firstChild.value = BX.util.trim(obEditArea.firstChild.value);
	
	obViewArea.innerHTML = '';
	BX.adjust(obViewArea, {text:obEditArea.firstChild.value.length > 0 ? obEditArea.firstChild.value : jsMenuMess.noname})
	
	obEditArea.style.display = 'none';
	obViewArea.style.display = 'block';
	
	currentEditingRow = null;
	setCurrentRow(obViewArea.parentNode.parentNode.parentNode.parentNode.parentNode);
	
	return obViewArea;
}

function setCurrentRow(i)
{
	i = BX(i);
	
	if (null != currentRow) BX.removeClass(currentRow, 'bx-menu-current-row')

	BX.addClass(i, 'bx-menu-current-row');
	currentRow = i;
}

function rowMouseOut(obArea)
{
	//obArea.className = obArea.className.replace('edit-field-active ', '');
	//BX.toggleClass(obArea, ['edit-field', 'edit-field-active']);
	obArea.className = 'edit-field view-area';
	obArea.style.backgroundColor = '';
}

function rowMouseOver (obArea)
{
	if (GLOBAL_bDisableActions || jsDD.bPreStarted)
		return;

	//BX.toggleClass(obArea, ['edit-field', 'edit-field-active']);
	obArea.className = 'edit-field-active view-area';
	obArea.style.backgroundColor = 'white';
}

/* DD handlers */

function BXDD_DragStart()
{
	if (GLOBAL_bDisableDD)
		return false;
	
	//this.className = 'bx-edit-menu-item bx-edit-menu-drag';
	this.BXOldPlacement = this.parentNode;
	
	var id = this.id.substring(12);
	rowMouseOut(viewArea('link_' + id));
	rowMouseOut(viewArea('text_' + id));
	
	GLOBAL_bDisableActions = true;
	
	return true;
}

function BXDD_DragStop()
{
	//this.className = 'bx-edit-menu-item';
	this.BXOldPlacement = false;
	
	setTimeout('GLOBAL_bDisableActions = false', 50);
	
	return true;
}

function BXDD_DragHover(obPlacement, x, y)
{
	if (GLOBAL_bDisableDD)
		return false;

	if (obPlacement == this.BXOldPlacement)
		return false;
	
	var obSwap = obPlacement.firstChild;
	
	this.BXOldPlacement.removeChild(this);
	obPlacement.removeChild(obSwap);
	this.BXOldPlacement.appendChild(obSwap);
	obPlacement.appendChild(this);
	
	this.BXOldPlacement = obPlacement;
	
	menuCheckIcons();
	
	return true;
}

BX.ready(function () 
{
	jsDD.Reset();

<?
for($i=1; $i<=count($aMenuLinksTmp); $i++):
?>
	jsDD.registerDest(BX('bx_menu_placement_<?=$i?>'));
	
	var obEl = BX('bx_menu_row_<?=$i?>');
	obEl.onbxdragstart = BXDD_DragStart;
	obEl.onbxdragstop = BXDD_DragStop;
	obEl.onbxdraghover = BXDD_DragHover;
	jsDD.registerObject(obEl);
<?
endfor;
?>
	jsDD.registerContainer(BX('bx_popup_content'));
	l = BX('bx_menu_layout');
	l.ondrag = l.onselectstart = BX.False;
	l.style.MozUserSelect = 'none';
});
</script>
<?
// ======================== Show buttons ============================= //
$obJSPopup->ShowStandardButtons();
?>
<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin_js.php");
?>