/*@cc_on _d=document; eval('var document=_d');@*/
/***********************************************************
 * feeds.js
 * ver 1.2.1
 * update log
 * ・画像1枚の表示 - 2007.12.13 ver 1.2.1
 ***********************************************************
/*********
 * 記事の表示設定
 */
var settings = {
	rss_atom : 'http://sansyodojn.blog19.fc2.com/?xml' , // 取得するブログフィードのURL（必須）
	targetId : 'whats_new' , // フィード内容を表示させるHTMLタグのid属性（必須）
	MaxEntry : '10' , // エントリー表示の最大数（数値指定又は''…''の場合は全ての記事を取得）
	TitleMax : '',
	TextMax  : '0' , // 本文の文字数（数値指定又は''…''の場合は全ての記事内容を取得）
	DataMax  : '300' , // 日付・タイトル・本文を含む全体の文字数を固定（数値指定又は''…''の場合は固定しない）
	isCRLF   : 'NO' ,  // 記事の改行を有効にする（YES/NO）
	isCate   : 'NO' , // カテゴリでフィードを取得する（YES/NO）
	isImage  : 'NO' , // 記事内の画像1点を抜き出す（YES/NO）
	DF:{
		Year : '.',  // 年のフォーマット
		Month: '.',  // 月のフォーマット
		Day  : ''   // 日のフォーマット
	},
	DS:{
		"year": 'YES',   // 年を表示する
		"month": 'YES', // 月を表示する
		"day": 'YES'    // 日を表示する
	},
	ReWrite: 'YES', // 追記モード設定
	loading_image : 'images/loader.gif', // 読み込み中表示用画像へのパス
	loading_Alt   : '読み込んでいます。' // 読み込み画像がない場合に表示される代替テキスト
};

/*********
 * カテゴリ表示を使用する場合カテゴリを指定する（複数指定可）
 * 例）複数のカテゴリを指定する場合は、下記のようにカテゴリを指定します。
 * var category = ["カテゴリ1","カテゴリ2","カテゴリ3"];
 * ※一番最後の指定の後ろには「,」は入れないで下さい。
 */
var category = ["お知らせ"];


function putHtml(DATE,TITLE,TEXT,URL,IMAGE,CATEGORY,WHATSNEW) {
/*********
 * 表示記事本文の設定
 * 以下は記事から取得する内容
 * DATE  : 日付
 * TITLE : タイトル
 * TEXT  : 記事本文
 * URL   : 記事へのリンク+
 */
	var tmpHtml = '<p class="item"><a href="'+URL+'">'+DATE+'</a></p><p class="news_title"><a href="'+URL+'">'+TITLE+'</a>'+WHATSNEW+'</p>\n';
	return tmpHtml;
};

//==========================================================
// オプション設定
//----------------------------------------------------------
var options = {};
//----------------------------------------------------------
// 新着設定
//----------------------------------------------------------
// 設定ここから
options.WhatsNew = {
	show_optins:'YES',									// 新着表示を行う(YES/NO)
	add_type:'1' ,											// 新着表示を行う判断基準（0:本日-n日 1:新規n件）
	add_num:3 ,													// 何日前又は何件分に新着表示をつけるか
	source:'1' ,												// 新着表示の表示タイプ（0:text 1:image）
	src:'images/icon_new.gif' ,				// 新着情報の表示タイプで画像を選んだ場合の画像パス
	text:'',														// 新着情報の表示タイプで文字を選んだ場合の表示文字
//----------------------------------------------------------

	init:function (nCnt){
		var sAddWhatsNew = {};
		switch(this.add_type) {
			case '0':
				// 0 日付比較の場合、ミリ秒単位で比較する
				var tmpd = new Date();
				var d = new Date(nCnt);
				var diffsec = tmpd.getTime() - (this.add_num * 86400000);
				tmpd.setTime(diffsec);
				var sec = d.getTime();
				if(tmpd.getTime() > sec) {
					return;
				}
				break;
			case '1':
				if(nCnt >= this.add_num)
				{
					return;
				}
				break;
			default:
				isNum = true;
				break;
		}

		if(this.show_optins == 'YES'){
			switch(this.source)
			{
				case '0':
					this.txt = this.text;
					break;
				case '1':
					this.img = '<img src="'+this.src+'" />';
					break;
				default:
					this.txt = "";
					this.img = "";
					return;
					break;
			}
		}
		return this;
	}
};	// end WhatsNew
//----------------------------------------------------------

