function M3_FindInLayers(doc, name)
{
	var ret = null;
	var list = doc.layers;
	var l;
	for (var i = 0; i < list.length; i++)
	{
		l = list[i];
		ret = M3_FindInForms(l.document, name);
		if (ret != null) break;
	}
	return ret;
}
function M3_FindInForms(doc, name)
{
	var ret = null;
	var list = doc.forms;
	var item;
	var test;
	for (var i = 0; i < list.length; i++) {
		item = list[i];
		test = item.name;
		if (item.name == name
			|| item.id == name) {
			return item;
		}
		ret = M3_FindInElements(item, name);
		if (ret != null) break;
	}
	return ret;
}
function M3_FindInElements(f, name)
{
	var ret = null;
	var list = f.elements;
	var elm;
	if (f.name == name
		|| f.id == name) {
		return f;
	}
	for (var i = 0; i < list.length; i++) {
		elm = list[i];
		if (elm.name == name
			|| elm.id == name) {
			ret = elm;
			break;
		}
		if (elm.elements) {
			ret = M3_FindInElements(elm, name);
			if (ret != null) break;
		}
	}
	return ret;
}
function M3_GetElement(id)
{
	if (typeof(id) != "string") return id;
	var parentElement = (M3_GetElement.arguments.length > 1) ? M3_GetElement.arguments[1] : document;
	var elementObj = null;
	if (parentElement.all) {
		elementObj = parentElement.all[id];
	} else {
		if (document.getElementById) {
			elementObj = document.getElementById(id);
		}
		if (!elementObj && parentElement.forms) {
			elementObj = M3_FindInForms(parentElement, id);
		}
		if (!elementObj && parentElement.layers) {
			elementObj = M3_FindInLayers(parentElement, id);
		}
		if (!elementObj && parentElement.elements) {
			elementObj = M3_FindInElements(parentElement, id);
		}
	}
	return elementObj;
}
function M3_DoPostBackEx(b,f,action) {
	var elm = null;
	var elmF = null;
	if (f != null) {
		if (typeof(f) == "string") {
			elmF = document.forms[f];
		} else {
			elmF = f;
		}
	} else {
		if (document.forms.length > 0) elmF = document.forms[0];
	}
	if (elmF == null) return;
	if (action != null) {
		elm = M3_GetElement("__action", elmF);
		if (elm != null) elm.value = action;
	}
	elmF.submit();
	if (b != null) {
		if (typeof(b) == "string") {
			b = M3_GetElement(b, elmF);
		}
		b.disabled = true;
	}
}
function M3_DoPostBack(b) {
	var elm, action;
	if (!b) return;
	if (!b.form) return;
	elm = b.form.__action;
	if (elm) {
		action = b.name;
		if (!action) action = b.id;
		if (action) elm.value = action;
	}
	b.form.submit();
	b.disabled = true;
}

