﻿function Common_ShowParentsByTag(elSrc, tagName, elTopLevel) {
	var tagNameLC = tagName.toLowerCase();
	var elItem = elSrc.parentNode;
	while (elItem != null) {
		if (elItem.tagName.toLowerCase() == tagNameLC) Common_Show(elItem);
		if (elItem == elTopLevel) break;
		elItem = elItem.parentNode;
	}
}

function Common_HideDescendantsByTag(elSrc, tagName) {
	var tagNameLC = tagName.toLowerCase();
	var arElDesc = elSrc.getElementsByTagName(tagName);
	for (var i=0; i<arElDesc.length; i++) {
		var elDesc = arElDesc[i];
		if (elDesc.tagName && (elDesc.tagName.toLowerCase() == tagNameLC)) Common_Hide(elDesc);
	}
}

function Common_HideSiblingsByTag(elSrc, tagName) {
	var elParent = elSrc.parentNode;
	for (var i=0; i<elParent.childNodes.length; i++) {
		var elSibling = elParent.childNodes[i];
		if (elSibling != elSrc) Common_HideChildrenByTag(elSibling, tagName);
	}
}

function Common_ClearSiblingClassByTag(elSrc, tagName) {
	var tagNameLC = tagName.toLowerCase();
	var elParent = elSrc.parentNode;
	for (var i=0; i<elParent.childNodes.length; i++) {
		var elSibling = elParent.childNodes[i];
		if ((elSibling != elSrc) && (elSibling.tagName.toLowerCase() == tagNameLC)) elSibling.className = "";
	}
}

function Common_HideChildrenByTag(elSrc, tagName) {
	var tagNameLC = tagName.toLowerCase();
	for (var i=0; i<elSrc.childNodes.length; i++) {
		var elChild = elSrc.childNodes[i];
		if (elChild.tagName && (elChild.tagName.toLowerCase() == tagNameLC)) Common_Hide(elChild);
	}
}

function Common_ShowChildrenByTag(elSrc, tagName) {
	var tagNameLC = tagName.toLowerCase();
	for (var i=0; i<elSrc.childNodes.length; i++) {
		var elChild = elSrc.childNodes[i];
		if (elChild.tagName && (elChild.tagName.toLowerCase() == tagNameLC)) Common_Show(elChild);
	}
}

function Common_ToggleChildrenByTag(elSrc, tagName) {
	var tagNameLC = tagName.toLowerCase();
	for (var i=0; i<elSrc.childNodes.length; i++) {
		var elChild = elSrc.childNodes[i];
		if (elChild.tagName && (elChild.tagName.toLowerCase() == tagNameLC)) Common_Toggle(elChild);
	}
}

function Common_Has(obj) {
	var el = (typeof(obj) == "string") ? Common_Get(obj) : obj;
	return (el.innerHTML.length > 0);
}

function Common_Set(obj, visible) {
	if (visible) {
		Common_Show(obj);
	} else {
		Common_Hide(obj);
	}
}

function Common_Show(obj) {
	var el = (typeof(obj) == "string") ? Common_Get(obj) : obj;
	el.style.display = "";
}

function Common_Hide(obj) {
	var el = (typeof(obj) == "string") ? Common_Get(obj) : obj;
	el.style.display = "none";
}

function Common_Toggle(obj) {
	var el = (typeof(obj) == "string") ? Common_Get(obj) : obj;
	el.style.display = (el.style.display == "") ? "none" : "";
}

function Common_IsHidden(obj) {
	var el = (typeof(obj) == "string") ? Common_Get(obj) : obj;
	return (el.style.display == "none");
}

function Common_Get(id) {
	return document.getElementById(id);
}