//==========================================================

/*
 * 設定ここまで
 *********/







/***********************************************************
 * @@ feed取得処理の開始
 */
var conteiner = document.getElementById(settings.targetId);
var Loading;
if(settings.loading_image != "") {
	Loading = document.createElement('p');
	Loading.style.textAlign = 'center';
	Loading.style.marginTop = '80px';
	LoadingImg = document.createElement('img');
	LoadingImg.setAttribute('src',settings.loading_image);
	Loading.appendChild(LoadingImg);
	

} else {
	Loading = document.createElement('p');
	Loading.style.textAlign = 'center';
	Loading.appendChild(document.createTextNode(settings.loading_Alt));
}
conteiner.appendChild(Loading);
conteiner.style.display = 'block';

google.load("feeds", "1");

function initialize()
{
	var myNow = new Date();
	var q1 = myNow.getMonth();
	var q2 = myNow.getDate();
	var q3 = myNow.getHours();
	var q4 = myNow.getMinutes();
	var q5 = myNow.getSeconds();
	var myQuery = q1+"0"+q2+"0"+q3+"0"+q4+"0"+q5;

	var feed = new google.feeds.Feed(settings.rss_atom+'&'+myQuery); // キャッシュ対策　フィード取得時にクエリ送信
	var entrysMax = 50;

	feed.setNumEntries(entrysMax); // feed最大数の指定（MAX250まで）

	feed.load( function(result) {
		if (!result.error) {
			var isEntry,entryAllData,arrEntrys,sEnTitle,sEnURL,sEnText,sEnDate,nEntryNum,sHtmlPool,isTrimText;
			sHtmlPool = '';
			entryAllData = result.feed.entries.length;
			getFeedCnt = 0;
			for (var nECnt = 0; nECnt < entryAllData; nECnt++) {
				isEntry = 'false';
				arrEntrys = result.feed.entries[nECnt];
				if(settings.isCate == 'YES')
				{
					for(var nCnt=0; nCnt<category.length; nCnt++) {
						if(arrEntrys.categories == category[nCnt])
						{
							isEntry = 'true';
						}
					}
				} else {
					isEntry = 'true';
				}

				if (settings.MaxEntry != "" && isEntry == 'true') {
					if(settings.MaxEntry <= getFeedCnt) {
						isEntry = 'false';
						break;
					}
				}

				if(isEntry == 'true') {

					sEnURL   = arrEntrys.link;
					sEnTitle = arrEntrys.title;

					sEnText  = arrEntrys.content;
					if(settings.isImage == 'YES')
					{
						sImage = sEnText.match(/<img .*?>/);
						if(sImage == null)
						{
							sImage = '';
						}
						else
						{
							sImage = '' + sImage; // 文字列にObj扱いのsImageを変更
							sImage = sImage.match(/(\w+):\/\/([\w.]+)\/(\S*)/);
							sImage = sImage[0].replace(/\W$/,"");
							sImage = '<img src="' + sImage + '" alt="'+sEnTitle+'" />'
						}
					}
					if(typeof(sImage) == 'undefined')
					{
						sImage = '';
					}
					sEnText  = sEnText.replace(/<br>/gi,"\n");
					sEnText  = sEnText.replace(/<br\/>/gi,"\n");
					sEnText  = sEnText.replace(/<br \/>/gi,"\n");
					sEnText  = sEnText.replace(/<.*?>/gi, "");
					sEnText  = sEnText.replace(/\r\n/gi,"");
					sEnText  = sEnText.replace(/\r/gi,"");
					if (settings.isCRLF == 'YES') {
						sEnText  = sEnText.replace(/\n/gi,"<br />");
						sEnText  = sEnText.replace(/[<br \/>]{2,}/gi,"<br />");
					} else {
						sEnText  = sEnText.replace(/\n/gi,"");
					}
					if (settings.TextMax != '') {
						if (sEnText.length > parseInt(settings.TextMax)) {
							sEnText = sEnText.substring(0,parseInt(settings.TextMax));
							isTrimText = 'true';
						}
					}

					var dateObj = new Date(arrEntrys.publishedDate);
					var nYear = dateObj.getFullYear();
					var nMonth = dateObj.getMonth() + 1;
					var nDay = dateObj.getDate();

					nMonth = nMonth + ''; nDay = nDay + '';
					if(nDay.length == 1) {
						nDay = '0' + nDay;
					}
					if(nMonth.length == 1) {
						nMonth = '0' + nMonth;
					}
					sEnDate = "";
					if(settings.DS.year == 'YES')
					{
						sEnDate = nYear + settings.DF.Year;
					}
					if(settings.DS.month == 'YES')
					{
						sEnDate = sEnDate + nMonth + settings.DF.Month;
					}
					if(settings.DS.month == 'YES')
					{
						sEnDate = sEnDate + nDay + settings.DF.Day;
					}
					if(settings.TitleMax != "" && parseInt(settings.TitleMax) > 0)
					{
						if(sEnTitle.length > parseInt(settings.TitleMax))
						{
							var tmpLen = sEnTitle.length - parseInt(settings.TitleMax) + 2;
							sEnTitle = sEnTitle.substring(0,sEnTitle.length - parseInt(tmpLen));
							sEnTitle = sEnTitle + '…';
						}
					}
					if(settings.DataMax != "" && parseInt(settings.DataMax) > 0) {
						var tmpDateLen  = sEnDate.length;
						var tmpTitleLen = sEnTitle.length;
						var tmpTextLen  = sEnText.length;
						var TotalLen = tmpDateLen + tmpTitleLen + tmpTextLen;
						if(TotalLen > parseInt(settings.DataMax)) {
							patchLen = TotalLen - parseInt(settings.DataMax);
							sEnText = sEnText.substring(0,sEnText.length - parseInt(patchLen));
							isTrimText = 'true';
						}
					}
					if(isTrimText == 'true') {
						sEnText = sEnText + '…';
					}

//==========================================================
// オプション関連の処理をここで実行
//----------------------------------------------------------
					if(options.WhatsNew.add_type == '0')
					{
						var opNum = arrEntrys.publishedDate;
					}
					else
					{
						var opNum = getFeedCnt;
					}
					whatsnew_true = false;
					var whatsnew = options.WhatsNew.init(opNum);
					if(typeof(whatsnew) != 'undefined')
					{
						if(typeof(whatsnew.img) != 'undefined')
						{
							sWhatsNew = whatsnew.img;
							whatsnew_true = true;
						}
						if(typeof(whatsnew.txt) != 'undefined')
						{
							sWhatsNew = whatsnew.txt;
							whatsnew_true = true;
						}
					}
					if(whatsnew_true === false)
					{
						sWhatsNew = "";
					}

//==========================================================

					sHtmlPool += putHtml(sEnDate,sEnTitle,sEnText,sEnURL,sImage,arrEntrys.categories,sWhatsNew);
					getFeedCnt = getFeedCnt + 1;
				}
			}
			conteiner.removeChild(Loading);
			if(settings.ReWrite == 'YES')
			{
				conteiner.innerHTML += sHtmlPool;
			}
			else
			{
				conteiner.innerHTML = sHtmlPool;
			}
			conteiner.style.display = 'block';
		}
	});
}

google.setOnLoadCallback(initialize);

/*********
 * Author : K.Utsuda - Ability Consultant Inc.
 */
