/**
  * Filter html elements by its correspondent class name
  * This will follow a recursive approach
  *
  * @return Object Dom Tree
*/
var getElementsByClassName = function(cls) {

  //elements array
  var _elems = [];

  /**
  * Walking down Dom Tree
  * Recursive Approach
  *
  * @param Object Node
  */
  (function(start_node) {
    if (!start_node) { start_node = document.body; }
    var node = "";

    for (var i = 0, count = start_node.childNodes.length; i < count; i++) {
      node = start_node.childNodes[i];

      if (node.hasChildNodes()) {
        arguments.callee(node); //recursive call
      }

      if (node.className && node.className.indexOf(cls) >= 0) {
        _elems.push(node);
      }
    }
  })();

  return _elems;
};