/* 文字コードはUTF-8 */
sweets_news = new Object();
sweets_news.list_items = 10;
sweets_news.init = function(tid, xml_url){
	this.tid = tid;
	this.xml_url = xml_url;
	this.count = (typeof(arguments[2]) != 'undefined' ? arguments[2] : sweets_news.list_items);
	this.dateobj = new Date();
	this.now = this.dateobj.getTime();
	this.object = document.getElementById(this.tid);
	this.object.innerHTML = '<div style="font-size:12px;color:#bbb;">読込中...</div>';
	this.load();
}
sweets_news.fail = function(){
	this.object.innerHTML = '<div style="font-size:12px;color:#900;">データが読み込めませんでした。</div>';
}
sweets_news.load = function(){
	this.page = 1;
	if(location.search != ''){
		var query = '' + location.search;
		if(query.match(/page=([0-9]+)/)){
			this.page = 1 * RegExp.$1;
		}
	}
	this.req_url = this.xml_url + '?page=' + this.page;
	xmlhttp.res[this.req_url] = new Object();
	xmlhttp.res[this.req_url].pointer = this;
	xmlhttp.res[this.req_url].exec = function(){
		var html = '';
		var channel = xmlhttp.res[this.pointer.req_url].XML.getElementsByTagName('channel');
		if(channel.length > 0){
			var items = channel.item(0).getElementsByTagName('item');
			if(items.length > 0){
				var count = (items.length < this.pointer.count ? items.length : this.pointer.count);
				for(var i = 0; i < count; i++){
					var item = items.item(i);
					var title = xmlhttp.getNodeValue(item, 'title');
					var link = xmlhttp.getNodeValue(item, 'link');
					var content_encoded = xmlhttp.getNodeValue(item, 'content:encoded');
					var pubDate = xmlhttp.getNodeValue(item, 'pubDate');
					var pubtime = Date.parse(pubDate);
					this.pointer.dateobj.setTime(pubtime);
					var year = this.pointer.dateobj.getFullYear();
					var month = this.pointer.dateobj.getMonth() + 1;
					var day = this.pointer.dateobj.getDate();
					var date_str = year + '.' + (month < 10 ? '0' : '') + month + '.' + (day < 10 ? '0' : '') + day;
					html += '<div id="col' + (i + 1) + '" class="newsEntry clearfix">';
					html += '<div class="newsDate">' + date_str + '</div>';
					html += '<div class="newsEntryBox">';
					html += '<h3 class="newsTitle"><a href="' + link + '" target="nissyoku">' + title + '</a></h3>';
					html += '<div class="newsEntryBody">' + content_encoded + '</div>';
					html += '<div class="newsLink"><a href="' + link + '" target="nissyoku"> 本文を読む（日本食糧新聞へ）...</a></div>';
					html += '</div>';
					html += '</div>';
				}
				var list_pages = 1 * xmlhttp.getNodeValue(channel.item(0), 'list_pages');
				var list_page = 1 * xmlhttp.getNodeValue(channel.item(0), 'list_page');
				if(list_pages > 1){
					var self_url = location.pathname;
					var page_min = (list_page <= 3 || list_pages <= 5 ? 0 : (list_pages - list_page < 2 ? list_pages - 5 : list_page - 3));
					var page_max = (list_pages < 5 || list_pages - list_page < 2 ? list_pages : (list_page <= 3 ? 5 : list_page + 2));
					html += '<div class="page_navi"><table><tr><td>';
					if(list_page > 1){
						html += '<a href="' + self_url + '" class="first">最初へ</a><a href="' + self_url + '?page=' + (list_page - 1) + '" class="prev">前へ</a>';
					}
					else{
						html += '<span class="first">最初へ</span><span class="prev">前へ</span>';
					}
					if(page_min > 0){
						html += '<span class="step">...</span>';
					}
					html += '<span class="stepline">｜</span>';
					for(var i = page_min; i < page_max; i++){
						var p = i + 1;
						if(p == list_page){
							html += '<span class="step">' + p + '</span>';
						}
						else{
							html += '<a href="' + self_url + '?page=' + p + '">' + p + '</a>';
						}
						html += '<span class="stepline">｜</span>';
					}
					if(page_max < list_pages){
						html += '<span class="step">...</span>';
					}
					if(list_pages > list_page){
						html += '<a href="' + self_url + '?page=' + (list_page + 1) + '" class="next">次へ</a><a href="' + self_url + '?page=' + list_pages + '" class="last">最後へ</a>';
					}
					else{
						html += '<span class="next">次へ</span><span class="last">最後へ</span>';
					}
					html += '</td></tr></table></div>';
				}
			}
			else{
				html += '<p>現在、準備中です。</p>';
			}
		}
		this.pointer.object.innerHTML = html;
		this.pointer.pageScroll();
	}
	xmlhttp.res[this.req_url].fail = this.fail;
	xmlhttp.loadDoc(this.req_url, 'get', true, true);
}
sweets_news.pageScroll = function(){
	if(location.hash != ''){
		var hash = '' + location.hash;
		var h = hash.substring(1,hash.length);
		var obj = null;
		if(obj = document.getElementById(h)){
			window.scrollTo(0, obj.offsetTop);
		}
	}
}

