/**
 * Script:  C3DataGrid.js
 * Desc:    Client-Side DHTML functions used by the C3DataGrid Control.
 */


// Execute function when document readystate changes.
document.attachEvent('onreadystatechange',C3DataGrid_Initialize);
//addEvent(document, "readystatechange", C3DataGrid_Initialize);
//addEvent(window, "load", C3DataGrid_Initialize);
//document.onreadystatechange=C3DataGrid_Initialize;


function C3DataGrid_Initialize() {

//alert('C3DataGrid_Initialize - document.readyState='+document.readyState);

    // Ensure document is completely loaded.
    if (document.readyState != "complete") return;

    // Retrieve collection of all table elements.
    if (!document.getElementsByTagName) return;
    oTbls = document.getElementsByTagName("table");

    // Find all C3DataGrid tables and adjust width if necessary.
    for (nIdx=0; nIdx < oTbls.length; nIdx++) {
        oTbl = oTbls[nIdx];
        if ((oTbl.getAttribute("C3DataGridTable") == 'Yes') && (oTbl.id)) {
            C3DataGrid_CheckWidth(oTbl, document.all(oTbl.id+'_DGInnerContainer'));
        }
    }
}


function C3DataGrid_CheckWidth(oTbl,oDiv) {

    // If not ScrollBars present for fixed-height Grid, then reset
    // table width to be the same as the inner container width.
    if (oDiv.scrollHeight <= oDiv.offsetHeight) { 
        oTbl.style.width = oDiv.style.width;
    }
}


function C3DataGrid_ToggleSelect(oTR) {

    // get reference to selected indexes text field.  this is stored in the TABLE
    // attributes, so we need to do a parentElement.parentElement (TR.TBODY.TABLE).
    var sCtlName = oTR.parentElement.parentElement.getAttribute('DGSelectedIndexTBName');
    var oIndexes = document.getElementById(sCtlName);
    var sHTML = "";
    
    // Toggle datagrid row selection.
    if (oTR.getAttribute('DGIsSel') == 'true') {

        // deselect item.
        oTR.className = oTR.getAttribute('DGClass');
        oTR.setAttribute('DGIsSel', 'false', 0);
        oIndexes.value = oIndexes.value.replace(oTR.getAttribute('DGIdx') + ',', '');
        sHTML = oTR.parentElement.parentElement.getAttribute('DGHtmlUnSelected');

    } else {

        // select item.
        var sClassSel = oTR.parentElement.parentElement.getAttribute('DGClassSelected');
        if (sClassSel!="") oTR.className = sClassSel;
        oTR.setAttribute('DGIsSel', 'true', 0);
        oIndexes.value = oIndexes.value + oTR.getAttribute('DGIdx') + ',';
        sHTML = oTR.parentElement.parentElement.getAttribute('DGHtmlSelected');

    }

    // reset multiselect icon based upon selection - loop through all columns
    // searching for the "DGSelInd" attribute which denotes it's the indicator column.
    for (var i=0;i<oTR.cells.length;i++) {
        var cell = oTR.cells[i];
        if (cell.getAttribute("DGSelInd") == 'true') {
            sHTML = sHTML.replace('!lt;','<');
            sHTML = sHTML.replace('!gt;','>');
            cell.innerHTML = sHTML;
            i = 99;
        }
    }


}

