﻿function cp_GetElement(id) {

    var elm;
    if (document.getElementById) { // DOM3 = IE5, NS6
            elm = document.getElementById(id);
       }
    if (!elm) {
        try {

          //  elm = document.getElementById(id);
            elm = eval('document.all.' + id);
        }
        catch (e) {
        
            }
    }
    return elm;
}
function cp_ShowHide(id, show) {
    var elm = cp_GetElement(id);
    if (elm) {
        if (show) {
            elm.style.display = 'block';
        } else {
            elm.style.display = 'none';
        }
    }
}
function cp_CollapseOrExpand(panelid, buttondownid, buttonupid, stateid) {
    var stateelm = cp_GetElement(stateid);
    if (!stateelm)
        return;
    var expand = stateelm.value == 'false';
    cp_ShowHide(panelid, expand);
    cp_ShowHide(buttondownid, !expand);
    cp_ShowHide(buttonupid, expand);
    stateelm.value = expand;
}
function cp_GetValue(id) {
    
    var elm;
    elm = cp_GetElement(id);

    if (elm) return elm.value; 
    else return null;
}
function cp_SetValue(id, v) {
    var elm = cp_GetElement(id);
    if (elm) elm.value = v;
}
function cp_SetInnerHTML(id, v) {
    var elm = cp_GetElement(id);
    if (elm)
        elm.innerHTML = v;
}
function cp_SetClass(id, v) {
    var elm = cp_GetElement(id);
    if (elm)
        elm.className = v;
}
function cp_selecttab(hiddentabid, hiddenpageid, tabid, pageid, tabclassname, seltabclasname) {
    var curtabid = cp_GetValue(hiddentabid);
    if (curtabid)
        cp_SetClass(curtabid, tabclassname);
    var curpageid = cp_GetValue(hiddenpageid);
    if (curpageid)
        cp_ShowHide(curpageid, false);
    cp_ShowHide(pageid, true);
    cp_SetClass(tabid, seltabclasname);
    cp_SetValue(hiddentabid, tabid);
    cp_SetValue(hiddenpageid, pageid);
    return false;
}
function cp_EnableControl(id, enabled) {
    var control = cp_GetElement(id);
    if (control)
        control.disabled = !enabled;
    return false;
}

function cp_SetPosition(id, sender, aligncenter) {
    //move id to element id_sender
    var elm_sender;
    if (typeof sender == "string")
        elm_sender = cp_GetElement(sender);
    else
        elm_sender = sender;
    var pos = cp_GetPosition(elm_sender);

    var clientH = 0, clientW = 0, offsetT = 0, offsetL = 0;
    if (typeof window.innerHeight != "undefined") { clientH = window.innerHeight; clientW = window.innerWidth; }
    else if (document.documentElement && document.documentElement.clientHeight) { clientH = document.documentElement.clientHeight; clientW = document.documentElement.clientWidth; }
    else if (document.body.clientHeight) { clientH = document.body.clientHeight; clientW = document.body.clientWidth; }
    else { clientH = parent.clientHeight; clientW = parent.clientWidth; };
    //
    if (typeof pageYOffset != "undefined") { offsetT = pageYOffset; offsetL = pageXOffset; }
    else if (document.documentElement && document.documentElement.scrollTop) { offsetT = document.documentElement.scrollTop; offsetL = document.documentElement.scrollLeft; }
    else if (document.body && typeof document.body.scrollTop != "undefined") { offsetT = document.body.scrollTop; offsetL = document.body.scrollLeft; }
    else { offsetT = 0; offsetL = 0; };
    var elm = cp_GetElement(id);

    elm.style.display = 'block';
    elm.style.position = 'absolute';

    elm.style.marginBottom = 0;
    elm.style.marginLeft = 0;
    elm.style.marginRight = 0;
    elm.style.marginTop = 0;

    var elmW = elm.offsetWidth;
    var elmH = elm.offsetHeight;
    var top = pos[1];
    var left = pos[0];

    if (aligncenter) {
        elm.style.position = 'fixed';
        offsetT = 0;
        offsetL = 0;
        top = (clientH/2) - (elmH / 2);
        left = (clientW/2) - (elmW / 2);
    } else {
        elm.style.position = 'absolute';
    }
    
    if ((top + elmH) > (clientH + offsetT))
        top = clientH + offsetT - elmH;
    if (top < offsetT)
        top = offsetT;
    if ((left + elmW) > (clientW + offsetL))
        left = clientW + offsetL - elmW;
    if (left < offsetL)
        left = offsetL;

    elm.style.left = left + 'px';
    elm.style.top = top + 'px';

    return [elm.style.left, elm.style.top];
}

function cp_ShowPopup(id, grayBackgroundID, visibleID, show) {
    cp_ShowHide(id, show);
    cp_ShowHide(grayBackgroundID, show);
    cp_SetValue(visibleID, show ? true : false);
    return false;
}
function cp_AbsolutePopupOpen(id, sender, elmPosTopID, elmPosLeftID, grayBackgroundID, visibleID, aligncenter) {
    cp_ShowPopup(id, grayBackgroundID, visibleID, true);
    pos = cp_SetPosition(id, sender, aligncenter);
    cp_SetValue(elmPosTopID, pos[1]);
    cp_SetValue(elmPosLeftID, pos[0]);
}

function cp_AbsolutePopupClose(id, grayBackgroundID, visibleID) {
    cp_ShowPopup(id, grayBackgroundID, visibleID, false);
}

function cp_GetPosition(elm) {
    var T = 0, L = 0;

    while (elm != null) {

        L += elm.offsetLeft;
        T += elm.offsetTop;
        elm = elm.offsetParent;
    }
    return [L, T];
}

