var BasicDom = function(dom) {
  var _dom = dom;

  var _isDomTreeValid = (function() {
    for (var el in _dom) {
      if (el && !_dom[el].tagName) {
        return;
      }
    }
    return true;
  })();

  if (!_isDomTreeValid) { throw "DomTree empty or nor valid"; }

  /* Set CSS attributes  */
  var _css = function(prop) {
    var _styles = [];

    for (var p in prop) {
      if (p) { _styles.push(p + ":" + prop[p] + ";"); }
    }

    var style = _styles.join(" ");
    for (var el in _dom) {
      if (el) {
        try {_dom[el].style.cssText = style;}
        catch (ex) { }
        try {_dom[el].style.color = red;}
        catch (ex) { }
      }
    }
    return this;
  };

  /*  Set object inner html value */
  var _innerHtml = function(o, v) {
    var _invalid = ["COL", "COLGROUP", "FRAMESET", "HTML", "STYLE",
                            "TABLE", "TBODY", "TFOOT", "THEAD", "TITLE", "TR"].join();

    if (_invalid.indexOf(o.tagName) < 0) {
      try { o.innerHTML = v; }
      catch (ex) { }
    }
  };

  /* Set html content */
  var _html = function(txt) {
    for (var el in _dom) {
      if (el) { _innerHtml(_dom[el], txt); }
    }
    return this;
  };

   /**
  * @return Function Css
  * @return Function Html
  * @return Boolean Is Dom Tree Valid?
  * @return Object Dom tree
  **
  *  */
  return {
    Css: _css,
    Html: _html,
    Reverse: _reverse,
    Capitalize: _capitalize,
    IsValid: _isDomTreeValid,
    Dom: _dom
  };
};