//-------------------------------------
//Dr. Asami 
//-------------------------------------

function bnrSlide_Start(SliderObj, intv, width, stime){

	return setInterval(
		function () {
//			SliderObj.bnrLeftSlide(width, stime);
			animation_flg = true;
			SliderObj.bnrRightSlide(width, stime);
		},
		intv
	);
}

nx_slide_ques = new Array();
nx_slide_xs = new Array();
nx_slide_times = new Array();
nx_slide_objs = new Array();
animation_flg = false;
imgASIntvID = null;
imgASIntvfunc = null;
//--------------------
//que controll
//--------------------
function openLoopQue(){
	

	if( animation_flg == false && nx_slide_objs.length > 0 ){

		clearInterval(imgASIntvID);
		imgASIntvID = null;

		animation_flg = true;
		
		if( nx_slide_objs.length > 1 ){
			for( var i=0,l=nx_slide_objs.length-1; i<l; i++  ){
				nx_slide_ques.shift();
				nx_slide_xs.shift();
				nx_slide_times.shift();
				nx_slide_objs.shift();
			}
		}
		
		var obj = nx_slide_objs[0];
		var x = nx_slide_xs[0];
		var time = nx_slide_times[0];
		var que = nx_slide_ques[0];

		nx_slide_ques.shift();
		nx_slide_xs.shift();
		nx_slide_times.shift();
		nx_slide_objs.shift();

		obj.bnrObjSlide( x , time , que );
		
	}else if( imgASIntvID == null && nx_slide_objs.length == 0 ){
		
		imgASIntvfunc();
	}
}


//--------------------
//left animation
//--------------------
$.fn.bnrLeftSlide = function(bnr_X, slideTime){
//jQuery.fn.bnrLeftSlide = function(bnr_X, slideTime){
	var sliderObj = this;

	var tmp = sliderObj.find('li:last').clone(true);
	tmp.find('img').show();
	sliderObj.prepend(tmp);
	sliderObj.find('li:last').remove();
	sliderObj.css('left', '-' + (bnr_X * 2) + 'px');

	sliderObj.animate({
			left: '-' + bnr_X + 'px'
		},{
			duration : slideTime,
			easing   : "easeInOutCirc",
			queue:true,
			complete : function(){
				$(this).find('li:gt(3) img').hide();
				animation_flg = false;
				openLoopQue();
			}
		}
	);
	
	return this;
}

//--------------------
//right animation
//--------------------
$.fn.bnrRightSlide = function(bnr_X, slideTime ){
//jQuery.fn.bnrRightSlide = function(bnr_X, slideTime){
	var sliderObj = this;
	
	var tmp = sliderObj.find('li:first').clone(true);
	tmp.find('img').hide();
	
	sliderObj.animate({
			left: '-' + (bnr_X * 2) + 'px'
		},{
			duration : slideTime,
			easing   : "easeInOutCirc",
			queue:true,
			complete : function(){
				$(this).append(tmp);
				$(this).find('li:first').remove();
				$(this).css('left', '-' + bnr_X + 'px');
				$(this).find('li:eq(3) img').show();
				animation_flg = false;
				openLoopQue();
			}
		}
	);
	
	return this;
}
//--------------------
//count animation
//--------------------
$.fn.bnrCountSlide = function(bnr_X, slideTime , pos ){
	var sliderObj = this;
	
	if( pos == -1 ){
//		alert("comple4");
		animation_flg = false;
		openLoopQue();
		return;
	}else{
		$(this).find('li img').show();

		sliderObj.animate({
				left: '-' + (bnr_X * (pos) ) + 'px'
			},{
				duration : slideTime,
				easing   : "easeInOutCirc",
				queue:true,
				complete : function(){
					for( var i = 0; i<(pos-1); i++ ){
						$(this).append( $( "li" , this ).get(0) );
						$(this).css('left', '-' + (bnr_X * ( pos - i ) ) + 'px');
						$(this).find('li:eq(3) img').show();
					}
					$(this).css('left', '-' + bnr_X + 'px');
					animation_flg = false;
					openLoopQue();
				}
			}
		);
	}

	
	return this;
}
//------------------------------------------------
//オブジェクトを渡して、スライド種類を判別する
//------------------------------------------------
$.fn.bnrObjSlide = function(bnr_X, slideTime, target ){
	var sliderObj = this;
//	var tmp = sliderObj.find('li:first').clone(true);


	var lis = sliderObj.find('li').get();
	
	if( lis[1] == target ){
		animation_flg = false;
		openLoopQue();
		return;
	}else if( lis[0] == target ){
		sliderObj.bnrLeftSlide( bnr_X, slideTime );
	}else if( lis[2] == target ){
		sliderObj.bnrRightSlide( bnr_X, slideTime );
	}else{
		sliderObj.bnrCountSlide( bnr_X, slideTime , lis.indexOf( target ) );
	}
	
	return this;
}

