function insertTableRow(idTable) {
    var theTable = document.getElementById(idTable);
	var row1a = theTable.rows[1];
    var newCell;
    var newRow = theTable.insertRow(-1);

    for (var i = 0; i < row1a.cells.length; i++) {
        newCell = newRow.insertCell(i);
        newCell.innerHTML = row1a.cells[i].innerHTML.replace(/(nextElement)/g, (theTable.rows.length - 3));
    }

	return (theTable.rows.length - 3);
}

function delTableRow(row){
	var idTable = getObjectRecursivly(row, "table").id;
	var rowIndex = getObjectRecursivly(row, "tr").rowIndex;
	var theTable = document.getElementById(idTable);
	theTable.rows[rowIndex].style.display="none";
}

function toUp(e, limit) {
	var evt = (e || event);
	var src = (evt.srcElement || evt.target);
	var tr = getObjectRecursivly(src, "tr");
	var rowIndex = (!limit ? 0 : limit);

	if ((tr.rowIndex - 1) < rowIndex)
		return 1;

	var table = getObjectRecursivly(src, "table");
	var tmp = table.insertRow(tr.rowIndex - 1);

	while (tr.cells.length > 0)
		tmp.appendChild(tr.cells[0]);

	table.deleteRow(tr.rowIndex);
	return (tmp.rowIndex - (rowIndex - 1));
}

function toDown(e, limit) {
	var evt = (e || event);
	var src = (evt.srcElement || evt.target);
	var table = getObjectRecursivly(src, "table");
	var tr = getObjectRecursivly(src, "tr");
	var rowIndex = (!limit ? table.rows.length : limit);

	if ((tr.rowIndex + 1) == rowIndex)
		return (tr.rowIndex - 1);

	var tmp = table.insertRow(tr.rowIndex + 2);

	while (tr.cells.length > 0)
		tmp.appendChild(tr.cells[0]);

	table.deleteRow(tr.rowIndex);
	return (tmp.rowIndex - 1);
}

function getObjectRecursivly(obj, tagName){
	if (obj.tagName.toUpperCase() == tagName.toUpperCase())
		return obj;

	return getObjectRecursivly(obj.parentNode, tagName);
}

