/*
	infogenerator.js (ver 1.1)
	2010.11.19
	Author: Takada Koji
*/

google.load("feeds", "1");

var feedSet;

//オブジェクト FeedSet
function FeedSet(infoData){
	
	this.feedUrl = infoData.feedUrl;
	this.num = infoData.num;
	this.selector = infoData.selector;
	this.linkUrl = infoData.linkUrl;
	this.target = infoData.target;
	this.date = infoData.date;
	this.anime = infoData.anime;
	this.trimCount = infoData.trimCount;
	this.speed = infoData.speed;
	
}

//起動
function init(feedset){
	var feed = new google.feeds.Feed(feedset.feedUrl);
	if(feedset.selector == "div#readblog"){
		feed.setNumEntries(10);
	}else {
	feed.setNumEntries(feedset.num);	//指定された数だけFeedを取得
	}
	var el = $(feedset.selector);	//生成領域取得
	
	feed.load(function(result) {
		if (!result.error) {
			
			try{
				if(!feedset.date){
					el.append("<ul>");
				}
				
				for (var i = 0, j = 0; j < feedset.num; i++) {
					var entry = result.feed.entries[i];
					var title = entry.title;
					
					if(feedset.selector == "div#readblog" && title.indexOf("PR: ") != -1){
					}else {
					
						if(feedset.anime == "loop"){
							//"loop"の場合、最初の1件以外をトリミング
							if(i != 0){
								title = triming(title);
							}
						}else if(feedset.anime == "trim"){
							//"trim"の場合、全件トリミング
							title = triming(title);
						}
						
						if(feedset.selector == "div#readtw_sachiko"){
							title = title.replace("sachiko_FLiP: ","");
						}else if(feedset.selector == "div#readtw_yumi"){
							title = title.replace("yumiflip: ","");
						}else if(feedset.selector == "div#readtw_yuko"){
							title = title.replace("flipGT: ","");
						}else if(feedset.selector == "div#readtw_sayaka"){
							title = title.replace("SayakaFLiP: ","");
						}else if(feedset.selector == "div#readtw_staff"){
							title = title.replace("FLiP_mgr: ","");
						}
						
						if(feedset.date){
							//日付有の場合
							var date = entry.publishedDate.split(" ");
						
							switch(date[2]){
								case "Jan": date[2]=1; break;
								case "Feb": date[2]=2; break;
								case "Mar": date[2]=3; break;
								case "Apr": date[2]=4; break;
								case "May": date[2]=5; break;
								case "Jun": date[2]=6; break;
								case "Jul": date[2]=7; break;
								case "Aug": date[2]=8; break;
								case "Sep": date[2]=9; break;
								case "Oct": date[2]=10; break;
								case "Nov": date[2]=11; break;
								case "Dec": date[2]=12; break;
							}
							
							//日付有info生成
							el.append("<dl class='generatedInfo'><dt>"+date[3]+"."+date[2]+"."+date[1]+"</dt><dd><p><a href='"+ feedset.linkUrl +"' target='"+ feedset.target +"'>"+title+"</a></p></dd></dl>");
						}else {
							
							//日付無info場合
							el.children().append("<li id='generatedInfo"+ (i+1) +"' class='generatedInfo'><p><a href='"+ feedset.linkUrl +"' target='"+ feedset.target +"'>" + title + "</a></p></li>");
						}
						j++;
					}
				}
				
				//各アニメ設定に合わせて、クラスを追加。
				if(feedset.anime == "loop"){
					el.addClass("loopInfo");
					loopAnime();
				}else if (feedset.anime == "over"){
					el.addClass("overInfo");
					overAnime();
				}else if (feedset.anime == "trim"){
					el.addClass("trimInfo");
				}
			} catch(error) {
				el.append("<p>Feedの出力中にエラーが発生しました。<br />" + error.message +"</p>");
			}
		}else {
			el.append("<p>Feedの読み込みに失敗しました。<br />"+ result.error.message +"</p>")
		}
	});
}





function overAnime() {

		var moveel = "dl.generatedInfo dd p";

	/*$(moveel).each(function() {
		$(this).parent().click(function() {
			location.href = $(this).children().children().attr("href")
		});
		$(this).parent().css("cursor", "pointer");
	});*/
	
	
	$(moveel).hover(
		function(){
			
			var width = $(this).children().width();
			var time;
			

				time = width * 20;

			
			var wrapWidth = $(this).parent().width();
			if(width > wrapWidth){
				$(this).animate({left: "-" + width + "px"}, time, "linear", function(){
					$(this).css("left", 0);
				});
			}
		},
		function(){
			$(this).stop();
			$(this).css("left", 0);
		}
	);
}
