public/javascripts/yui/datatable/datatable.js
function (oColumn, aAddClasses) {
    var allClasses;
    
    // Add CSS classes
    if(lang.isString(oColumn.className)) {
        // Single custom class
        allClasses = [oColumn.className];
    }
    else if(lang.isArray(oColumn.className)) {
        // Array of custom classes
        allClasses = oColumn.className;
    }
    else {
        // no custom classes
        allClasses = [];
    }
    
    // Hook for setting width with via dynamic style uses key since ID is too disposable
    allClasses[allClasses.length] = this.getId() + "-col-" +oColumn.getSanitizedKey();

    // Column key - minus any chars other than "A-Z", "a-z", "0-9", "_", "-", ".", or ":"
    allClasses[allClasses.length] = "yui-dt-col-" +oColumn.getSanitizedKey();

    var isSortedBy = this.get("sortedBy") || {};
    // Sorted
    if(oColumn.key === isSortedBy.key) {
        allClasses[allClasses.length] = isSortedBy.dir || '';
    }
    // Hidden
    if(oColumn.hidden) {
        allClasses[allClasses.length] = DT.CLASS_HIDDEN;
    }
    // Selected
    if(oColumn.selected) {
        allClasses[allClasses.length] = DT.CLASS_SELECTED;
    }
    // Sortable
    if(oColumn.sortable) {
        allClasses[allClasses.length] = DT.CLASS_SORTABLE;
    }
    // Resizeable
    if(oColumn.resizeable) {
        allClasses[allClasses.length] = DT.CLASS_RESIZEABLE;
    }
    // Editable
    if(oColumn.editor) {
        allClasses[allClasses.length] = DT.CLASS_EDITABLE;
    }
    
    // Addtnl classes, including First/Last
    if(aAddClasses) {
        allClasses = allClasses.concat(aAddClasses);
    }
    
    return allClasses.join(' ');  
}
function (oColumn, aAddClasses) {
    var allClasses;
    
    // Add CSS classes
    if(lang.isString(oColumn.className)) {
        // Single custom class
        allClasses = [oColumn.className];
    }
    else if(lang.isArray(oColumn.className)) {
        // Array of custom classes
        allClasses = oColumn.className;
    }
    else {
        // no custom classes
        allClasses = [];
    }
    
    // Hook for setting width with via dynamic style uses key since ID is too disposable
    allClasses[allClasses.length] = this.getId() + "-col-" +oColumn.getSanitizedKey();

    // Column key - minus any chars other than "A-Z", "a-z", "0-9", "_", "-", ".", or ":"
    allClasses[allClasses.length] = "yui-dt-col-" +oColumn.getSanitizedKey();

    var isSortedBy = this.get("sortedBy") || {};
    // Sorted
    if(oColumn.key === isSortedBy.key) {
        allClasses[allClasses.length] = isSortedBy.dir || '';
    }
    // Hidden
    if(oColumn.hidden) {
        allClasses[allClasses.length] = DT.CLASS_HIDDEN;
    }
    // Selected
    if(oColumn.selected) {
        allClasses[allClasses.length] = DT.CLASS_SELECTED;
    }
    // Sortable
    if(oColumn.sortable) {
        allClasses[allClasses.length] = DT.CLASS_SORTABLE;
    }
    // Resizeable
    if(oColumn.resizeable) {
        allClasses[allClasses.length] = DT.CLASS_RESIZEABLE;
    }
    // Editable
    if(oColumn.editor) {
        allClasses[allClasses.length] = DT.CLASS_EDITABLE;
    }
    
    // Addtnl classes, including First/Last
    if(aAddClasses) {
        allClasses = allClasses.concat(aAddClasses);
    }
    
    return allClasses.join(' ');  
}
function ( oColumn , aAddClasses ) { var allClasses ; // Add CSS classes if ( lang . isString ( oColumn . className ) ) { // Single custom class allClasses = [ oColumn . className ] ; } else if ( lang . isArray ( oColumn . className ) ) { // Array of custom classes allClasses = oColumn . className ; } else { // no custom classes allClasses = [ ] ; } // Hook for setting width with via dynamic style uses key since ID is too disposable allClasses [ allClasses . length ] = this . getId ( ) + "-col-" + oColumn . getSanitizedKey ( ) ; // Column key - minus any chars other than "A-Z", "a-z", "0-9", "_", "-", ".", or ":" allClasses [ allClasses . length ] = "yui-dt-col-" + oColumn . getSanitizedKey ( ) ; var isSortedBy = this . get ( "sortedBy" ) || { } ; // Sorted if ( oColumn . key === isSortedBy . key ) { allClasses [ allClasses . length ] = isSortedBy . dir || '' ; } // Hidden if ( oColumn . hidden ) { allClasses [ allClasses . length ] = DT . CLASS_HIDDEN ; } // Selected if ( oColumn . selected ) { allClasses [ allClasses . length ] = DT . CLASS_SELECTED ; } // Sortable if ( oColumn . sortable ) { allClasses [ allClasses . length ] = DT . CLASS_SORTABLE ; } // Resizeable if ( oColumn . resizeable ) { allClasses [ allClasses . length ] = DT . CLASS_RESIZEABLE ; } // Editable if ( oColumn . editor ) { allClasses [ allClasses . length ] = DT . CLASS_EDITABLE ; } // Addtnl classes, including First/Last if ( aAddClasses ) { allClasses = allClasses . concat ( aAddClasses ) ; } return allClasses . join ( ' ' ) ; }
DOM MUTATION FUNCTIONS 
Retruns classnames to represent current Column states.
@method _getColumnClassnames
@param oColumn {YAHOO.widget.Column} Column instance.
@param aAddClasses {String[]} An array of additional classnames to add to the
return value.
@return {String} A String of classnames to be assigned to TH or TD elements
for given Column.
@private
DOM MUTATION FUNCTIONS Retruns classnames to represent current Column states .