// ==UserScript==
// @name           bura3_pos
// @namespace      neku
// @description    add position link
// @include        http://m*.3gokushi.jp*
// ==/UserScript==
(function(){
  //XPath
  function xpath(query) {
      return document.evaluate(query, document, null,
      XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
  }

  //innerHTMLの座標置換処理
  function addLinkToHtml(elm) {
    for(var i=0; i<elm.snapshotLength; i++){
      //htmlの取り出し
      var elmHtml = elm.snapshotItem(i).innerHTML;
      //座標の記載を探す
      var posList = elmHtml.match(/[(|（][0-9]+,[0-9]+[)|）]/g)
      if(posList !=null){
        //ソートしてユニークに対してのみ処理する。
        posList.sort();
        var posTmp = ""
        for(j=0; j<posList.length; j++){
          if(posTmp != posList[j]){
            //ユニークでの処理
            posTmp = posList[j];
            //座標をXYに分けて取り出す。
            var posX = posTmp.match(/[0-9]+/g)[0];
            var posY = posTmp.match(/[0-9]+/g)[1];
            //リンクの作成
            var link = "<a href='http://" + location.hostname + "/map.php?x=" +
                       posX + "&y=" + posY +  "#ptop' style='display:inline;'>" + posTmp+ "</a>";
            //置換用ワーク処理
            elmHtml = elmHtml.split(posTmp).join(link);
          }
        }
      }
    //痴漢処理
    elm.snapshotItem(i).innerHTML = elmHtml;
    }
  }

  //上部コメントに座標リンクをつける。
  var commentList = xpath("//div[@id='commentList']");
  addLinkToHtml(commentList);
  var bbsList = xpath("//td[@class='contents']");
  addLinkToHtml(bbsList);

})();

