/* 拡張JavaScript */

/*
* loopedSlider 0.5.6 - jQuery plugin
* written by Nathan Searles
* http://nathansearles.com/loopedslider/
*
* Copyright (c) 2009 Nathan Searles (http://nathansearles.com/)
* Dual licensed under the MIT (MIT-LICENSE.txt)
* and GPL (GPL-LICENSE.txt) licenses.
*
* Built for jQuery library
* http://jquery.com
* Compatible with jQuery 1.3.2+
*
*/

/*
* markup example for jQuery("#loopedSlider").loopedSlider();
*
* <div id="loopedSlider">
* <div class="container">
* <div class="slides">
* <div><img src="01.jpg" alt="" /></div>
* <div><img src="02.jpg" alt="" /></div>
* <div><img src="03.jpg" alt="" /></div>
* <div><img src="04.jpg" alt="" /></div>
* </div>
* </div>
* <a href="#" class="previous">previous</a>
* <a href="#" class="next">next</a>
* </div>
*
*/

if(typeof jQuery != 'undefined') {
jQuery(function(jQuery) {
jQuery.fn.extend({
loopedSlider: function(options) {
var settings = jQuery.extend({}, jQuery.fn.loopedSlider.defaults, options);

return this.each(
function() {
if(jQuery.fn.jquery < '1.3.2') {return;}
var jQueryt = jQuery(this);
var o = jQuery.metadata ? jQuery.extend({}, settings, jQueryt.metadata()) : settings;

var distance = 0;
var times = 1;
var slides = jQuery(o.slides,jQueryt).children().size();
var width = jQuery(o.slides,jQueryt).children().outerWidth();
var position = 0;
var active = false;
var number = 0;
var interval = 0;
var restart = 0;
var pagination = jQuery("."+o.pagination+" li a",jQueryt);

if(o.addPagination && !jQuery(pagination).length){
var buttons = slides;
jQuery(jQueryt).append("<ul class="+o.pagination+">");
jQuery(o.slides,jQueryt).children().each(function(){
if (number<buttons) {
jQuery("."+o.pagination,jQueryt).append("<li><a rel="+(number+1)+" href=\"#\" >"+(number+1)+"</a></li>");
number = number+1;
} else {
number = 0;
return false;
}
jQuery("."+o.pagination+" li a:eq(0)",jQueryt).parent().addClass("active");
});
pagination = jQuery("."+o.pagination+" li a",jQueryt);
} else {
jQuery(pagination,jQueryt).each(function(){
number=number+1;
jQuery(this).attr("rel",number);
jQuery(pagination.eq(0),jQueryt).parent().addClass("active");
});
}

if (slides===1) {
jQuery(o.slides,jQueryt).children().css({position:"absolute",left:position,display:"block"});
return;
}

jQuery(o.slides,jQueryt).css({width:(slides*width)});

jQuery(o.slides,jQueryt).children().each(function(){
jQuery(this).css({position:"absolute",left:position,display:"block"});
position=position+width;
});

jQuery(o.slides,jQueryt).children(":eq("+(slides-1)+")").css({position:"absolute",left:-width});

if (slides>3) {
jQuery(o.slides,jQueryt).children(":eq("+(slides-1)+")").css({position:"absolute",left:-width});
}

if(o.autoHeight){autoHeight(times);}

jQuery(".next",jQueryt).click(function(){
if(active===false) {
animate("next",true);
if(o.autoStart){
if (o.restart) {autoStart();}
else {clearInterval(sliderIntervalID);}
}
} return false;
});

jQuery(".previous",jQueryt).click(function(){
if(active===false) {
animate("prev",true);
if(o.autoStart){
if (o.restart) {autoStart();}
else {clearInterval(sliderIntervalID);}
}
} return false;
});

if (o.containerClick) {
jQuery(o.container,jQueryt).click(function(){
if(active===false) {
animate("next",true);
if(o.autoStart){
if (o.restart) {autoStart();}
else {clearInterval(sliderIntervalID);}
}
} return false;
});
}

jQuery(pagination,jQueryt).click(function(){
if (jQuery(this).parent().hasClass("active")) {return false;}
else {
times = jQuery(this).attr("rel");
jQuery(pagination,jQueryt).parent().siblings().removeClass("active");
jQuery(this).parent().addClass("active");
animate("fade",times);
if(o.autoStart){
if (o.restart) {autoStart();}
else {clearInterval(sliderIntervalID);}
}
} return false;
});

if (o.autoStart) {
sliderIntervalID = setInterval(function(){
if(active===false) {animate("next",true);}
},o.autoStart);
function autoStart() {
if (o.restart) {
clearInterval(sliderIntervalID);
clearInterval(interval);
clearTimeout(restart);
restart = setTimeout(function() {
interval = setInterval( function(){
animate("next",true);
},o.autoStart);
},o.restart);
} else {
sliderIntervalID = setInterval(function(){
if(active===false) {animate("next",true);}
},o.autoStart);
}
};
}

function current(times) {
if(times===slides+1){times = 1;}
if(times===0){times = slides;}
jQuery(pagination,jQueryt).parent().siblings().removeClass("active");
jQuery(pagination+"[rel='" + (times) + "']",jQueryt).parent().addClass("active");
};

function autoHeight(times) {
if(times===slides+1){times=1;}
if(times===0){times=slides;}
var getHeight = jQuery(o.slides,jQueryt).children(":eq("+(times-1)+")",jQueryt).outerHeight();
jQuery(o.container,jQueryt).animate({height: getHeight},o.autoHeight);
};

function animate(dir,clicked){
active = true;
switch(dir){
case "next":
times = times+1;
distance = (-(times*width-width));
current(times);
if(o.autoHeight){autoHeight(times);}
if(slides<3){
if (times===3){jQuery(o.slides,jQueryt).children(":eq(0)").css({left:(slides*width)});}
if (times===2){jQuery(o.slides,jQueryt).children(":eq("+(slides-1)+")").css({position:"absolute",left:width});}
}
jQuery(o.slides,jQueryt).animate({left: distance}, o.slidespeed,function(){
if (times===slides+1) {
times = 1;
jQuery(o.slides,jQueryt).css({left:0},function(){jQuery(o.slides,jQueryt).animate({left:distance})});
jQuery(o.slides,jQueryt).children(":eq(0)").css({left:0});
jQuery(o.slides,jQueryt).children(":eq("+(slides-1)+")").css({ position:"absolute",left:-width});
}
if (times===slides) jQuery(o.slides,jQueryt).children(":eq(0)").css({left:(slides*width)});
if (times===slides-1) jQuery(o.slides,jQueryt).children(":eq("+(slides-1)+")").css({left:(slides*width-width)});
active = false;
});
break;
case "prev":
times = times-1;
distance = (-(times*width-width));
current(times);
if(o.autoHeight){autoHeight(times);}
if (slides<3){
if(times===0){jQuery(o.slides,jQueryt).children(":eq("+(slides-1)+")").css({position:"absolute",left:(-width)});}
if(times===1){jQuery(o.slides,jQueryt).children(":eq(0)").css({position:"absolute",left:0});}
}
jQuery(o.slides,jQueryt).animate({left: distance}, o.slidespeed,function(){
if (times===0) {
times = slides;
jQuery(o.slides,jQueryt).children(":eq("+(slides-1)+")").css({position:"absolute",left:(slides*width-width)});
jQuery(o.slides,jQueryt).css({left: -(slides*width-width)});
jQuery(o.slides,jQueryt).children(":eq(0)").css({left:(slides*width)});
}
if (times===2 ) jQuery(o.slides,jQueryt).children(":eq(0)").css({position:"absolute",left:0});
if (times===1) jQuery(o.slides,jQueryt).children(":eq("+ (slides-1) +")").css({position:"absolute",left:-width});
active = false;
});
break;
case "fade":
times = [times]*1;
distance = (-(times*width-width));
current(times);
if(o.autoHeight){autoHeight(times);}
jQuery(o.slides,jQueryt).children().fadeOut(o.fadespeed, function(){
jQuery(o.slides,jQueryt).css({left: distance});
jQuery(o.slides,jQueryt).children(":eq("+(slides-1)+")").css({left:slides*width-width});
jQuery(o.slides,jQueryt).children(":eq(0)").css({left:0});
if(times===slides){jQuery(o.slides,jQueryt).children(":eq(0)").css({left:(slides*width)});}
if(times===1){jQuery(o.slides,jQueryt).children(":eq("+(slides-1)+")").css({ position:"absolute",left:-width});}
jQuery(o.slides,jQueryt).children().fadeIn(o.fadespeed);
active = false;
});
break;
default:
break;
}
};
}
);
}
});
jQuery.fn.loopedSlider.defaults = {
container: ".container", //Class/id of main container. You can use "#container" for an id.
slides: ".slides", //Class/id of slide container. You can use "#slides" for an id.
pagination: "pagination", //Class name of parent ul for numbered links. Don't add a "." here.
containerClick: true, //Click slider to goto next slide? true/false
autoStart: 0, //Set to positive number for true. This number will be the time between transitions.
restart: 0, //Set to positive number for true. Sets time until autoStart is restarted.
slidespeed: 900, //Speed of slide animation, 1000 = 1second.
fadespeed: 1000, //Speed of fade animation, 1000 = 1second.
autoHeight: 0, //Set to positive number for true. This number will be the speed of the animation.
addPagination: false //Add pagination links based on content? true/false
};
});
}
       
       jQuery(document).ready(function() {
  jQuery('#loopedSlider').loopedSlider({
    autoStart: 5500, //ループが始まる時間
    restart: 5000 //要素の表示時間
  });
});
