﻿function CDDL_ToggleShowHide(id, selectedStyle) {
    var ddl = document.getElementById(id + "_ddl");
    var thisDD = document.getElementById(id);
    if (!ddl) return;
    var parentTD = ddl.parentNode;

    otherDDs = searchDDs(parentTD, id);
    for (i = 0; i < otherDDs.length; i++) {
        var dd = document.getElementById(otherDDs[i].id + '_ddl');
        if (dd.style.display != 'none') {
            otherDDs.push(thisDD);
            undarkAll(parentTD, otherDDs);
            closeDDs(otherDDs);
            return;
        }
    }

    if (ddl.style.display == 'none') {
        CDDL_DrawDropDownContent(id, selectedStyle);
        ddl.style.display = '';

        // Darken background
        parentTD.className = parentTD.className + ' darkened_bg';

        // Darken other dropdowns
        for (i = 0; i < otherDDs.length; i++) {
            otherDDs[i].className = otherDDs[i].className + ' darkened_dd';
        }

        // Lighten dd
        if (thisDD) {
            var tmp_arr = thisDD.className.split(' ');
            thisDD.className = tmp_arr[0];
        }
    }
    else {
        ddl.style.display = 'none';
        undarkAll(parentTD, otherDDs);
    }
}

function closeDDs(dds) {
    for (i = 0; i < dds.length; i++) {
        var ddl = document.getElementById(dds[i].id + "_ddl");
        if (ddl && ddl.style.display != 'none') {
            ddl.style.display = 'none';
        }
    }
}

function searchDDs(parentTD, id) {
    // Searching for other dds
    var innerElems = parentTD.childNodes;
    var otherDDs = new Array();
    for (i = 0; i < innerElems.length; i++) {
        if (innerElems[i].tagName == 'TABLE' && innerElems[i].id != id)
            otherDDs.push(innerElems[i]);
    }
    return otherDDs;
}

function undarkAll(parentTD, otherDDs) {
    // Undarken background
    var tmp_arr = parentTD.className.split(' ');
    parentTD.className = tmp_arr[0];

    // Undarken other dropdowns
    for (i = 0; i < otherDDs.length; i++) {
        var tmp_arr = otherDDs[i].className.split(' ');
        otherDDs[i].className = tmp_arr[0];
    }
}

function findLeft(obj) {
    if (!obj) return 0;
    return obj.offsetLeft + findLeft(obj.offsetParent);
}
function findTop(obj) {
    if (!obj) return 0;
    return obj.offsetTop + findTop(obj.offestParent);
}
function CDDL_DrawDropDownContent(id, selectedStyle) {
    var ddl = document.getElementById(id + "_ddl");
    var p = document.getElementById(id);
    ddl.top = findTop(p) + p.clientHeight;
    ddl.left = findLeft(p);
}
function CDDL_ApplyStyle(obj, style) {    
    obj.className = style;
}
function FocusDDImage(id) {
    var img = document.getElementById(id + "_img");    
    img.focus();
}
function PostBack(id, index) {
    __doPostBack(id, index);
}
function SetText(sel_obj, id, autopostback) {
    var tb = document.getElementById(id + "_tb");
    if (tb) tb.innerHTML = sel_obj.innerHTML;    
    var p = sel_obj.parentNode;
    var index = -1;
    var pchildren = p.getElementsByTagName("DIV");    
    for (var i = 0; i < pchildren.length; i++)
    {
        if (pchildren[i] == sel_obj)
            index = i;
    }
    var val = document.getElementById(id + "_val");
    if (val) {
        //if (val.value != index) {
            val.value = index;
            if (autopostback)
                PostBack(id, index);
        //}
    }
    CDDL_ToggleShowHide(id);
}

/*function HideCheck(target, id) {
    while (target) {        
        if (target.id && target.id == id)
            break;
        target = target.parentNode;
    }
    alert(target);
    var ddl = document.getElementById(id + "_ddl");
    if (!target) {
        if (ddl) {
            ddl.style.display = 'none';

            //if(){
            otherDDs = searchDDs(ddl.parentNode, '');
            undarkAll(ddl.parentNode, otherDDs);
            //}
        }
    }
}*/
function HideCheck(target, ids) {

    var clickedDD = null;
    
    // Checking which dd was clicked
    while (target) {
        for (i = 0; i < ids.length; i++) {
            if (target.id && target.id == ids[i]) {
                clickedDD = document.getElementById(ids[i]);
            }
        }
        target = target.parentNode;
    }

    // if missed remove darkness
    if (!clickedDD) {
        var parentTD = document.getElementById(ids[0]).parentNode;
        otherDDs = searchDDs(parentTD, '');
        undarkAll(parentTD, otherDDs);



        // Closing other dds
        for (i = 0; i < ids.length; i++) {
            var ddl = document.getElementById(ids[i] + "_ddl");
            if (ddl) {
                if ((clickedDD && clickedDD.id != ids[i]) || !clickedDD)
                    ddl.style.display = 'none';
            }
        }
    
    
    
    }

    

    //alert(clickedDD.id);
    
}