// -----------------------------------------------------------------------
// TINAMI Comike Map System Ver 2006.11.07
// (c) 2006 TINAMI. All rights reserved.
// trackback.js: トラックバックの表示
// -----------------------------------------------------------------------
// トラックバック表示
function showTrackback(id, space, show)
{
  var url = 'tbviewjson.php';
  var param = 'id=' + id;
  var myAjax = new Ajax.Request( url, { 
    method: 'get', parameters: param, onComplete: function (Request) {
      var tb;
      var responseText;
      try {
        var xmlDoc = Request.responseXML;
        responseText = xmlDoc.documentElement.firstChild.nodeValue;
        tb = eval('(' + responseText + ')');
      } catch(e) {
        _InternalErrorMsg("データ解析時に異常が発生しました", e, responseText, 'showTrackback');
        return ;
      }

      var baseurl = 'http://www.tinami.com/comike/map/';
      _trackbackClear();
      $("trackback").appendChild(_makeTrackbackHeader(space + ' へのトラックバックURL', baseurl + 'tb/' + id));
      if (tb.found) {
        _makeTrackbackText(tb, space + ' へのトラックバック一覧', false);
      }
      $("trackback").style.display = 'block';
      if (show == "true" && navigator.userAgent.indexOf("Safari") == -1) {
        window.location.hash = "trackback";
      }
      $("trackback").appendChild(_makeTrackbackHeader(space + ' へのリンク', baseurl + '?id=' + id));
    }
  });
}

// -----------------------------------------------------------------------
function _makeTrackbackHeader(title, url)
{
  var tb_url = document.createElement("div");

  var tb_h = document.createElement("h4");
  tb_h.appendChild(document.createTextNode(title));
//  tb_h.style.color = "#888";
//  tb_h.style.fontSize = "12px";
//  tb_h.style.fontWeight = "bold";
//  tb_h.style.margin = "0";
//  tb_h.style.padding = "0";
//  tb_h.style.borderBottom = "1px dotted #888";

  tb_url.appendChild(tb_h);
//  tb_url.style.margin = "10px 0 15px 0";
//  tb_url.style.color = "#888";

  var tb_url_p = document.createElement("p");
  tb_url_p.appendChild(document.createTextNode(url));
//  tb_url_p.style.fontFamily = "serif";
//  tb_url_p.style.fontSize = "12px";
//  tb_url_p.style.margin = "0";
//  tb_url_p.style.padding = "0";
  tb_url.appendChild(tb_url_p);

  return tb_url;
}

// -----------------------------------------------------------------------
// 新着トラックバックを表示
function showNewTrackback()
{
  var url = '/comike/map/tbnewjson.php';
  var myAjax = new Ajax.Request( url, { method: 'get', onComplete: function (Request) {
    var tb;
    var responseText;
    try {
      var xmlDoc = Request.responseXML;
      responseText = xmlDoc.documentElement.firstChild.nodeValue;
      tb = eval('(' + responseText + ')');
    } catch(e) {
      _InternalErrorMsg("データ解析時に異常が発生しました", e, responseText, 'showNewTrackback');
      return ;
    }

    _trackbackClear();
    if (tb.found) {
      _makeTrackbackText(tb, '最近のトラックバック一覧', true);
    }
    else {
      $("trackback").innerHTML = '<p class="content">トラックバックはありません</p>';
    }
    $("trackback").style.display = 'block';
    if (navigator.userAgent.indexOf("Safari") == -1) {
      window.location.hash = "trackback";
    }
  }});
}

// -----------------------------------------------------------------------
// 新着トラックバックリストを表示
function showNewTrackbackList()
{
  var url = '/comike/map/tbnewjson.php';
  var myAjax = new Ajax.Request( url, { method: 'get', onComplete: function (Request) {
    var tb;
    var responseText;
    try {
      var xmlDoc = Request.responseXML;
      responseText = xmlDoc.documentElement.firstChild.nodeValue;
      tb = eval('(' + responseText + ')');
    } catch(e) {
      _InternalErrorMsg("データ解析時に異常が発生しました", e, responseText, 'showNewTrackback');
      return ;
    }

    _trackbackClear();
    if (tb.found) {
      _makeTrackbackList(tb);
    }
  }});
}

