var xscroll = {};
var stage = this;
/******************************************************************//*
 * X方向のスクロールクラス
 * ul に xscroll とクラス名指定
 * 次へボタンに xscrollNext とクラス名指定
 * 次へボタンに xscrollPrev とクラス名指定
 * arg1 ターゲットとなるタブコンテナの高さ
 * arg2 １ページで表示される個数
 * arg3 スクロールのアニメーション速度
 */
xscroll.init = function(){
	var tmp = $("*[class*='xscroll[']");
	if (tmp.length == 0) { return; };
	jQuery.each(tmp, function() {
		xscroll.container = $(this);
		var args = $(this).attr('class').match(/xscroll\[?([^\]]+)\]?/);
		var arg = (args) ? args[1].split(',') : [];
		xscroll.itemWidth = arg[0];
		xscroll.itemHeight = arg[1];
		xscroll.itemNumInPage = arg[2];
		xscroll.speed = arg[3];
		xscroll.numItems = $(this).children().size();
		xscroll.totalWidth = xscroll.itemWidth * xscroll.numItems;
		xscroll.currentPage = 1;
		xscroll.maxPage = Math.ceil(xscroll.numItems / xscroll.itemNumInPage);
		
		for(var i=1; i <= xscroll.container.children().length; i++){
			var child = xscroll.container.children("li:nth-child("+i+")");
			if(child.hasClass('current')){
				xscroll.currentPage = Math.ceil(i / xscroll.itemNumInPage);
				var num = xscroll.currentPage-1;
				var ty = -(xscroll.itemWidth * xscroll.itemNumInPage) * num;
				xscroll.container.css("left", ty);
				break;
			}
		}

		$(this).parent().css('position','relative');
		$(this).parent().height(Number(xscroll.itemHeight));
		$(this).css('position','absolute');
		$(this).width(xscroll.totalWidth);
		xscroll.nextBtn = $('.xscrollNext');
		xscroll.prevBtn = $('.xscrollPrev');
			
		if(xscroll.maxPage != 1){
			xscroll.checkBtn();
			xscroll.nextBtn.bind("click", xscroll.nextImageSet);
			xscroll.prevBtn.bind("click", xscroll.prevImageSet);
		}
		else{
			stage.setBtnState(xscroll.nextBtn,'isCurrent');
			stage.setBtnState(xscroll.prevBtn,'isCurrent');
		}
	})
}

xscroll.nextImageSet = function(event){
	if(xscroll.currentPage < xscroll.maxPage){
		xscroll.currentPage++;
		xscroll.shiftImage();
		xscroll.checkBtn();
	}
}

xscroll.prevImageSet = function(event){
	if(xscroll.currentPage > 1){
		xscroll.currentPage--;
		xscroll.shiftImage();
		xscroll.checkBtn();
	}
}

xscroll.shiftImage = function(){
	var num = xscroll.currentPage-1;
	var ty = -(xscroll.itemWidth * xscroll.itemNumInPage) * num;
	xscroll.container.animate({"left":ty}, xscroll.speed, "easeOutCubic");
}

xscroll.checkBtn = function(btn){
	if(xscroll.currentPage == xscroll.maxPage){
		stage.setBtnState(xscroll.nextBtn,'isCurrent');
		stage.unsetBtnState(xscroll.prevBtn);
	}
	else if(xscroll.currentPage == 1){
		stage.setBtnState(xscroll.prevBtn,'isCurrent');
		stage.unsetBtnState(xscroll.nextBtn);
	}
	else{
		stage.unsetBtnState(xscroll.nextBtn);
		stage.unsetBtnState(xscroll.prevBtn);
	}
}