﻿/*
 *  2010.07.22
 */


$(function(){
	$.ajax({
		url: "blog/index.xml",//RSSのパス
		//url: "http://eneloopy.com/blog/index.xml",//RSSのパス
		async: true,
		cache: false,
		dataType:"xml",
		success: function(xml){
		
			$(xml).find('item').each(function(i) {
				
				//いくつ目の記事を表示するか選択できます。0＝1です。
				if(i == 0){
				
				//記事内容の取得
				var title = $(this).find('title').text();
				//var link = $(this).find('link').text();
				var link = "http://eneloopy.com/blog/";
				var description = $(this).find('description').text();
				var imageAdd = imageAddParse(description);
				
				//画像がキャッシュされないようにする
				var yn = Math.floor(Math.random()*100000);
				imageAdd = imageAdd+"?="+yn;
				
				//コメントから写真を抜出＆削除
				description = descriptionParse(description);
				
				//日にちの編集
				var date;
				
				$(this).children().each(function() {
					if ($(this)[0].tagName == "pubDate") {
						date = $(this).text();
					}
				});
				
				date = dateParse(date);
				
				//カテゴリの取得
				var category;
				
				$(this).children().each(function() {
					if ($(this)[0].tagName == "category") {
						category = $(this).text();
					}
				});
				
				//出力内容
				var htmlData = '';
				htmlData += '<div class="diaryImage"><img src="images/spacer.gif" id="diaryImage" /></div>';
				htmlData += '<div class="diaryDate">'+date+'</div>';
				htmlData += '<div class="diaryTitle">'+title+'</div>';
				htmlData += '<div class="diaryComent">'+description+'</div>';
				htmlData += '<div class="diaryLink"><a href="'+link+'"><img src="images/dialy_link.gif" width="212" height="35" alt="つづきを読む" /></a></div>';
				$('#diaryBox').append(htmlData);
				
				//画像の読み込み
				var image = new Image();
				image.imageAdd;
				
				$("#diaryImage").attr("src", imageAdd);
				//画像の読み込みが完了したら
				$("#diaryImage").load(function () {
					var fw = 212;//fixed width
					var fh = 160;//fixed height
					var w = $("#diaryImage").width();
					var h = $("#diaryImage").height();
					if (w/fw >= h/fh) {
						$("#diaryImage").width(fw);
						$("#diaryImage").height(h/(w/fw));
					} else {
						$("#diaryImage").width(w/(h/fh));
						$("#diaryImage").height(fh);
					}
				});
				
				return false;
				
				}
			});
		}
	});
});




function dateParse(cmd){
	
	var objDate = cmd;
	
	//曜日カット
	if (objDate.search(/,\s/i) != -1) {
		objDate = RegExp.rightContext;
	}
	//日
	if (objDate.search(/\s/i) != -1) {
		var date = RegExp.leftContext;
		objDate = RegExp.rightContext;
	}
	//月
	if (objDate.search(/\s/i) != -1) {
		var month = RegExp.leftContext;
		objDate = RegExp.rightContext;
		if(month == "Jan"){ month = "01" }
		if(month == "Feb"){ month = "02" }
		if(month == "Mar"){ month = "03" }
		if(month == "Apr"){ month = "04" }
		if(month == "May"){ month = "05" }
		if(month == "Jun"){ month = "06" }
		if(month == "Jul"){ month = "07" }
		if(month == "Aug"){ month = "08" }
		if(month == "Sep"){ month = "09" }
		if(month == "Oct"){ month = "10" }
		if(month == "Nov"){ month = "11" }
		if(month == "Dec"){ month = "12" }
	}
	//西暦
	if (objDate.search(/\s/i) != -1) {
		var year = RegExp.leftContext;
		objDate = RegExp.rightContext;
	}
	
	cmd = year + '.' + month + '.' + date;
	
	return cmd;
	
}


function imageAddParse(cmd){
	
	var objData = cmd;
	
	//改行削除
	objData = objData.replace(/\r\n/g, "");
	objData = objData.replace(/\r/g, "");
	objData = objData.replace(/\n/g, "");
	
	//altの削除
	for(i=0; i<100; i++){
		//altを検索
		if (objData.search(/alt\=\"/i) != -1) {
			var objDataL = RegExp.leftContext;
			var objDataR = RegExp.rightContext;
			if (objDataR.search(/\"/i) != -1) {
				objDataR = RegExp.rightContext;
			}
			objData = objDataL + objDataR;
		}else{
			break;
		}
	}
	
	//1つ目の画像を検索
	
	//if (objData.search(/.jpg\" class/i) != -1) {
	//if (objData.search(/.jpg\" width/i) != -1) {
	if (objData.search(/.jpg\"/i) != -1) {
		var imageAdd = RegExp.leftContext;
		objData = RegExp.rightContext;
	}
	
	//1つ目の画像を抽出
	if (imageAdd.match(/src=\"/g) != -1) {
		imageAdd = RegExp.rightContext;
		imageAdd += ".jpg"
	}
	
	cmd = imageAdd;
	
	return cmd;
}


function descriptionParse(cmd){
	
	var objDataL = cmd;
	var objDataR;
	
	//改行削除
	objDateL = objDataL.replace(/\r\n/g, "");
	objDateL = objDataL.replace(/\r/g, "");
	objDateL = objDataL.replace(/\n/g, "");
	
	for(i=0; i<100; i++){
		//画像を検索
		if (objDateL.search(/.jpg\" width/i) != -1) {
			objDataL = RegExp.leftContext;
			objDataR = RegExp.rightContext;
		}else{
			break;
		}
		
		//画像を削除1
		if (objDataL.match(/<img/g) != -1) {
			objDataL = RegExp.leftContext;
		}
		
		//画像を削除2
		if (objDataR.search(/\/>/i) != -1) {
			objDataR = RegExp.rightContext;
		}
		objDataL = objDataL + objDataR;
	}
	
	cmd = objDataL;
	
	//alert(cmd);
	
	
	//表示文字数制限
	var textLength = 65;
	var cutLength = 6;
	var endText = " ...";
	var imgCount = 0;
	var imgCount2 = 0;
	
	var cmd3 = cmd ;//処理用
	
	var cmd2 = "";//マッチ用
	
	//絵文字画像コードの文字数取得
	for(i=0; i<100; i++){
		cmd2 = cmd.substr(0, textLength);//マッチ用
		imgCount2 = cmd2.match(/<img/g);
		
		if(!imgCount2){
			imgCount2 = 0;
		}
		
		if (cmd3.search(/<img/i) != -1 && imgCount < imgCount2.length) {
			cmd2 = RegExp.rightContext;
			
			if (cmd2.search(/\/>/i) != -1) {
				cmd2 = RegExp.leftContext;
				cmd3 = RegExp.rightContext;
				textLength += cmd2.length + 6;
				imgCount++;
			}else{
				break;
			}
		}else{
			break;
		}
	}
	
	cmd = cmd.substr(0, textLength - cutLength);
	
	//不完全なタグが無いか確認
	if (cmd.match(/</g) != -1) {
		var aaa = RegExp.rightContext;
		var bbb = RegExp.leftContext;
		if (aaa.search(/>/i) == -1) {
			cmd = bbb;
		}
	}
	
	//alert(cmd);
	
	//最後が閉じタグか確認
	for(i=0; i<10; i++){
		if (cmd.match(/</g) != -1) {
			aaa = RegExp.rightContext;
			bbb = RegExp.leftContext;
			if (aaa.search(/\/>/i) == -1) {
				cmd = bbb;
			}
		}
	}
	
	cmd += endText;
	
	//alert(cmd);
	
	return cmd;
}



