事前にカテゴリを三次元配列として用意して、for文で呼び出したhtmlがどのカテゴリに該当するか調べて、そのカテゴリに含まれているページを二次元配列(ページのURLとサムネイル)で返すというプログラムを作ろうとしています。

下のようなコードを書いたのですが、画面に表示される文字がURLではなく、undefinedになります。

どのようなコードを書けば良いのでしょうか?

ブラウザ : GoogleChrome
htmlのパス : file:///D:/user1234/Documents/フォルダ/ホームページ/parts/index.html
jsのパス : file:///D:/user1234/Documents/フォルダ/ホームページ/parts/○○.js

結果として、画面にparts/index.htmlと表示したいです。

index.html

<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>JavaScript 関連記事<title>
<script type="text/javascript" src="Category_list.js"></script>
<script type="text/javascript" src="Related_article.js"></script>
</head>

<body>

<script>
//ここで関数呼び出し
related_article("file:///D:/user1234/Documents/フォルダ/ホームページ/");
</script>

</body>
</html>

Category_list.js

function category_list() {
 var list = [
   [
     ["index.html", "parts/header_img.jpg"]
   ],
   [
     ["test/index.html", "test/foo.jpeg"],
     ["test/hogehoge/index.html", ""]
   ],
   [
     ["parts/index.html", "test/foo.jpeg"]
   ]
 ];

 return list;
}

Related_article.js

function get_page_array (domain) {
  //カテゴリリストを取得
  var cat_list = category_list();
  //カテゴリの数を取得
  var num_of_cat = cat_list.length;

  //カテゴリごとに調べる
  for (var c = 0; c <= (num_of_cat-1); c++) {
    var page_list = cat_list[c];
    var num_of_page = page_list.length;

    //ページごとに調べる
    for (var p = 0; p <= (num_of_page-1); p++) {
      var page_path = domain + page_list[p][0];
      //ファイルのURL(パス)とカテゴリに書かれたURLが一致すれば
      //そのカテゴリのページリストを返す
      if (location.href == page_path) {
        return page_list;
      }
    }
  }
}

function related_article (domain) {
  var related_array = get_page_array(domain);

  //undefinedになる
  document.write(related_array[0][0]);
}