//------------------------------
// BOOKMARK HEAD
//------------------------------
$(function() {
	var timer;
	var u = encodeURIComponent(document.location.href);
	var t = encodeURIComponent(document.title);
	var h = '<a class="rollover" href="http://del.icio.us/1?url='+u+'" rel="nofollow" target="_blank"><img src="/blog/images//bookmark/delicious.gif" alt="del.icio.usに登録する" /></a><a class="rollover" href="http://b.hatena.ne.jp/append?'+u+'" rel="nofollow" target="_blank"><img src="/blog/images/bookmark/hatena.gif" alt="はてなブックマークに追加" /></a><a class="rollover" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk='+u+'&amp;title='+t+'" target="_blank" rel="nofollow"><img src="/blog/images/bookmark/google.gif" alt="Google Bookmarksに登録する" /></a><a class="rollover" href="http://bookmarks.yahoo.co.jp/action/bookmark?t='+t+'&amp;u='+u+'" ><img src="/blog/images/bookmark/ybm.gif" alt="Yahoo!ブックマークに登録"></a><a class="rollover" href="http://clip.livedoor.com/page/'+u+'" rel="nofollow" target="_blank"><img src="/blog/images/bookmark/clip.gif" alt="livedoorクリップに登録" /></a><a class="rollover" href="http://clip.nifty.com/create?url='+u+'&amp;title='+t+'" rel="nofollow" target="_blank"><img src="/blog/images/bookmark/nifty_ico.gif" alt="ニフティクリップに追加" /></a>';
	
	$( "div#BOOKMARK-SITE" ).html(h);
	$( "div#BOOKMARK-SITE" ).hide();
	
	//SITE
	$("div#FEED a#SB-BTN").hover( onMouseOver, onMouseOut );
	$("div#BOOKMARK-SITE").hover( onMouseOver, onMouseOut );
	
	function onMouseOver() {
	   clearTimeout(timer);
		$("div#BOOKMARK-SITE" ).show();	
		$("div#FEED a#SB-BTN").css("background-position","0px -20px");
	}
	function onMouseOut() {
        clearTimeout(timer);
		timer = setTimeout( hideBookmarkList, 300 );
	}
	function hideBookmarkList() {
	   $( "div#BOOKMARK-SITE" ).hide();
	   $("div#FEED a#SB-BTN").css("background-position","0px 0px");
	}

});

//------------------------------
// BOOKMARK ENTRY
//------------------------------
$(function() {
    var timer;
   	$( "div#BOOKMARK-ENTRY" ).hide();

	//ENTRY
	$("a#SB-ENTRY-BTN").hover( onMouseOver, onMouseOut );
	$("div#BOOKMARK-ENTRY").hover( onMouseOver, onMouseOut );
	
	function onMouseOver() {
	   clearTimeout(timer);
	   $("div#BOOKMARK-ENTRY" ).show();	
	   $("a#SB-ENTRY-BTN").css("color","#000000");
	}
	function onMouseOut() {
	   clearTimeout(timer);
	   timer = setTimeout( hideBookmarkList, 500 )
	}
	function hideBookmarkList() {
	   $( "div#BOOKMARK-ENTRY" ).hide();
	   $( "a#SB-ENTRY-BTN").css("color","#666666");
	}



});

//------------------------------
// Staff Roll Over
//------------------------------
$(function(){
	$("body").append('<div id="StaffRollOver" style="position:absolute; top:0px; left:0px; z-index:3;"></div>');
	var $over = $("div#StaffRollOver");
	$("div#STAFF ul li img").each(function(){
		var path_arr = $(this).attr("src").split("/");
		var file_arr = path_arr.pop().split(/[\.-]/);
		var e = file_arr.pop();
		var n = file_arr.shift();
		var p = path_arr.join("/");
		var s = p+"/"+n+"-over.png";
		$("<img />").attr("src",s);
	});
	$("div#STAFF ul li").hover(
		function() {
			var path_arr = $("img",this).attr("src").split("/");
			var file_arr = path_arr.pop().split(/[\.-]/);
			var e = file_arr.pop();
			var n = file_arr.shift();
			var p = path_arr.join("/");
			var s = p+"/"+n+"-over.png";
			$over.append('<img src="'+s+'" width="550" height="350" />');
		},
		function() {
			$over.empty();
		}
	);
});

