﻿//Common public
function aGet(id) {
    var all = document.getElementsByTagName("*");
    for (var i = 0; i < all.length; i++) {
        if (all[i].id && all[i].id.length >= id.length && all[i].id.substring(all[i].id.length - id.length) == id) {
            return all[i];
        }
    }
    return undefined;
}

function addLoadEvent(func) {
    var oldonload = window.onload;
    if (typeof window.onload != 'function') {
        window.onload = func;
    } else {
        window.onload = function() {
            if (oldonload) {
                oldonload();
            }
            func();
        }
    }
}

function imposeMaxLengthType(obj, MaxLen) {
    return (obj.value.length < MaxLen);
}

function imposeMaxLengthChange(obj, MaxLen) {
    if (obj.value.length > MaxLen) {
        obj.value = obj.value.substring(0, MaxLen);
    }
    return true;
}

function disableTags(element, tagName, status) {
    var tagChildren = getChildrenByTag(element, tagName);
    for (var i = 0; i < tagChildren.length; i++) {
        tagChildren[i].disabled = status;
    }
}
function hideTags(element, tagName, status) {
    var tagChildren = getChildrenByTag(element, tagName);
    var visStatus;
    if (status) {
        visStatus = "hidden";
    }
    else {
        visStatus = "visible";
    }
    for (var i = 0; i < tagChildren.length; i++) {
        tagChildren[i].style.visibility = visStatus;
    }
}
function getParentByTag(element, tagName) {
    var parentObject = element.parentNode;
    if (parentObject.tagName.toLowerCase() == tagName.toLowerCase()) {
        return parentObject;
    }
    return getParentByTag(parentObject, tagName);
}
function getChildrenByTag(element, tagName) {
    var list = new Array();
    return getCBT(list, element, tagName);
}

//private
function getCBT(list, element, tagName) {
    for (var i = 0; i < element.childNodes.length; i++) {
        if (element.childNodes[i].tagName && element.childNodes[i].tagName.toLowerCase() == tagName.toLowerCase()) {
            list[list.length] = element.childNodes[i];
        }
        else {
            list = getCBT(list, element.childNodes[i], tagName);
        }
    }
    return list;
}

