/*!
 * jQuery flowGallery plugin: Cover Flow Image Gallery
 * Examples and documentation at: http://github.com/bozz/flowGallery
 * version 0.6.4 (03-JUL-2011)
 * Author: Boris Searles (boris@lucidgardens.com)
 * Requires jQuery v1.3.2 or later
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 * 
 * 
 * Nissan Century Securities Co., Ltd.
 * リンク機能の追加
 * 
 * キャプション位置を画像のボトムに重なるよう変更
 * 
 * タイマー機能の追加
 * ticker:false,
 * tickerSpeed:5000,
 * 
 * ロード時のランダム再生追加
 * randomIndex:false,
 * 
 * リストメニュー機能の追加
 * showList:false
 * 
*/

(function(n){var r;n.fn.flowGallery=function(i){return t=n.extend(n.fn.flowGallery.defaults,i),this.each(function(){p(this)})},r=0,n.fn.flowGallery.defaults={activeIndex:0,animate:!0,enableKeyNavigation:!0,forwardOnActiveClick:!1,forceWidth:!1,forceHeight:!1,backgroundColor:"black",thumbWidth:"auto",thumbHeight:"auto",thumbTopOffset:"auto",imagePadding:4,thumbPadding:3,loadingClass:"loading",easing:"linear",duration:900,ticker:!1,tickerSpeed:5e3,randomIndex:!1,showList:!1};var t={},p=function(i){var h,c,y,o;_elCounter=0,_activeIndex=0,_activeElem=!1,_activeLoaded=!1,_listElem=!1,_listWidth=0,_listHeight=0,_centerX=0,_centerY=0,_container=null,_imgData=[],_listElem=i,t.randomIndex&&(t.activeIndex=Math.floor(Math.random()*n(_listElem).children().length)),_container=n(_listElem).css({listStyle:"none",overflow:"hidden",marginLeft:"0px",paddingLeft:"0px",position:"relative",width:"100%"}).parent(),h=document.createElement("div"),c=document.createElement("p"),n(c).addClass("bf-caption").css({backgroundColor:t.backgroundColor,display:"none",marginTop:"0px",padding:"8px "+(t.imagePadding+10)+"px 8px",position:"absolute"}),n(h).addClass("bf-wrapper").css({position:"relative"}).append(_listElem).append(c),t.showList&&n(h).append('<div id="fi_select_menu"><ul id="fi_select_menu_list"></ul></div>'),_container.append(h),n(window).resize(function(){_listWidth=_container.width(),_centerX=_listWidth*.5,u(),s(_activeElem)}),y=n(_listElem).children(),o=!1,y.each(function(i){var u,s,f;t.showList&&(n("#fi_select_menu_list").append('<li id="fsm'+i+'"><a>●</a></li>'),n("#fsm"+i+" a").click(function(){return d(i),!1}),t.ticker&&n("#fsm"+i+" a").hover(function(){clearInterval(r),r=""},function(){r==""&&e()})),u=n(this).find("img"),t.forceWidth&&u.width(t.forceWidth),s=l(u.get(0)),f=v(u,s),_imgData.push(f),b(u,i),i===_activeIndex&&s&&(o=f.h),w(this,i)}),t.showList&&f(),_listWidth=_container.width(),_centerX=_listWidth*.5,_centerY=o?t.thumbTopOffset==="auto"?o*.5:t.thumbTopOffset:t.thumbTopOffset==="auto"?_listHeight*.5:t.thumbTopOffset+t.thumbHeight*.5,t.enableKeyNavigation===!0&&n(document).unbind("keydown",a).keydown(a),u(),t.ticker&&e(),n(_listElem).css("visibility","visible")},a=function(n){clearInterval(r),r="",n.keyCode===37?h(-1):n.keyCode===39&&h(1),r==""&&e()},w=function(i,r){n(i).css({backgroundColor:t.backgroundColor,position:"absolute",textAlign:"center"}).find("img").css({cursor:"pointer",height:"100%",imageRendering:"optimizeQuality",width:"100%"}),n(i).prepend('<div class="fg_mask alp_out"></div>'),n(".fg_mask").hover(function(){n(this).removeClass("alp_out").addClass("alp_ovr")},function(){n(this).removeClass("alp_ovr").addClass("alp_out")}),_activeElem||t.activeIndex!==r||(n(i).addClass("active").find("img").css({cursor:"default"}),n(i).find("a img").css({cursor:"pointer"}),n(i).find(".fg_mask").css({display:"none"}),_activeElem=i,_activeIndex=r),_elCounter++},u=function(i){var e=!0,a,l,h,v,c=0,r=null,o=function(){s(_activeElem),_container.width()!==_listWidth&&(_listWidth=_container.width(),_centerX=_listWidth*.5,u(),s(_activeElem))},f={};n(_listElem).children().each(function(u){n(this).hasClass("active")?(f={left:_centerX-t.imagePadding-_imgData[u].w*.5+"px",top:"0px",width:_imgData[u].w+"px",height:_imgData[u].h+"px",padding:t.imagePadding+"px"},e=!1,r=o,n(this).find("img").css({cursor:"default"}),n(this).find("a img").css({cursor:"pointer"}),n(this).find(".fg_mask").css({display:"none"})):(f={left:k(u,e),top:_centerY-_imgData[u].th*.5+"px",width:_imgData[u].tw+"px",height:_imgData[u].th+"px",padding:t.thumbPadding+"px"},r=null,n(this).find("img").css({cursor:"pointer"}),n(this).find("a img").css({cursor:"pointer"}),n(this).find(".fg_mask").css({display:"block"})),i?n(this).stop().animate(f,{duration:t.duration,easing:t.easing,complete:r}):(n(this).css(f),r&&r())})},k=function(n,r){var u=_centerX;if(r){for(u-=_imgData[_activeIndex].w*.5,u-=t.imagePadding,u-=(_activeIndex-n)*10,u-=(_activeIndex-n)*2*t.thumbPadding,i=n;i<_activeIndex;i++)u-=_imgData[i].tw;return u+"px"}for(u+=_imgData[_activeIndex].w*.5,u+=t.imagePadding,u+=(n-_activeIndex)*10,u+=(n-_activeIndex)*2*t.thumbPadding,i=_activeIndex+1;i<n;i++)u+=_imgData[i].tw;return u+"px"},s=function(i){var f=n(i).find("img").get(0),o,u,h,s;if(!l(f))return!1;o=!1,n(f).parent().get(0).tagName.toLowerCase()=="a"&&(o=!0),u=o?n(i).parent().parent().parent().find("p.bf-caption"):n(i).parent().parent().find("p.bf-caption"),h=f.title;if(f.title.length>0){u.text(h);var a=u.css("paddingTop").replace("px","")*1,v=u.css("paddingBottom").replace("px","")*1,y=u.css("borderTopWidth").replace("px","")*1,c=u.css("borderBottomWidth").replace("px","")*1;u.css({left:_centerX-t.imagePadding-_imgData[_activeIndex].w*.5+"px",top:_imgData[_activeIndex].h+t.imagePadding*2-u.height()-a-v-y-c+"px",width:_imgData[_activeIndex].w-20+"px"}),s=n(_listElem).height()+u.height()+40,n(_listElem).parent().height(s),u.fadeIn("fast"),t.ticker&&u.hover(function(){clearInterval(r),r=""},function(){r==""&&e()})}},v=function(n,i){var u,r,o,e,f,s;return i=i||!1,e=0,i?(f=n.get(0),typeof f.naturalWidth!="undefined"?(u=t.forceWidth||f.naturalWidth||f.width,r=t.forceHeight||f.naturalHeight||f.height):(s=new Image,s.src=n.attr("src"),u=s.width,r=s.height)):(u=n.attr("width"),r=n.attr("height")),t.thumbWidth==="auto"&&t.thumbHeight=="auto"?(o=100,e=Math.round(r*100/u)):t.thumbHeight==="auto"?(o=t.thumbWidth,e=Math.round(r*Number(t.thumbWidth)/u)):t.thumbWidth==="auto"?(o=Math.round(u*Number(t.thumbHeight)/r),e=t.thumbHeight):(o=t.thumbWidth,e=t.thumbHeight),y(r),{h:r,w:u,th:e,tw:o}},l=function(n){return t.forceWidth&&t.forceHeight||n.width>t.thumbWidth&&n.height>20?!0:n.complete?typeof n.naturalWidth!="undefined"&&n.naturalWidth===0?!1:!0:!1},b=function(i,r){var f=!1,o,e;i.parent().get(0).tagName.toLowerCase()=="a"&&(f=!0),i.hide(),f?i.parent().parent().addClass(t.loadingClass).css({height:_imgData[r].th+"px",width:_imgData[r].tw+"px"}):i.parent().addClass(t.loadingClass).css({height:_imgData[r].th+"px",width:_imgData[r].tw+"px"}),i.hide().parent().addClass(t.loadingClass).css({height:_imgData[r].th+"px",width:_imgData[r].tw+"px"}),o=function(e){var s,o;(this.complete||this.readyState==="complete"&&e.type==="readystatechange")&&(n(this).css("visibility","visible"),f?n(this).parent().parent().removeClass(t.loadingClass):n(this).parent().removeClass(t.loadingClass),n(this).fadeIn(),s=v(i,!0),_imgData[r]=s,r===t.activeIndex?(_activeLoaded=!0,_centerY=t.thumbTopOffset==="auto"?s.h*.5:t.thumbTopOffset,e&&u()):(o={height:s.th+"px"},_activeLoaded&&(o.top=_centerY-_imgData[r].th*.5+"px"),f?i.parent().parent().animate(o):i.parent().animate(o)),f?c(i.parent().parent()):c(i.parent()))},e=i.get(0),e.complete?o.call(e):i.bind("load readystatechange",o).bind("error",function(){n(this).css("visibility","visible"),n(this).parent().get(0).tagName.toLowerCase()=="a"?n(this).parent().parent().removeClass(t.loadingClass):n(this).parent().removeClass(t.loadingClass)})},c=function(i){n(i).click(function(){this!==_activeElem?(n("p.bf-caption").hide(),_activeIndex=0,_activeElem=this,n(this).parent().children().each(function(n){_activeElem===this&&(_activeIndex=n)}),o(),u(t.animate)):t.forwardOnActiveClick===!0&&h(1),t.showList&&f()}),t.ticker&&n(i).hover(function(){clearInterval(r),r=""},function(){r==""&&e()})},e=function(){r=setInterval(function(){n(_listElem).children().each(function(n){_activeElem===this&&(_activeIndex=n+1)}),_activeIndex===_elCounter?(_activeIndex=0,_activeElem=n(_listElem).children().get(0)):_activeElem=n(_listElem).children().get(_activeIndex),o(),u(t.animate),t.showList&&f()},t.tickerSpeed)},d=function(i){_activeIndex=i,_activeElem=n(_listElem).children().get(_activeIndex),o(),u(t.animate),f()},f=function(){n("#fi_select_menu ul").children().each(function(t){t===_activeIndex?n("a",this).addClass("active"):n("a",this).removeClass("active")})},h=function(i){if(i<0&&_activeIndex>0)_activeIndex+=i;else if(i>0&&_activeIndex<_imgData.length-1)_activeIndex+=i;else return!1;_activeElem=n(_listElem).children().get(_activeIndex),o(),u(t.animate),t.showList&&f()},o=function(){n("p.bf-caption").hide(),n(_listElem).find(".active").removeClass("active"),n(_activeElem).addClass("active"),_listWidth=_container.width(),_centerX=_listWidth*.5},y=function(i){i>_listHeight&&(_listHeight=i*1,_listHeight+=t.imagePadding*2,n(_listElem).height(_listHeight))}})(jQuery)
