// my attempt to read the order in this table UGH
function saveTableOrder(categoryName){
	// reorder hidden input boxes in first column of table
	var tr = document.getElementById('editedRecords' + categoryName).rows;
	var td = null;
	var count = 1;
	// start at row 1, because row 0 is a heading
	for (var rowNum = 1; rowNum < tr.length; ++rowNum) {
		td = tr[rowNum].cells;
		td[0].childNodes[0].value = count++;
	}
	// submit this form to the server to be saved.
	submitQueryToServer('editedRecordsForm' + categoryName ,'database-application.php');
}


var current = null;
var dragTarget = null;
var dragState = false;

function toggleCurrent(row) {
	if(current) current.className = current.className.replace(/\bactive\b/g, ' ');
	(current = row).className += ' active';
}
function toggleTarget(row) {
	if(dragTarget) dragTarget.className = dragTarget.className.replace(/\btarget\b/g, ' ');
	dragTarget = row;
	if(row) row.className += ' target';
}
function cancelEvent(e) {
	try {
		e.preventDefault();
		e.stopPropagation();
	}
	catch (exception) {
		e.returnValue = false;
	}
	return false;
}
function getRow(e) {
	var target = e.target;
	while(target && !/^tr$/i.test(target.nodeName)) {
		target = target.parentNode;
	}
	if(!target || !target.className || target.className.indexOf('draggable') == -1) return;
	return target;
}

if(!document.addEventListener) { // IIIEEEE!!!
	document.addEventListener = function(type, handler) {
		document.attachEvent('on'+type, function(e) {
			e.target = e.srcElement;
			return handler(e);
		});
	}
}
document.addEventListener('mousedown', 
	function(e){
		var target = getRow(e);
		if(target) {
			toggleCurrent(target);
			dragState = true;
			return cancelEvent(e);
		}
	},
	false);
document.addEventListener('mousemove', 
	function(e){
		if(!dragState) return;
		toggleTarget(getRow(e));
		return cancelEvent(e);
		},
	false);
document.addEventListener('mouseup', 
	function(e) {
		if(dragState && current && dragTarget) dragTarget.parentNode.insertBefore(current, dragTarget);
		dragState = false;
		toggleTarget(false);
	},
	false);
