function getElement(elementId)/*:DomElement*/ {
	var result;
	try {
		if (typeof elementId == "string") {
			result = document.getElementById(elementId);
		} else if (typeof elementId == "object") {
			result = elementId;
		}
		if (!result) throw new Error("Элемент " + String(elementId).toString() + " не определен");
	} catch (e) {
		alert(e.toString());
	}

	return result;
}

function getFirstAncestor(element/*:DomElement*/, tagName/*:String*/)/*:DomElement*/ {
	while (element.parentNode.tagName) {
		if (element.parentNode.tagName.toUpperCase() == tagName.toUpperCase())
			return element.parentNode;
		element = element.parentNode;
	}
	return null;
}

function getElementsByTagName(element/*:DomElement*/, value/*:String*/)/*:Array*/ {
	if (element.tagName == value)
		var result = [element];
	else
		var result = [];

	if (element.childNodes)
		for (var i = 0; i < element.childNodes.length; i++) {
			var elements = getElementsByTagName(element.childNodes[i], value);
			for (var j = 0; j < elements.length; j++)
				result.push(elements[j]);
		}

	return result;
}

function removeElement (id/*:String*/ )/*:Void*/ {
	var e = document.getElementById(id);
	e.parentNode.removeChild(e);
}

var COMMON_JS = true;