//------------------------------------------------
//ターゲットIDからスライドする
//------------------------------------------------
$.fn.bnrNumSlide = function(bnr_X, slideTime, targetId){
	var sliderObj = this;
	var tmp = sliderObj.find('li#'+targetId).get()[0];
	
	nx_slide_objs.push( sliderObj );
	nx_slide_ques.push( tmp );
	nx_slide_xs.push( bnr_X );
	nx_slide_times.push( slideTime );

	openLoopQue();
	return this;
}



$(function(){
//jQuery(document).ready(function($){

// - Image Slider -----------------------------------------------------------------------------
//	var slidetime = 700;
	var slidetime = 2500;
	var autoSlideInterval = 5000;
	var slideObj = $('#image_slider li');
	var imgSlide_num = slideObj.length;
	var imgSlide_X = parseFloat( slideObj.css('width') ) + parseFloat( slideObj.css('padding-left') ) + parseFloat( slideObj.css('padding-right') );
	var imgSlider_X = imgSlide_X * imgSlide_num;

	$('#image_slider ul').css({
		width: imgSlider_X + 'px',
		left: '-' + imgSlide_X + 'px'
	});
	imgASIntvfunc = function(){
		imgASIntvID = bnrSlide_Start(sliderObj, autoSlideInterval, imgSlide_X, slidetime);
	};

	// AutoImageSlide Start
	if(imgSlide_num > 2){
//		var sliderObj = $('#image_slider ul:not(:animated)');
		var sliderObj = $('#image_slider ul');
		imgASIntvfunc();
	}

	// LeftButton ClickEvent
	$('#override .slide_left_btn a').click(function(){
//		var sliderObj = $('#image_slider ul:not(:animated)');
		var sliderObj = $('#image_slider ul');
		if(imgSlide_num > 2 && sliderObj && !animation_flg){
			clearInterval(imgASIntvID);
			imgASIntvID = null;

			animation_flg = true;
			sliderObj.bnrLeftSlide(imgSlide_X, slidetime);
		}
		return false;
	});
	
	// RightButton ClickEvent
	$('#override .slide_right_btn a').click(function(){
//		var sliderObj = $('#image_slider ul:not(:animated)');
		var sliderObj = $('#image_slider ul');

		if(imgSlide_num > 2 && sliderObj && !animation_flg ){
			clearInterval(imgASIntvID);
			imgASIntvID = null;

			animation_flg = true;
			sliderObj.bnrRightSlide(imgSlide_X, slidetime);
		}
		return false;
	});

	$('.slide_num_btn_click').each( function(){
		$( this ).click(function(){
//			var sliderObj = $('#image_slider ul:not(:animated)');
			var sliderObj = $('#image_slider ul');
			if(imgSlide_num > 2 && sliderObj){

				sliderObj.bnrNumSlide(imgSlide_X, slidetime , $( this ).attr("slide") );
			}
			return false;
		}).attr("href","javascript:void(0);");
	});
	$('.slide_num_btn_over').each( function(){
		$( this ).mouseover(function(){
//			var sliderObj = $('#image_slider ul:not(:animated)');
			var sliderObj = $('#image_slider ul');
			if(imgSlide_num > 2 && sliderObj){
				sliderObj.bnrNumSlide(imgSlide_X, slidetime , $( this ).attr("slide") );
			}
			return false;
		});
	});


});

