var xScroll = {};
/******************************************************************//*
 * タブコンテナにclass tabContent　を指定
 * タブコンテナ内には各コンテンツのDIVがID付きで格納されている
 */
xScroll.init = function(){
	//探す
	var tmp = $("div[class*='xScroll']");
	if (tmp.length == 0) { return; };
	//引数
	var args = tmp.attr('class').match(/xScroll\[?([^\]]+)\]?/);
	var arg = (args) ? args[1].split(',') : [];
	//初期化
	xScroll.target = $('#'+tmp.attr('id'));
	xScroll.inner = xScroll.target.find('.xInner');
	xScroll.num = xScroll.inner.children().length;
	xScroll.current = (arg[2]) ? arg[2] : 1;
	xScroll.speed = (arg[3]) ? arg[3] : 'slow';
	//個別リンクがあるか探す
	var hash = '';
	if(String(location.hash).search('#scroll_') != -1){
		hash = String(location.hash).replace('#scroll_', '');
	}
	
	//CSS設定
	xScroll.totalWidth = 0;
	xScroll.biggestHeight = 0;
	jQuery.each(xScroll.inner.children(), function(){
		xScroll.totalWidth += $(this).width();
		if(xScroll.biggestHeight < $(this).height()) xScroll.biggestHeight = $(this).height();
	});
	xScroll.target.height(xScroll.biggestHeight);
	xScroll.inner.width(xScroll.totalWidth);
	xScroll.target.css('overflow','hidden');
	xScroll.target.css('position','relative');
	xScroll.inner.css('position','absolute');
	xScroll.inner.children().css('float','left');
	$('body').height('100%');
	
	//個別リンクが設定されてた場合
	if(hash != ''){
		updateToggleByKey('xScroll', hash);
		xScroll.slideTo(hash);
	}
	else if(xScroll.current != 1){
		var target = xScroll.inner.children('div:nth-child('+xScroll.current+')');
		updateToggleByKey('xScroll', target.attr('id'));
		xScroll.slideTo(xScroll.current);
	}
	else{
		var target = xScroll.inner.children('div:first-child');
		updateToggleByKey('xScroll',target.attr('id'));
	}
}

/**
 * コンテンツIDを指定して切り替え
 * @param {Object} id
 */
xScroll.slideTo = function(id){
	if(typeof(id) == 'string'){
		var p = $('#'+id).position();
		xScroll.inner.animate({"left": -p.left}, xScroll.speed);
		xScroll.current = xScroll.inner.children().index($('#'+id)) + 1;
		location.hash = '#scroll_'+id;
	}
	else if(typeof(id) == 'number'){
		var target = xScroll.inner.children('div:nth-child('+id+')');
		var p = target.position();
		xScroll.inner.animate({"left": -p.left}, xScroll.speed);
		xScroll.current = id;
		location.hash = '#scroll_'+target.attr('id');
	}
}

xScroll.next = function(){
	xScroll.current++;
	if(xScroll.current > xScroll.num) xScroll.current = 1;
	var target = xScroll.inner.children('div:nth-child('+xScroll.current+')');
	var p = target.position();
	xScroll.inner.animate({"left": -p.left}, xScroll.speed);
	location.hash = '#scroll_'+target.attr('id');
	updateToggleByKey('xScroll', target.attr('id'));
}

xScroll.prev = function(){
	xScroll.current--;
	if(xScroll.current < 1) xScroll.current = xScroll.num;
	var target = xScroll.inner.children('div:nth-child('+xScroll.current+')');
	var p = target.position();
	xScroll.inner.animate({"left": -p.left}, xScroll.speed);
	location.hash = '#scroll_'+target.attr('id');
	updateToggleByKey('xScroll', target.attr('id'));
}
