var cn;
function hi(o) {cn=o.className; o.className='hover';}
function ho(o) {o.className=cn;}

function display(id, show)
{
	var obj = document.getElementById(id);
	if (obj)
		obj.style.display = (show) ? '' : 'none';
}
function display_invert(id)
{
	var obj = document.getElementById(id);
	if (obj)
		obj.style.display = (obj.style.display) ? '' : 'none';
}

var rows   = new Array();
var rowselected, rownormalclass, treeobject, mastereditor, detaileditor, tb_insert_menu, tb_print_menu, tb_master_disabled, tb_detail_disabled, tb_print;
function ar(no, id, selected)
{
	rows[no] = id;
	if (selected) sr(no);
}
function sr(no)
{
	if (rowselected && rowselected != no)
	{
		var row = document.getElementById('r' + rowselected);
		if (row && row.className == 'selected')
			row.className = rownormalclass;
		rownormalclass = '';
	}
	var row = document.getElementById('r' + no);
	if (row && row.className != 'selected')
	{
		rownormalclass = row.className
		row.className = 'selected';
		rowselected = no;
	}
	if (treeobject && treeobject.selectedNode)
	{
		//treeobject.h(treeobject.selectedNode);
		//treeobject.selectedNode = null;
	}
}
function or(url)
{
	window.location.href=url;
}

function er()
{
	if (rowselected && detaileditor && rows[rowselected])
	{
		tb_load_editor(detaileditor, rows[rowselected]);
	}
}
function tb_editselected()
{
	if (rowselected && detaileditor && rows[rowselected] && !tb_detail_disabled)
	{
		tb_load_editor(detaileditor, rows[rowselected]);
	}
	else 
	if (treeobject && (treeobject.selectedNode >=0) && mastereditor && mastereditor != 1)
	{
		var node = treeobject.aNodes[treeobject.selectedNode];
		if (node && node.id && !tb_master_disabled)
			tb_load_editor(mastereditor, node.id);
	}
}

function tb_deleteselected()
{
	var form = document.forms['toolbar']
	if (!form)  return;
	if (rowselected && detaileditor && rows[rowselected] && !tb_detail_disabled)
	{
		if (confirm("Подтвердите удаление"))
		{
			form.elements['action'].value = 'delete';
			form.elements['source'].value = 'table';
			form.elements['object'].value = rows[rowselected];
			form.submit();
		}
	}
	else
	if (treeobject && treeobject.selectedNode && mastereditor)
	{
		var node = treeobject.aNodes[treeobject.selectedNode];
		if (node && node.id && !tb_master_disabled && confirm("Подтвердите удаление"))
		{
			form.elements['action'].value = 'delete';
			form.elements['source'].value = 'tree';
			form.elements['object'].value = node.id;
			form.submit();
		}
	}
}

function tb_load_editor(url, id, parent_id)
{
	if (url.indexOf('?') != -1)
		url = url + '&id=' + id;
	else
		url = url + '?id=' + id;
	if (parent_id)
		url += '&parent_id=' + parent_id;
	window.location=url;
}
function tb_insert() // Простой insert, срабатывет либо для таблицы, либо для дерева, там, где есть Editor
{
	if (detaileditor)
		tb_insert_detail();
	else 
		 tb_insert_master()
}

function tb_insert_detail()
{
	if (detaileditor)
	{
		var parent_id;
		if (treeobject && treeobject.selectedNode && 
			treeobject.aNodes[treeobject.selectedNode])
			parent_id = treeobject.aNodes[treeobject.selectedNode].id;
		tb_load_editor(detaileditor, 'new', parent_id);
	}
}

function tb_insert_master()
{
	if (mastereditor)
		tb_load_editor(mastereditor, 'new');
}
var timer, what_to_hide;
function performhide()
{
  what_to_hide.style.display='none';
}
function canhide(o)
{
  timer = setTimeout("performhide()", 250)
  what_to_hide = o;
}
function donthide(o)
{
  clearTimeout(timer)
}


function tb_insertpopup(obj, event) // Insert с меню
{
	if (window.event)
	{
		var x = (event.clientX - event.offsetX) - 4;
		var y = (event.clientY - event.offsetY) + 18;
	}
	else
	{
		var x = event.pageX - 1;
		var y = event.pageY - 1;
	}

	var popup = document.getElementById('insertpopup');
	if (!popup) return;
	if (popup.style.display == '')
	{
		popup.style.display = 'none';
		return;
	}

	popup.style.left = x;
	popup.style.top = y;
	var html = '';
	for (var i = 0; i < tb_insert_menu.length; i++)
	{
		html += '<p>' + tb_insert_menu[i] + '</p>'
	}
	popup.innerHTML = html;
	popup.style.display = '';
	if (popup.focus)
		popup.focus();
}

function tb_printpopup(obj, event) // Insert с меню
{
    if (navigator.appName.match('Microsoft'))
	{
		var x = (event.clientX - event.offsetX) - 4;
		var y = (event.clientY - event.offsetY) + 18;
	}
	else
	{
		var x = (event.pageX);
		var y = (event.pageY) + 18;
	}
	var popup = document.getElementById('printpopup');
	if (!popup) return;
	if (popup.style.display == '')
	{
		popup.style.display = 'none';
		return;
	}

	popup.style.left = x;
	popup.style.top = y;
	var html = '';
	for (var i = 0; i < tb_print_menu.length; i++)
	{
		if (tb_print_menu[i])
			html += '<p>' + tb_print_menu[i] + '</p>';
	}
	popup.innerHTML = html;
	popup.style.display = '';
	if (popup.focus)
		popup.focus();
}

function tb_move_by(by)
{
	var form = document.forms['toolbar'];
	if (!form)  return;
	if (rowselected && detaileditor && rows[rowselected])
	{
		form.elements['action'].value = by;
		form.elements['source'].value = 'table';
		form.elements['object'].value = rows[rowselected];
		form.submit();
	}
	else 
	if (treeobject && treeobject.selectedNode && mastereditor && !tb_master_disabled && treeobject.aNodes[treeobject.selectedNode])
	{
		form.elements['action'].value = by;
		form.elements['source'].value = 'tree';
		form.elements['object'].value = treeobject.aNodes[treeobject.selectedNode].id;
		form.submit();
	}
}

function _dialog(url, w, h)
{
	var p = 'menubar=no,toolbar=no,location=no,resizable=yes,scrollbars=yes,status=no,' + 
		'height=' + h + ',width=' + w + ',left=' + ((window.screen.width - w) / 2) + ',top=' + ((window.screen.height - h) / 2);
	return _nw(url, 'dialog', p);
}

function _report(url)
{
	var p = 'menubar=yes,toolbar=no,location=no,status=yes,resizable=yes,scrollbars=yes';
	return _nw(url, 'report', p);
}

var sch_show, sch_url;
function ShowDelayed(url)
{
 sch_url = url;
 clearInterval(sch_show);
 sch_show = setInterval(function(){clearInterval(sch_show);window.location=sch_url}, 500);
}
function _nw(url, t, p) { return window.open(url,t,p); }