// -----------------------------------------------------------------------
// トラバテキスト作成
function _makeTrackbackText(tb, title, fNewEntry)
{
  var tb_h = document.createElement("h3");
  tb_h.appendChild(document.createTextNode(title));
  $("trackback").appendChild(tb_h);

  for (i=0; i<tb.trackback.length; ++i) {
    var data = tb.trackback[i];
    if (data) {
      if (fNewEntry) {
        var a_circle = document.createElement("a");
        if (navigator.userAgent.indexOf("MSIE") == -1) {
          a_circle.setAttribute("href", "#map");
          a_circle.setAttribute("onClick", "viewTragetCircle('" + data.id + "');");
        } else {
          a_circle.setAttribute("href", "JavaScript:viewTragetCircle('" + data.id + "');");
        }
        a_circle.appendChild(document.createTextNode(data.circle));

        var tb_url = document.createElement("div");
        tb_url.setAttribute("class", "trackback-body-url");
        tb_url.appendChild(a_circle);
        tb_url.appendChild(document.createTextNode(String().concat(' (', data.space, ') へのトラックバック')));
//        tb_url.style.color = "#888";
//        tb_url.style.margin = "0.5em 0 0 1em";
        $("trackback").appendChild(tb_url);
      }

      var tb_title = document.createElement("div");
      tb_title.setAttribute("class", "trackback-body-title");
      if (data.title) {
	    tb_title.appendChild(document.createTextNode(data.title));
      }
      tb_title.style.fontSize = "12px";
//      tb_title.style.margin = "0.5em 0 0.5em 1em";
//      tb_title.style.padding = "0";
//      tb_title.style.fontWeight = "bold";
      $("trackback").appendChild(tb_title);

      var tb_cont = document.createElement("div");
      tb_cont.setAttribute("class", "trackback-body-content");
      tb_cont.appendChild(document.createTextNode(data.except));
//      tb_cont.style.fontSize = "12px";
//      tb_cont.style.margin = "0 0 0 2em";
//      tb_cont.style.color = "black";
      $("trackback").appendChild(tb_cont);

      var a_blog = document.createElement("a");
      a_blog.setAttribute("href", data.url);
      a_blog.setAttribute("target", "_blank");
      a_blog.appendChild(document.createTextNode(data.blog_name));

      var tb_posted = document.createElement("div");
      tb_posted.setAttribute("class", "trackback-body-posted");
      tb_posted.appendChild(a_blog);
      tb_posted.appendChild(document.createTextNode(' '));
      tb_posted.appendChild(document.createTextNode(data.entrydate));
//      tb_posted.style.fontSize = "10px";
//      tb_posted.style.margin = "0 0 0 0.5em";
//      tb_posted.style.borderBottom = "1px #B8B8B8 solid";
//      tb_posted.style.padding = "0.5em";
      $("trackback").appendChild(tb_posted);
    }
  }
  return;
}

// -----------------------------------------------------------------------
// トラバテキスト作成（リスト版）
function _makeTrackbackList(tb)
{
  for (i=0; i<tb.trackback.length; ++i) {
    var data = tb.trackback[i];
    if (data) {
      var a_circle = document.createElement("a");
      if (navigator.userAgent.indexOf("MSIE") == -1) {
        a_circle.setAttribute("href", "#map");
        a_circle.setAttribute("onClick", "viewTragetCircle('" + data.id + "');");
      } else {
        a_circle.setAttribute("href", "JavaScript:viewTragetCircle('" + data.id + "');");
      }
      a_circle.appendChild(document.createTextNode(data.circle));

      var space = document.createElement("span");
      space.appendChild(document.createTextNode(String().concat(' ', data.space)));
//      space.style.color = "#888";
//      space.style.fontSize = "8px";

      var tb_url = document.createElement("div");
      tb_url.setAttribute("class", "trackback-body-url");
      tb_url.appendChild(a_circle);
      tb_url.appendChild(space);
      tb_url.style.margin = "0";
//      tb_url.style.fontSize = "10px";
//      tb_url.style.textAlign = "left";

      var tb_title = document.createElement("span");
      tb_title.setAttribute("class", "trackback-body-title");
      if (data.title) {
      	tb_title.appendChild(document.createTextNode(data.title));
      }

      var a_blog = document.createElement("a");
      a_blog.setAttribute("href", data.url);
      a_blog.setAttribute("target", "_blank");
      a_blog.appendChild(document.createTextNode(String().concat(' (', data.blog_name, ')')));

      var tb_posted = document.createElement("div");
      tb_posted.setAttribute("class", "trackback-body-posted");
      tb_posted.appendChild(tb_title);
      tb_posted.appendChild(a_blog);
//      tb_posted.style.fontSize = "10px";
//      tb_posted.style.margin = "0 0 0 1em";
//      tb_posted.style.textAlign = "left";

      var container = document.createElement("div");
      container.appendChild(tb_url);
      container.appendChild(tb_posted);
//      container.style.margin = "0 1em 0 1em";
//      container.style.borderBottom = "1px #B8B8B8 dotted";
//      container.style.padding = "0.5em";
      $("trackbacklist").appendChild(container);
    }
  }
  return;
}

// -----------------------------------------------------------------------
// 隠す
function hideTrackback()
{
  $("trackback").style.display = 'none';
}

// 一撃でクリアー
function _trackbackClear()
{
  while($("trackback").lastChild) {
    $("trackback").removeChild($("trackback").lastChild);
  }
}
