var RankingRss = Class.create();
RankingRss.prototype = {
  initialize: function(id, url, max) {
    this.ajax_url = url;
    this.id = id;
    this.max = max;
    this.load();
  },

  update: function() {
    this.nowloading();
    this.load();
  },

  load: function() {
    var i = new Date().getTime() + Math.random();
    var request = new Ajax.Request(
      this.ajax_url + '?i=' + i,
      {
        method: 'get',
        parameters: '',
        onComplete: this.dispRanking.bindAsEventListener(this),
        onFailure:  this.clearRanking.bindAsEventListener(this)
      }
    );
  },

  dispRanking: function(request) {
    var lsw = $(this.id);
    var ul = document.createElement('ul');
    var items = request.responseXML.documentElement.getElementsByTagName('item');
    var max = items.length;
    if (max > this.max) max = this.max;
    for (var i = 0; i < max; i++) {
      var title;
      var link;
      for (var j = 0; j < items[i].childNodes.length; j++) {
        var child = items[i].childNodes[j];
        var childTag = items[i].childNodes[j].tagName;
        if (childTag == 'title') {
          title = child.firstChild.nodeValue;
        } else if (childTag == 'link') {
          link = child.firstChild.nodeValue;
        }
      }
      var li = document.createElement('li');
      li.innerHTML = "<a href='" + link + "'>" + title + "</a>";
      ul.appendChild(li);
    }
    $(this.id).innerHTML = "";
    lsw.appendChild(ul);
  },

  clearRanking: function(event) {
    var lsw = $(this.id);
	lsw.innerHTML = "";
  },

  nowloading: function() {
    $(this.id).innerHTML = "<center><img src='http://cdn.search.goo.ne.jp/cdn/goo/img/loading.gif'><br>Now Loading...</center><br>";
  }

};


var Oshirase = Class.create();
Oshirase.prototype = {
  initialize: function() {
    this.ajax_url = '/cgi-bin/rss/oshirase.cgi';
    this.load();
  },

  update: function() {
    this.nowloading();
    this.load();
  },

  load: function() {
    var i = new Date().getTime() + Math.random();
    var request = new Ajax.Request(
      this.ajax_url + '?i=' + i,
      {
        method: 'get',
        parameters: '',
        onComplete: this.dispRanking.bindAsEventListener(this),
        onFailure:  this.clearRanking.bindAsEventListener(this)
      }
    );
  },

  dispRanking: function(request) {
    var osrs = $('oshirase');
    osrs.innerHTML = request.responseText; 
  },

  clearRanking: function(event) {
    var osrs = $('oshirase');
	osrs.innerHTML = "";
  },

  nowloading: function() {
    $('oshirase').innerHTML = "<center><img src='http://cdn.search.goo.ne.jp/cdn/goo/img/loading.gif'><br>Now Loading...</center><br>";
  }

};

var lswWeb = new RankingRss('lsw_web', '/cgi-bin/rss/lsw_web.cgi', 10);
var helpFaq = new RankingRss('help_faq', '/cgi-bin/rss/help_faq.cgi', 4);
var oshirase = new Oshirase();


