(function ($) {
	/* ------------------------------- */
	$(function(){
		var $div = $("div");
		load_event();
		rollover();
		
		/* トップ、フッターのスライダで使う関数 */
		if($div.is("#bnr_btn")){
			slideFunc();
		}
	});
})(jQuery);

/*image rollover*/
var load_event = function(){
	$('a>img[src*="-off"],input[src*="-off-"]').each(function(){
		var $$ = $(this);
		$$.mouseover(function(){ $(this).attr('src', $(this).attr('src').replace(/-off-/,'-on-')) });
		$$.mouseout (function(){ $(this).attr('src', $(this).attr('src').replace(/-on-/,'-off-')) });
	});
	$('a[subwin]').die('click').click(subwin_func);
	$('#grid_conts').masonry({
		// options
		itemSelector : '.box',
		columnWidth: function( containerWidth ) {
		return containerWidth / 3;
		}
	});
	$('#grid_conts2').masonry({
		// options
		itemSelector : '.box',
		columnWidth: function( containerWidth ) {
			return containerWidth / 2;
		}
	});
}

/*sub window*/
var subwin_func = function () {
	var $$ = $(this);
	var param = $$.attr('subwin').split(/\D+/);
	var w = param[0] || 300;
	var h = param[1] || 300;
	var s = ($$.attr('subwin').match(/slim/))?'no':'yes';
	var r = ($$.attr('subwin').match(/fix/) )?'no':'yes';
	var t = $$.attr('target') || '_blank' ;
	window.open( $$.attr('href'), t, "resizable="+r+",scrollbars="+s+",width="+w+",height="+h ).focus();
	return false;
}

var rollover = function () {
	$("a .rhover").hover(function(){
		var css = {opacity:0.8};
		$(this).stop().animate(css, 150);
	},function(){
		var css = {opacity:1};
		$(this).stop().animate(css, 150);
	});
}

/* トップ、フッターのスライダで使う関数 */
var slideFunc = function(){
	//slide部分Parts
	var $wrap = $("div#bnr_btn");
	var $inner = $wrap.find("div#bnr_btn_inner");
	var $box = $inner.find("ul:first");
	var boxSize = $box.width();	
	var $prev = $("#prev_btn");
	var $next = $("#next_btn");
	var timer = null;
	var flag = false;
	var timerFlag = true;
	
	//topページ部分Parts
	if($("body").is("#toppage")){
		var topFlag = true;
		var $topWrap = $("#top_main ul:first");
		var $topBox = $topWrap.find("li");
		var topBoxSize = $topBox.length;//記事の数

		var $currentBox = $topWrap.find("li.current");
		var currentNum = $topBox.index($currentBox);
		var postNum = 0;
		
		var topTimer = null;
		$topBox.eq(currentNum).css({
			display:"block",
			zIndex:100
		});
		//Twitterスライダ
		$('dl.headline_conts').twTicker({
			// some options...
			query:'from%3Aneyadora',
			length: 3,
			duration: 30000
		});
	}
	
	//初期化
	var init = function(){
		//スライド部分のコンテンツ量を計算→コピー
		var currentVal = Number(-1 * boxSize);
		$inner.append($box.clone()).append($box.clone()).css({
			width: Number(boxSize * 3)
		});
			
		//topページに使う関数
		var topSlideFunc = function(target, e){
			var target = target;
			var eDetail = e;
			
			var lastFunc = function(){
				//clearTimeout(topTimer);
				//Mouseoverでなければ次のスライドイベントをセット
				clearTimeout(topTimer);
				if(!eDetail){
					topTimer = setTimeout(function(){
						topSlideFunc();
					}, 5000)
				}
			}
			
			var displayFunc = function(){
				//currentクラスの付け替え
				$topBox.removeClass("current");
				$topBox.eq(postNum).addClass("current");
				
				for(var i = 0; i < topBoxSize; i++){
					if(Number(currentNum) === Number(i)){
						$topBox.eq(i).css({
							display:"none",
							zIndex:100
						}).fadeIn(300, function(){
							$(this).css({
								display:"block"
							})
						});
					}else{
						$topBox.eq(i).css({
							display:"none",
							zIndex:0
						});
					}
				}
				return lastFunc();
			}
			if(target){
				//引き数有り仕様
				currentNum = target;
				postNum = Number(currentNum) + 1;
				if(postNum === topBoxSize) postNum = 0;
				return displayFunc();
			}else{
				//引き数無し仕様
				$currentBox = $topWrap.find("li.current");
				currentNum = $topBox.index($currentBox);
				
				postNum = currentNum + 1;
				if(postNum === topBoxSize) postNum = 0;
				
				return displayFunc();
			}
		};//topSlideFunc
		
		//スライダ部分に使う関数
		var slideFunc = function(){
			if(flag){
				currentVal = Number(currentVal + 2);
			}else{
				currentVal = Number(currentVal - 2);
			}
			
			$inner.css({
				left:currentVal
			})
			if(currentVal === 0 || currentVal === boxSize
				|| currentVal < boxSize * -2 || currentVal > boxSize * 2){
				currentVal = Number(-1 * boxSize);
			}
			timer = setTimeout(function(){
				if(timerFlag){
					slideFunc();
				}
			}, 150)
		};//slideFunc
		
		//Partsにイベント付け
		$inner.bind("mouseover", function(){
			timerFlag = false;
		})
		$inner.bind("mouseout", function(){
			timerFlag = true;
			slideFunc();
		})
		$prev.bind("mouseover", function(){
			flag = false;
		})
		$next.bind("mouseover", function(){
			flag = true;
		})
		slideFunc();

		//topのみ下記を実行
		if(topFlag){
			//スライド部分Parts
			var $thumb = $inner.find("li");
			$thumb.each(function(){
				//画像の数字を抽出
				var num = $(this).find("img").attr("src").split("thumbnails/bn")[1].split(".jpg")[0];
				//スライド部分のマウスオーバーイベント
				$(this).bind("mouseover",{thisNum: num},function(e){
					topSlideFunc(e.data.thisNum, "MO");
				})
				//スライド部分のマウスアウトイベント
				$(this).bind("mouseout",function(e){})
			});
			$("#top_main").bind("mouseover", function(){})
			$("#top_main").bind("mouseout", function(){
				topSlideFunc();
			})
			topSlideFunc();
		}
	}
	init();
}