//------------------------------
// Navigation
//------------------------------
$(function(){
	var $window = $(window);
	var $left = $("div#LEFT");
	var $pnavi = $("div#PAGENAVI");
	var leftDefaultTop = $left.css("top").replace(/px/,"");
	var leftPaddingTop = 40;
	var leftMinTop = leftDefaultTop - leftPaddingTop;
	var windowHeight = $window.height();
	var $entries = $("div.entry");
	
	//PREV、NEXTのリンク先を取得
	var nextLink = $("div#PAGE-NEXT a[href!=#]").attr("href");
	var prevLink = $("div#PAGE-PREV a[href!=#]").attr("href");
	
	//PREV、NEXTの<A>のHTMLを書き込む
	var $next = $("div#PAGE-NEXT").html("<a href=\"#\" title=\"次の記事\"><span>次の記事</span></a>").find("a");
	var $prev = $("div#PAGE-PREV").html("<a href=\"#\" title=\"前の記事\"><span>前の記事</span></a>").find("a");
	var $top = $("div#PAGE-TOP a");
	//
	if ( !$.browser.msie || $.browser.version >= 7 ) {
		$pnavi.css("position","fixed");
		$pnavi.css("bottom","80px");
		$pnavi.css("right","30px");
	}
	
	//読み込み完了時にinitを実行
	$(init);
	$window.load(onLoad);
	
	//
	function init() {
		
		$window.resize(onResize);
		$window.scroll(onScroll);
		
		$next.click(next);
		$prev.click(prev);
		$top.click(top);
		
		onLoad();
	}
	
	function onLoad() {
		onResize();
		//URLに「#BOTTOM」が含まれていて、記事が複数ある場合は最後の記事までスクロール
		if ( document.location.href.match(/#BOTTOM/) && $entries.length > 1 ) {
			var stt = $entries.eq($entries.length-1).offset().top - 10;
			$("html,body").animate({scrollTop: stt}, 400);
		}
	}
	
	function next() {
		var st = $window.scrollTop();
		var i = 0;
		$entries.each(function(index) {
			if ( $(this).offset().top > st + 10  ) return false;
			i = index;
		});
		if ( i < $entries.length - 1 ) {
			var stt = $entries.eq(i+1).offset().top - 10;			//スクロールの目的地
			var dh = $(document).height();							//ドキュメント全体の高さ
			//スクロールの目的地がスクロールの上限（ドキュメントの高さ - ウィンドウの高さ）を超えている場合
			if ( stt > dh - windowHeight ) {
				var last = $entries.length - 1;						//最後の記事のインデックス
				var et = $entries.eq(last).offset().top;			//最後の記事のy座標
				var eh = $entries.eq(last).height();				//最後の記事のエレメントの高さ
				//現状のスクロール位置で最後の記事が全部表示されていて
				//nextLinkに値がある（次のページが存在する）場合
				if ( st + windowHeight > et + eh && nextLink ) {
					document.location.href = nextLink;
					return false;
				}
			}
			$("html,body").animate({scrollTop: stt}, 400);
		} else if ( nextLink ) {
			document.location.href = nextLink;
		}
		return false;
	}
	
	function prev() {
		var st = $window.scrollTop();
		var i = 0;
		$entries.each(function(index) {
			i = index;
			if ( $(this).offset().top > st - 10  ) return false;
		});
		if ( i > 0 ) {
			var stt = $entries.eq(i-1).offset().top - 10;
			$("html,body").animate({scrollTop: stt}, 400);
		} else if ( prevLink ) {
			document.location.href = prevLink+"#BOTTOM";
		} else {
			top();
		}
		return false;
	}
	
	function top() {
		$("html,body").animate({scrollTop: 0}, 400);
		return false;
	}
	
	function onResize() {
		windowHeight = $window.height();
		onScroll();
	}
	
	function onScroll() {
		var st = $window.scrollTop();
		if ( !$.browser.msie || $.browser.version >= 7 ) {
			
			//Left Navi
			if ( st > leftMinTop ) {
				if ( $left.css("position") != "fixed" ) {
					$left.css("position","fixed");
					$left.css("top",leftPaddingTop+"px");
				}
			} else {
				if ( $left.css("position") != "absolute" ) {
					$left.css("position","absolute");
					$left.css("top",leftDefaultTop+"px");
				}
			}
			
		} else {
			
			//Left Navi
			if ( st > leftMinTop ) {
				$left.css("top",(st+leftPaddingTop)+"px");
			} else {
				$left.css("top",leftDefaultTop+"px");
			}
			
			//PAGENAVI
			var p = st+windowHeight - 150;
			$pnavi.css("top",p+"px");
			
		}
		
	}
	
});

