// Swishbox ver0.91
// designed by masato kimura (m.kimura@elephant-com.co.jp)


var Swishbox={init:function(B){if(!Very.sbCount[0]||!Very.sbCount[1]){return }this.options=$extend({initWidth:100,initHeight:40,startWidth:240,startHeight:120,fxtime:550,fxtrans:"sine:in:out",position:"top"},B||{});this.height=window.getScrollSize().y;this.path="css/swishbox/";var A=[this.path+"bg_lt.png",this.path+"bg_lb.png",this.path+"bg_rt.png",this.path+"bg_rb.png"];this.flags={act:false,num:0,step:0,from:0};this.trigger=[$("fx_linkNew"),$("fx_linkNext")];this.trigger.each(function(D,C){D.addEvent("click",this.click.bind(this,C))},this);this.images=[];Very.sbCount.each(function(C){for(i=0,j=1;i<C[0];i++,j++){this.images.push(Very.imgpath+C[1]+j+".jpg")}},this);this.component=new Asset.images(A);this.resize();this.elements()},elements:function(){this.overlay=new Element("div",{id:"sb_overlay",morph:{duration:this.options.fxtime},styles:{height:this.windowSize,opacity:0}}).inject($$("body")[0]);this.wrapper=new Element("div",{id:"sb_wrapper",styles:{height:this.windowSize}}).inject(this.overlay,"after");this.container=new Element("div",{id:"sb_container",styles:{width:this.options.initWidth,height:this.options.initHeight}}).inject(this.wrapper);this.containerAdd=70;this.container.adopt([new Element("div",{id:"sb_bgLT"}),new Element("div",{id:"sb_bgLB"}),new Element("div",{id:"sb_bgRB"})]);this.bgAdd=new Element("div",{id:"sb_bgRT",styles:{height:this.options.initHeight}}).inject(this.container);this.imageContent=new Element("div",{id:"sb_image",styles:{opacity:0}});this.container.adopt(new Element("div",{id:"sb_content"}).grab(this.imageContent));this.image=new Element("div",{id:"sb_element",styles:{opacity:0}}).inject(this.imageContent);this.linkNext=[];this.linkNext.push(new Element("div",{id:"sb_linkNext"}).inject(this.image));this.linkNext.push(new Element("div",{id:"sb_btnNext"}));this.hoverNext=new Element("div",{"class":"sb_hover",styles:{visibility:"hidden"}}).inject(this.linkNext[0]);this.linkNext.each(function(A){A.set({title:"次のページへ",events:{mouseenter:this.mouse.bind(this,["enter",this.linkNext,this.hoverNext]),mouseleave:this.mouse.bind(this,["leave",this.linkNext,this.hoverNext]),click:this.mouse.bind(this,["click","next"])}})},this);this.linkPrev=[];this.linkPrev.push(new Element("div",{id:"sb_linkPrev"}).inject(this.image));this.linkPrev.push(new Element("div",{id:"sb_btnPrev"}));this.hoverPrev=new Element("div",{"class":"sb_hover",styles:{visibility:"hidden"}}).inject(this.linkPrev[0]);this.linkPrev.each(function(A){A.set({title:"前のページへ",events:{mouseenter:this.mouse.bind(this,["enter",this.linkPrev,this.hoverPrev]),mouseleave:this.mouse.bind(this,["leave",this.linkPrev,this.hoverPrev]),click:this.mouse.bind(this,["click","previous"])}})},this);this.image.grab(new Element("div",{id:"sb_btn"}).adopt(this.linkNext[1],this.linkPrev[1]));this.closeBtn=new Element("div",{id:"sb_close",events:{mouseenter:function(){this.addClass("hover")},mouseleave:function(){this.removeClass("hover")}}}).inject(this.container).grab(new Element("img",{id:"sb_close_img",alt:"close",src:this.path+"close.png"}));[this.closeBtn,this.wrapper].each(function(A){A.addEvent("click",this.close.bindWithEvent(this))},this);this.fx={img:new Fx.Morph(this.imageContent,{duration:this.options.fxtime,transition:this.options.fxtrans,onComplete:this.nextEffect.bind(this)}),con:new Fx.Morph(this.container,{duration:this.options.fxtime,transition:this.options.fxtrans}),bg:new Fx.Tween(this.bgAdd,{duration:this.options.fxtime,transition:this.options.fxtrans}),obj:new Fx.Tween(this.image,{duration:this.options.fxtime,transition:this.options.fxtrans,onComplete:this.nextEffect.bind(this)})}},mouse:function(C,B,A){switch(C){case"enter":if(this.flags.act){return false}if((this.flags.num==0)&&(B==this.linkPrev)){break}if((this.flags.num==this.images.length-1)&&(B==this.linkNext)){break}A.setStyle("visibility","visible");B[0].className=B[1].className="hover";break;case"leave":A.setStyle("visibility","hidden");B[0].className=B[1].className="";break;case"click":if(this.flags.act){return false}this.flags.step=1;this[B]();break}},click:function(A){if(this.flags.act){return false}this.flags.act=true;this.flags.num=A?this.images.length-Very.sbCount[A][0]:0;this.flags.from=A;this.set(A);return },position:function(){var A=window.getSize().y;switch(this.options.position){case"center":if(this.preload){this.top=(A-this.preload.height+this.containerAdd)/2-A/8+this.scrollTop}else{this.top=(A/7)+this.scrollTop}break;case"top":if(this.preload){this.top=(A-this.preload.height)/25+(A/100)+this.scrollTop}else{this.top=(A/20)+this.scrollTop}break}return this.top.round()},next:function(){if(this.flags.num+1>=this.images.length){return false}this.flags.num++;this.nextEffect()},previous:function(){if(this.flags.num-1<0){return false}this.flags.num--;this.nextEffect()},set:function(B){this.flags.step=1;this.scrollTop=window.getScroll().y;this.closeBtn.setStyle("opacity",0);this.wrapper.style.display=this.overlay.style.display=this.container.style.display="block";this.startPos={left:$("fx_links").getStyle("left").toInt()-490+this.trigger[B].offsetLeft,top:this.trigger[B].getPosition().y-20};this.container.setStyles({"margin-left":this.startPos.left,top:this.startPos.top});this.overlay.get("morph").start({opacity:0.2});var A=this.options.startWidth;var C=this.options.startHeight;this.fx.con.start({"margin-left":-((A+42)/2)-9,top:this.position()+C,width:A+42,height:C+this.containerAdd});this.fx.img.start({width:A,height:C});this.fx.bg.start("height",C+this.containerAdd)},load:function(){if(!this.flags.act){this.flags.act=true}this.preload=new Asset.image(this.images[this.flags.num],{onload:this.nextEffect.bind(this)})},nextEffect:function(){switch(this.flags.step++){case 1:this.imageContent.setStyle("opacity",1);this.image.style.display="none";switch(this.flags.num){case 0:this.linkNext.each(function(D){D.setStyle("opacity",1)});this.linkPrev.each(function(D){D.setStyle("opacity",0.001)});break;case this.images.length-1:this.linkNext.each(function(D){D.setStyle("opacity",0.001)});this.linkPrev.each(function(D){D.setStyle("opacity",1)});break;default:this.linkNext.each(function(D){D.setStyle("opacity",1)});this.linkPrev.each(function(D){D.setStyle("opacity",1)})}this.load();break;case 2:this.image.style.backgroundImage="url("+this.images[this.flags.num]+")";var C=this.position();var A=this.preload.width;var B=this.preload.height;this.nextHeight=B+this.containerAdd+C+25;this.fx.con.start({"margin-left":-((A+42)/2)-9,top:C,width:A+42,height:B+this.containerAdd});this.image.style.width=A+"px";this.image.style.height=B+"px";this.fx.img.start({width:A,height:B});this.fx.bg.start("height",B+this.containerAdd);break;case 3:if(this.nextHeight>this.windowSize){this.overlay.get("morph").start({height:this.nextHeight})}else{this.overlay.get("morph").start({height:this.windowSize})}this.closeBtn.style.display="block";if(Browser.Engine.trident5){this.closeBtn.setStyle("opacity",1)}else{this.closeBtn.tween("opacity",1)}this.image.setStyle("opacity",0);this.image.style.display="block";this.fx.obj.start("opacity",1);break;case 4:this.flags.act=false;break;case 7:this.image.style.display="none";this.closeBtn.setStyle("opacity",0);var A=this.options.initWidth,B=this.options.initHeight;this.fx.img.start({width:A,height:B,opacity:0});this.fx.con.start({"margin-left":this.startPos.left,top:this.startPos.top,width:A+42,height:B});this.fx.bg.start("height",B);this.overlay.get("morph").start({opacity:0});break;case 8:this.wrapper.style.display=this.overlay.style.display=this.container.style.display="none";this.flags.step=0;this.flags.act=false}},close:function(A){var B=A.target.id;if(this.flags.act){return }if(B=="sb_close_img"||B=="sb_wrapper"){if(this.preload){this.preload=null}this.flags.act=true;this.flags.step=7;this.nextEffect()}},resize:function(){if(Browser.Platform.win&&Browser.Engine.gecko){this.windowSize=window.getSize().y>this.height?window.getSize().y:this.height}else{this.windowSize=window.getScrollSize().y}this.scrollTop=window.getScroll().y;var A=window.getWidth()+window.getScroll().x;if(this.overlay){this.overlay.setStyle("width",A);if(window.getSize().y>this.height){this.overlay.setStyle("height",this.windowSize)}else{if(this.nextHeight>this.height){this.overlay.setStyle("height",this.nextHeight)}else{this.overlay.setStyle("height",this.height)}}}},scroll:function(){var A=window.getWidth()+window.getScroll().x;if(this.overlay){this.overlay.setStyle("width",A)}}};window.addEvents({domready:Swishbox.init.bind(Swishbox),resize:Swishbox.resize.bind(Swishbox),scroll:Swishbox.scroll.bind(Swishbox)});