var getako = function (url, add) {
  if (url instanceof Array) {
    var result = [];
    for (var i = 0; i < url.length; ++i) {
      result = result.concat(arguments.callee.call(this, url[i], add));
    }
    return getako.insertAddress([], result);
  }

  var all = getako.all, group;
  for (var i = url.length, j;
       i > 6;
       i = (j = url.lastIndexOf('/', i)) == i ? i - 1 : j) {
    if (group = all[url.substring(0, i + 1)]) {
      return group;
    }
  }
  return add ? [url] : [];
};

getako.insertAddress = function (a, b) {
  if (a == b) {
    return a;
  }
  var array = a.concat(b), result = [], before = {}, temp;
  for (var i = 0; i < array.length; ++i) {
    if (!before[temp = array[i]]) {
      before[temp] = true;
      result.push(temp);
    }
  }
  return result;
};

getako.all = [];

getako.loading = true;

window.tako3 = function (all) {
  var getako_all = getako.all;

  for (var i = 0; i < all.length; ++i) {
    var group = all[i].split(' ');
    for (var j = 0; j < group.length; ++j) {
      getako_all[group[j]] = getako_all[group[j]]
        ? getako.insertAddress(getako_all[group[j]], group)
        : group;
    }
  }

  delete getako.loading;
};
