//highlight rows in a grid view
function setRowColorOn(oRow, clickable) {
    Dea.Css.addClass(oRow, "highlightColor");
    if (clickable == true)
        oRow.style.cursor = "hand";
}
//removes the highlight of rows in grid view
function setRowColorOff(oRow) {
    Dea.Css.removeClass(oRow, "highlightColor");
}

function selectRow(oRowToSelect, sd) {
    if (!oRowToSelect.parentNode)
        return;

    clearAllRows(oRowToSelect.parentNode.childNodes);
    Dea.Css.addClass(oRowToSelect, "selectedColor");
    sData = sd;
}

//clears background color on rows of gridview
function clearAllRows(oRows) {
    for (i = 0; i < oRows.length; i++) {
        Dea.Css.removeClass(oRows[i], "selectedColor");
    }
}

function selectRowForMultiple(oRowToSelect, sd, sCheckBoxId, e) {
    var checkbox = Dea.Get(sCheckBoxId);
    if (!checkbox.disabled) {
        if (Dea.browser.target(e).tagName == "INPUT") {
            if (!checkbox.checked) {
                Dea.Css.removeClass(oRowToSelect, "selectedColor");
            }
            else {
                Dea.Css.addClass(oRowToSelect, "selectedColor");
                sData = sd;
            }
        }
        else {
            if (!checkbox.checked) {
                checkbox.checked = "checked";
                Dea.Css.addClass(oRowToSelect, "selectedColor");
            }
            else {
                checkbox.checked = "";
                Dea.Css.removeClass(oRowToSelect, "selectedColor");
            }
        }
    }
}


//Called if we need to select a row in gridview at start up
function selectRowById(sId) {
    oRowToSelect = getObj(sId);
    oLastRow = oRowToSelect;
    Dea.Css.addClass(oRowToSelect, "selectedColor");
}   

Dea.Grid = function() { };
Dea.Grid.sort = function (c, g, sortColumn, sortDirection) {
    var oCC = Dea.Get(sortColumn);
    var oCD = Dea.Get(sortDirection);
    if (oCC && oCD) {
        if (c === oCC.value) {
            if (oCD.value === 'ASC')
                oCD.value = 'DESC';
            else
                oCD.value = 'ASC';
        }
        else {
            oCC.value = c;
            oCD.value = 'ASC';
        }
        
        Dea.setEmsData();
        Dea.makeCallback('sort' + g);
    }
}

Dea.Grid.emsGroupByChanged = function (c, g, groupById) {
    var oCGB = Dea.Get(groupById);
    if (oCGB) {
        if (c == oCGB.value)
            return;

        oCGB.value = c;
    }

    Dea.setEmsData();
    Dea.makeCallback('groupByChanged' + g);
}