function gridHighlight(obj,defClass,UID,force) {
	
	var myid = obj.id;	
	var pattern = /r(\d+)c(\d+)/;
	if ( force ) {
		new_class = (force ? "DataTD_high" : "DataTD_"+defClass);
	} else {
		new_class = (obj.className=="DataTD_"+defClass ? "DataTD_high" : "DataTD_"+defClass);
	}
	obj.className = new_class;
	pattern.exec(myid);
	row_id = RegExp.$1;
	list = obj.parentNode.getElementsByTagName("TD");
	for (i=0;i<list.length;i++) {
		pattern.exec(list[i].id);
		if (RegExp.$1==row_id) {
			list[i].className = new_class;
		}
	}
}

function gridInitOverlap(UID, id) {
	var body = document.getElementById(id).parentNode;
	txt = '<table style="position:absolute;display:none;background-color:white;z-index:10;" id="overlap'+UID+'" cellspacing="0" cellpadding="0"><tr><td>&nbsp;</td></tr></table>';
	body.innerHTML = txt + body.innerHTML;
	return document.getElementById('overlap'+UID);
}
function gridToggleOverlap(UID, id) {
	id = (id ? id : "gridTable"+UID );
	target = document.getElementById(id);
	if (target) {
		sHeight = target.scrollHeight;
		sWidth  = target.scrollWidth;
		overlap = document.getElementById("overlap"+UID);
		overlap = (overlap ? overlap : gridInitOverlap(UID, id));
		overlapChild = overlap.getElementsByTagName('TD')[0];
		if (overlap) {
			overlap.style.opacity = (0.5);
			overlap.style.MozOpacity = (0.5);
			overlap.style.KhtmlOpacity = (0.5);
			overlap.style.filter = "alpha(opacity=" + 50 + ")";
			overlap.style.height = target.scrollHeight;
			overlap.style.width = target.scrollWidth;
			// unterelemente
			if (overlapChild) {
				overlapChild.style.height = sHeight;
				overlapChild.style.width = sWidth;
				overlap.style.height = sHeight;
				overlap.style.width = sWidth;
			}
			overlap.style.display = (overlap.style.display=="none" ? "block" : "none");
		}
	}
}

function gridSubmit(UID, overlay) {
	if (overlay) {
		gridToggleOverlap(UID);
	} else {
		if (document.forms["grid"+UID].onsubmit) {
			document.forms["grid"+UID].onsubmit();
		}
	}
	document.forms["grid"+UID].submit();
}

function gridOrder(col,UID) {
	if (col==document.forms["grid"+UID]["o"+UID].value) {
		dir = (document.forms["grid"+UID]["d"+UID].value==1 ? 0 : 1);
	} else {
		dir = document.forms["grid"+UID]["d"+UID].value;
	}
	document.forms["grid"+UID]["o"+UID].value=col;
	document.forms["grid"+UID]["d"+UID].value=dir;
	gridSubmit(UID);
}
function gridBack(UID) {
	cur = parseInt(document.forms["grid"+UID]["p"+UID].value);
	if (cur>1) {
		gridPage(cur-1,UID);
	}
}
function gridNext(pages,UID) {
	cur = parseInt(document.forms["grid"+UID]["p"+UID].value);
	if (cur<pages) {
		gridPage(cur+1,UID);
	}
}
function gridPage(page,UID) {
	document.forms["grid"+UID]["p"+UID].value=page;
	gridSubmit(UID);
}

function gridEvent(event,paravalue,UID) {
	document.forms["grid"+UID]["a"+UID].value = paravalue;
	document.forms["grid"+UID]["e"+UID].value = event;
	gridSubmit(UID);
	document.forms["grid"+UID]["a"+UID].value = "";
	document.forms["grid"+UID]["e"+UID].value = "";
}

function gridReset(UID) {
	// reset all grid parameters
	document.forms["grid"+UID]["p"+UID].value = "";
	document.forms["grid"+UID]["o"+UID].value = "";
	document.forms["grid"+UID]["d"+UID].value = "";
	// reset filter parameters + submit form
	gridFilterReset(UID);
}

function gridFilterReset(UID) {
	// reset filters
	var gridForm=document.forms["grid"+UID];
	var prefix="f"+UID;
	for (i=0;i<gridForm.length;i++) {
		if (gridForm[i].name.substr(0,prefix.length)==prefix) {
			gridForm[i].value="";
		}
	}
	gridSubmit(UID);
}