/**
 * Функция делает распечатку массива ( объекта ), как в PHP
 */
function print_r(array, return_val) {
  var output = "", pad_char = " ", pad_val = 4;

  var formatArray = function (obj, cur_depth, pad_val, pad_char) {
    if(cur_depth > 0)
      cur_depth++;

    var base_pad = repeat_char(pad_val * cur_depth, pad_char);
    var thick_pad = repeat_char(pad_val * (cur_depth + 1), pad_char);
    var str = "";

    if(obj instanceof Array || obj instanceof Object) {
      str += "Array\n" + base_pad + "(\n";
      for(var key in obj) {
        if(obj[key] instanceof Array || obj[key] instanceof Object) {
          str += thick_pad + "[" + key + "] => " + formatArray(obj[key], cur_depth + 1, pad_val, pad_char);
        } else {
          str += thick_pad + "[" + key + "] => " + obj[key] + "\n";
        }
      }
      str += base_pad + ")\n";
    } else {
      str = obj.toString();
    }

    return str;
  }

  var repeat_char = function (len, char) {
    var str = "";
    for(var i = 0; i < len; i++) { str += char; }
    
    return str;
  };

  output = formatArray(array, 0, pad_val, pad_char);

  return output;
}

