﻿/* Functions
-------------------------------------------------*/
/**
 * モーダルウィンドウリンクの初期化処理
 * ※全リストの生成が完了したら実行される
 *
 */
function setModalLink() {
	FEED_COUNT--;

	if (FEED_COUNT == 0) {
		// モーダルウィンドウリンクの初期化処理
		tb_init('a.thickbox');
	}
}


/**
 * リストタグの生成
 *
 */
function createListTag(list) {
	var code = '<dl>';

	if (list && (list.length > 0))
		for (var i=0,max=list.length; i<max; i++) {
			code += '<dt>' + list[i].date + '</dt>';

			// リンク先がある場合
			if (list[i].link && (list[i].link != ''))
				// ターゲットが指定されている場合
				if (list[i].target)
					// モーダル表示の指定がある場合
					if (list[i].target == 'modal')
						code += '<dd><a href="' + list[i].link +'?keepThis=true&TB_iframe=true&height=480" class="thickbox">' + list[i].title + '</a></dd>';
					// 通常のターゲット指定の場合
					else
						code += '<dd><a href="' + list[i].link +'" target="' + list[i].target + '">' + list[i].title + '</a></dd>';
				// ターゲットが指定されていない場合
				else
					code += '<dd><a href="' + list[i].link +'">' + list[i].title + '</a></dd>';
			// リンク先がない場合
			else
				code += '<dd>' + list[i].title + '</dd>';
		}
	else
		code += '<dd>データがありません</dd>';

	code += '</dl>';

	return code;
}


/**
 * RSSフィードを配列に変換
 *
 */
function parseRssfeed(xml) {
	var list = [];

	var link, title, date, item;
	$('entry', xml).each(function() {
		item = $(this);

		title  = item.find('title').text();
		link   = item.find('link').attr('href');
		target = item.find('link').attr('target');
		date   = item.find('published').text();

		list.push({
			 title  : title?title:''
			,link   : link?link:''
			,target : target?target:''
			,date   : date?formatDate(date):''
		});
	});

	return list;
}

/**
 * RSSフィードの読み込み処理
 *
 */
function loadRssfeed(url, cb_func, err_func) {
	$.ajax({
		url: url,
		async: true,
		cache: false,
		dataType:"xml",
		success: function(xml) {
			cb_func(xml);
		},
		error: function(e) {
			if (err_func && (typeof(err_func) == 'function')) {

			} else {
				errLoadRssfeed(e);
			}
		}
	});
}

function errLoadRssfeed(e) {
	alert(e);
}

/* Common Functions
------------------------------------------------*/
/**
 * 日付文字列をyyyy.mm.dd形式にフォーマット
 * 
 */
function formatDate(src) {
	// ブログの場合
	if (src.match(/^[1-2][0-9]{3}\-1?[0-9]/)) {
		var idx = src.indexOf('T');
		return src.substr(0, idx).replace(/\-/g, '.');
	}

	return src;
}

/**
 * 左パディング処理
 *
 */
function lpad(str, chr, num) {
	var rslt = str + '';
	while(rslt.length < num) {
		rslt = chr + rslt;
	}
	return rslt;
}

