
/* -------------------------------------------------------------------
   he_rank.js : GoodStar ランキング表示ブログパーツ
   (要prototype.js)
   (c)吉田印刷所 2007.8.20
   ---------------------------------------------------------------- */


// HeRank: ランキング表示オブジェクト

var HeRank ={
  onLoad: function() {
    HeRank.showHtml ();
    HeRank.addScript();
  },
  showHtml: function () { // scriptタグの位置特定、callback差込用HTMLを挿入
    var objElement = document.createElement('span'); 
    objElement.innerHTML=''
    + '<ol id="herank"></ol>'
    + '';
    var scripts = document.getElementsByTagName('script');
    var objScript = scripts[ scripts.length - 1 ];
    for (var i = 0; i < scripts.length; i++) {
      if ( (scripts[i].getAttribute('src') ) &&
           (scripts[i].getAttribute('src').match(/he_rank.js$/) ) ){
        objScript = scripts[i]
      }
    }
    objScript.parentNode.insertBefore(objElement, objScript);
  },
  addScript: function() { // JSONPをサーバにリクエスト
    var msec = (new Date()).getTime();
    var script = document.createElement('script'); 
    script.id = 'http://dtp-bbs.com/cgi-bin/he/rank.cgi'
              + '?zone='  + heRankZone
              + '&cache=' + msec ;
    script.charset = 'UTF-8';
    script.src     = script.id; 
    document.lastChild.appendChild(script);
  },
  cleaningURL: function(f) { // フラグメント識別子トル
    /* 当初Stringオブジェクト拡張していたがある意味汚染なのでやめた
    // String オブジェクト拡張（フラグメント識別子トル）
    String.prototype.removeFlagment = function(){
      return this.replace(/#.+?$/,'');
    };
    return f.toString().removeFlagment();
    */
    return f.toString().replace(/#.+?$/,'');
  },
  showList: function(json) {
    if (json == null) return;
    var loop = json['LOOP_DATA'];
    var html = '';
    for (var i = 0; i < loop.length; i++) {
      var url   = loop[i]['URL'];
      var value = loop[i]['VALUE'];
      var title = loop[i]['TITLE'];
      
      var fpoints = value + 'point';
      if ( value != 1 ) {
      fpoints = fpoints + 's';
      }
      
      html += '<li><a href="'
            + url + '" target="_blank">'
            + title 
            + '</a>'
            + ' <span class="herankpoint">[' + fpoints + ']</span>'
            + '</li>' +"\n";
    }
    if ($('herank')) {
      Element.update( $('herank'), html);
    }
  }
}


// onLoadイベントハンドラに追加（prototype.js）

Event.observe(window, 'load', HeRank.onLoad, false);
