// JavaScript Document
// Require "jkl-parsexml.js"
// Require CSS Block Class "entriesList"

var maxEntries = 3;
var hasDescription = false;

function InitXmlUtils ( max_entries, has_description ) {
	maxEntries = max_entries;
	hasDescription = has_description;
}

function LoadXML( rssUrl ) {
    //ここでXML(RSS)をロード
	if (rssUrl == null || rssUrl == '') return false;
    var http = new JKL.ParseXML( rssUrl );
    var rss;
    var func = function ( rss ) {  
      XMLloaded( rss ); //コールバック
    }
    http.async( func );
    http.parse();

    document.getElementById('entriesList').innerHTML = '<div id="rss_info">リスト作成中･･･</div>';
    return false;
}

function XMLloaded ( rss ) {
    var data = '<dl class="blogNews">';

    //rss channel 要素以下のitem要素を順番に処理
    if (rss.rss.channel.item != null && rss.rss.channel.item instanceof Array) {
      for(i in rss.rss.channel.item) {
        var linkUrl = rss.rss.channel.item[i].link;
        var title = rss.rss.channel.item[i].title;
        var desc = rss.rss.channel.item[i].description;
        var pubDate = rss.rss.channel.item[i].pubDate; //Mon, 28 May 2007 20:29:36 +0900
        var ary = pubDate.split(" ");
        var dateStr = ary[2] + ' ' + ary[1] + ', ' + ary[3];
        var cdate = new Date(dateStr);

        //出力用HTMLを作る
		if ( title != null ) {
          data += '<dt>';
          data += cdate.getFullYear() + '.' + fmtD(cdate.getMonth()+1) + '.' + fmtD(cdate.getDate());
					data += '</dt>';
					data += '<dd>';
          data += '<a href="' + linkUrl + '" >' + title + '</a>';
          if ( hasDescription ) {
            data += truncate( desc, 80 );
          }
          data += '</dd>';
		}
		
		if ( i==maxEntries-1 ) break; 
      }
    } else if (rss.rss.channel.item != null) {
      var linkUrl = rss.rss.channel.item.link;
      var title = rss.rss.channel.item.title;
      var desc = rss.rss.channel.item.description;
      var pubDate = rss.rss.channel.item[i].pubDate; //Mon, 28 May 2007 20:29:36 +0900
      var ary = pubDate.split(" ");
      var dateStr = ary[2] + ' ' + ary[1] + ', ' + ary[3];
      var cdate = new Date(dateStr);

        if ( title != null ) {
          data += '<dt>';
          data += cdate.getFullYear() + '.' + fmtD(cdate.getMonth()+1) + '.' + fmtD(cdate.getDate());
					data += '</dt>';
					data += '<dd>';
          data += '<a href="' + linkUrl + '" >' + title + '</a>';
          if ( hasDescription ) {
            data += truncate( desc, 80 );
          }
          data += '</dd>';
		}
	}

  data += '</dl>';
  document.getElementById('entriesList').innerHTML = data;
  return false;
}

function truncate( str, length ) {
	if (str == null) return '';
	return str.length > length ?
		str.slice(0, length - 3) + '...' : str;	
}

function fmtD ( val ) {
	if (val < 10) return "0" + val;
	return "" + val;
}
