/*
 * mopBox 1.4
 * By Hiroki Miura (http://www.mopstudio.jp)
 * Copyright (c) 2008 mopStudio
 * Licensed under the MIT License: http://www.opensource.org/licenses/mit-license.php
 * November 16, 2008
*/

/*flash put in this box*/
var mopBoxNoDrag="object,.scrollBox";
/*path to image*/
var MopBoxCloseBtnF=new Image();
MopBoxCloseBtnF.src="mopBox/sliderClose_f.png";
var mopBoxFwbF=new Image();
mopBoxFwbF.src="mopBox/sliderRightB_f.png";
var mopBoxBwbF=new Image();
mopBoxBwbF.src="mopBox/sliderLeftB_f.png";
var mopBoxLeftArrow=new Image();
mopBoxLeftArrow.src="mopBox/sliderBtnLeft.png";
var mopBoxLeftArrowF=new Image();
mopBoxLeftArrowF.src="mopBox/sliderBtnLeft_f.png";
var mopBoxRightArrow=new Image();
mopBoxRightArrow.src="mopBox/sliderBtnRight.png";
var mopBoxRightArrowF=new Image();
mopBoxRightArrowF.src="mopBox/sliderBtnRight_f.png";

var mopBoxCount=0;
var mopBoxNum=0;
var mopBoxContent="";
var mopBoxSldPosi,mopBoxPages;
var mopBoxTarget,mopBoxPageW,mopBoxSpeed,mopBoxStep,mopBoxStepPx,startPage,mopBoxBgc;
var naviPosi,fbPosi,mopBoxBtnW;

var mopBoxCheckNum;
var mopBoxCheckNum2=0;
var mopBoxSldW;
var mopBoxSldMax;

jQuery.fn.extend({
	mopBox: function(setting) {
		/*variables*/
		var pageH;
		var mopBoxFunc,thisContent,ua,mac,win,browser;
		var stopNum=[];
		$(this).click(function(){
			/*fast open*/
			if(mopBoxCount==0){
				ua=navigator.userAgent;
				if(ua.indexOf("Mac",0)>=0){
					mac=true;
				}else if(ua.indexOf("Win",0)>=0){
					win=true;
				};
				if(jQuery.browser.msie==true){
					if(jQuery.browser.version.charAt(0)==6){
						browser="ie6";
					}else if(jQuery.browser.version.charAt(0)==7){
						browser="ie7";
					};
				};
			};
			var href=$(this).attr("href");
			if($(this).attr("href")){
				$(this).attr({href:"#?mopBox"});
			};
			mopBoxCount+=1;
			/*unique*/
			thisContent=$(this).attr("id");
			mopBoxFunc.init();
		});
		mopBoxFunc={
			init:function(){
				mopBoxTarget=setting.target;/*target*/
				mopBoxPageW=setting.w;/*page width*/
				pageH=setting.h;/*page height*/
				/*option*/
				mopBoxSpeed=setting.speed/*speed*/
				mopBoxStep=setting.step;/*page of 1 slide*/
				mopBoxStepPx=setting.stepPx;/*1 slide size*/
				naviPosi=setting.naviPosi;/*navi position*/
				fbPosi=setting.fbPosi;/*button level position*/
				mopBoxBtnW=setting.btnW/*slider button width*/
				startPage=setting.startPage/*start page*/
				mopBoxBgc=setting.bgc;/*back color*/
				/*fix for second open*/
				$("#mopBox01 .sliderBtn").draggable("destroy");
				$("#mopBox01 .holder").children().remove();
				/*default*/
				if(mopBoxStep==null){mopBoxStep=1;};
				if(mopBoxStepPx==null){mopBoxStepPx=10;};
				if(mopBoxSpeed==null){mopBoxSpeed=300;};
				if(naviPosi==null){naviPosi=5;};
				if(fbPosi==null){fbPosi=50;};
				if(mopBoxBtnW==null){mopBoxBtnW=100;};
				if(startPage==null){startPage=1;};
				/*smallMoveFix*/
				mopBoxCheckNum=mopBoxStepPx/mopBoxStep;
				
				/*fast time*/
				if(mopBoxCount==1){
					$("body").append(
						'<div id="mopBox01" class="dialog">'+
							'<div class="s-topLeft"></div>'+
							'<div class="s-top"></div>'+
							'<div class="s-left"></div>'+
							'<div class="s-topRight"></div>'+
							'<div class="s-right"></div>'+
							'<div class="s-bottomLeft"></div>'+
							'<div class="s-bottom"></div>'+
							'<div class="s-bottomRight"></div>'+
							'<div class="cover"></div>'+
							'<div class="case">'+
								'<div class="holder"></div>'+
							'</div>'+
							'<div class="slider">'+
								'<div class="sldLeft"></div>'+
								'<div class="sldCenter"></div>'+
								'<div class="sldRight"></div>'+
								'<div class="sliderBtn">'+
									'<div class="sldBtnLeft"></div>'+
									'<div class="sldBtnCenter"><div class="pageNumber"></div></div>'+
									'<div class="sldBtnRight"></div>'+
								'</div>'+
							'</div>'+
							'<div class="closeBtn"></div>'+
							'<div class="fwd"></div>'+
							'<div class="bwd"></div>'+
						'</div>'
					);
					/*close*/
					$(".closeBtn").click(
						function(){
							$("#mopBox01 .sliderBtn").draggable("destroy");
							$("#mopBox01 .slider,#mopBox01 .fwd,#mopBox01 .bwd").hide();
							$("#mopBox01 .s-topLeft, #mopBox01 .s-top, #mopBox01 .s-left, #mopBox01 .s-topRight, #mopBox01 .s-right, #mopBox01 .s-bottomLeft, #mopBox01 .s-bottom, #mopBox01 .s-bottomRight").hide();
							$("#mopBox01").fadeOut("slow");
					});
					/*disable on buttons*/
					$("#mopBox01 .fwd,#mopBox01 .bwd,#mopBox01 .closeBtn").hover(
						function(){$("#mopBox01").draggable("disable")},
						function(){$("#mopBox01").draggable("enable")}
					);
					/*draggable*/
					$("#mopBox01").draggable();
					/*hover*/
					if(browser!="ie6"){
						$("#mopBox01 .sliderBtn").hover(
							function(){mopBoxFunc.sldBtnLover();mopBoxFunc.sldBtnRover();},
							function(){mopBoxFunc.sldBtnLout();mopBoxFunc.sldBtnRout();}
						);
						$("#mopBox01 .fwd").hover(
							function(){mopBoxFunc.sldBtnRover();},
							function(){mopBoxFunc.sldBtnRout();}
						);
						$("#mopBox01 .bwd").hover(
							function(){mopBoxFunc.sldBtnLover();},
							function(){mopBoxFunc.sldBtnLout();}
						);
					}
					/*buttons click*/
					$("#mopBox01 .fwd").click(function(){mopBoxFunc.goAndBack("fwd");});
					$("#mopBox01 .bwd").click(function(){mopBoxFunc.goAndBack("bwd")});
				}
				/*setting*/
				$("#mopBox01").pngFix();
				$("#mopBox01 .case,#mopBox01 .s-top,#mopBox01 .s-bottom").css({width:mopBoxPageW+"px"});
				$("#mopBox01 .case,#mopBox01 .s-left,#mopBox01 .s-right").css({height:pageH+"px"});
				$("#mopBox01").css({width:mopBoxPageW+40+"px",height:pageH+40+"px"});
				/*centering*/
				mopBoxFunc.findPosi();
				/*new open or no*/
				if(thisContent!=mopBoxContent){
					/*new open*/
					mopBoxCheckNum2=0;
					mopBoxNum=startPage-1;
					$("#mopBox01 .pageNumber").html(startPage);
					$("#mopBox01 .holder").css({left:-(mopBoxPageW*(startPage-1))+"px"});
					$("#mopBox01 .sliderBtn").css({left:(mopBoxStepPx*(startPage-1))/mopBoxStep+"px"});
					mopBoxContent=thisContent;
				}else{
					/*open again*/
					mopBoxSldPosi=eval($("#mopBox01 .sliderBtn").css("left").split("px")[0]);
					mopBoxNum=(mopBoxSldPosi/mopBoxStepPx)*mopBoxStep;
					$("#mopBox01 .pageNumber").html(""+(mopBoxNum+1));
				}
				/*put contents in holder*/
				var ready1=$(mopBoxTarget).html();
				ready1=jQuery.trim(ready1);
				if(ready1.indexOf("<!--")==0){
					var ready2=ready1.split("<!--")[1];
					var ready3=ready2.split("-->")[0];
					$("#mopBox01 .holder").append('<div>'+ready3+'</div>');
					
				}else{
					($(mopBoxTarget)).clone().appendTo("#mopBox01 .holder");
				}
				/*setting pages*/
				mopBoxPages=$("#mopBox01 .holder").children().children().length;
				/*1pageOnly*/
				if(mopBoxPages==1){
					$("#mopBox01 .slider,#mopBox01 .fwd,#mopBox01 .bwd").hide();
				}else{
					$("#mopBox01 .slider,#mopBox01 .fwd,#mopBox01 .bwd").show();
				}
				/*pages stop positiion*/
				for (i=1; i<mopBoxPages; i++){
				var num=mopBoxPageW*i;
				stopNum.push(num);
				};
				/*setting contents*/
				$("#mopBox01 .holder").children().css({width:mopBoxPageW*mopBoxPages+"px",position:"absolute"});
				$("#mopBox01 .holder").children().children().css({float:"left"});
				$("#mopBox01 .holder").children().show();
				if(mopBoxBgc!=null){
					$("#mopBox01 .case").css({backgroundColor:mopBoxBgc});
				}else{
					$("#mopBox01 .case").css({backgroundColor:""});
				};
				/*show*/
				$("#mopBox01").fadeIn("normal" ,function(){
					$("#mopBox01 .s-topLeft, #mopBox01 .s-top, #mopBox01 .s-left, #mopBox01 .s-topRight, #mopBox01 .s-right, #mopBox01 .s-bottomLeft, #mopBox01 .s-bottom, #mopBox01 .s-bottomRight").show();
				});
				/*disable draggable*/
				$(mopBoxNoDrag).hover(
					function(){$("#mopBox01").draggable("destroy")},
					function(){$("#mopBox01").draggable()}
				);
				/*sliderDrag*/
				mopBoxFunc.sliderDrag();
				/*setting slider*/
				var sliderH=eval($("#mopBox01 .slider").css("height").split("px")[0]);
				var stepAll=mopBoxStepPx*(mopBoxPages-1);
				mopBoxSldW=(stepAll/mopBoxStep)+mopBoxBtnW;
				var sidL =((mopBoxPageW-mopBoxSldW)/2)+20;
				$("#mopBox01 .sliderBtn").css({width:mopBoxBtnW+"px"});
				$("#mopBox01 .slider").css({width:mopBoxSldW+"px",left:sidL+"px",top:pageH+20+naviPosi+"px"});
				$("#mopBox01 .bwd").css({left:(sidL-fbPosi)+"px",top:pageH+20+naviPosi+"px"});
				$("#mopBox01 .fwd").css({right:(sidL-fbPosi)+"px",top:pageH+20+naviPosi+"px"});
				$("#mopBox01 .cover").css({top:pageH+20+"px",height:sliderH+naviPosi+5+"px",width:mopBoxPageW+"px",left:"20px"});
				/*setting inside of slider*/
				$("#mopBox01 .sldLeft").css({left:"0px"});
				$("#mopBox01 .sldRight").css({right:"0px"});
				$("#mopBox01 .sldCenter").css({left:"20px",width:mopBoxSldW-40+"px"});
				$("#mopBox01 .sldBtnLeft").css({left:"0px"});
				$("#mopBox01 .sldBtnRight").css({right:"0px"});
				$("#mopBox01 .sldBtnCenter").css({left:"20px",width:mopBoxBtnW-40+"px"});
				/*sliderMoveLimit*/
				mopBoxSldMax=mopBoxSldW-mopBoxBtnW;
				if(browser=="ie6"){
					mopBoxSldMax-=2;
				}
				/*MacFont*/
				if(mac==true){
					$("#mopBox01 .pageNumber").css({fontSize:"9px",paddingTop:"12px"});
				}
			},
			/*page slide*/
			sliderDrag:function(){
				$("#mopBox01 .sliderBtn").draggable({
					axis:"x",
					cursor:"default",
					containment:"parent",
					grid:[mopBoxStepPx],
					drag:function(){
						/*position of slider button*/
						mopBoxSldPosi=$("#mopBox01 .sliderBtn").css("left").split("px")[0];
						/*0start page number*/
						mopBoxNum=(mopBoxSldPosi/mopBoxStepPx)*mopBoxStep;
						$("#mopBox01 .pageNumber").html(""+(mopBoxNum+1));
					},
					stop:function(){
						$("#mopBox01 .holder").animate(
							{left:((mopBoxNum*mopBoxPageW)*-1)+"px"},
							{duration:mopBoxSpeed,easing:'swing'}
						);　
					}
				});
			},
			/*click action*/
			goAndBack:function(whitch){
				/*smallMoveFix*/
				if(mopBoxCheckNum<1){
					if(mopBoxCheckNum2>=1){
						mopBoxCheckNum2-=1;
					}
					mopBoxCheckNum2+=mopBoxCheckNum;
				}else{
					mopBoxCheckNum2=mopBoxCheckNum;
				}
				/*current position*/
				hdPosi=eval($("#mopBox01 .holder").css("left").split("px")[0]);
				/*current slider button position*/
				mopBoxSldPosi=eval($("#mopBox01 .sliderBtn").css("left").split("px")[0]);
				
				/*go*/
				if(((mopBoxNum+1)<mopBoxPages)&&(whitch=="fwd")){
					$("#mopBox01 .holder").animate(
						{left:hdPosi-mopBoxPageW+"px"},
						{duration:mopBoxSpeed,complete:function (){mopBoxFunc.goAndBack2()}
					});
					mopBoxNum+=1;
					$("#mopBox01 .pageNumber").html(""+(mopBoxNum+1));
					/*sliderMove*/
					if((mopBoxCheckNum2>=1)&&(mopBoxSldPosi<(mopBoxSldMax))){
						$("#mopBox01 .sliderBtn").css({left:mopBoxSldPosi+mopBoxCheckNum2+"px"});
					}
					
				/*back*/
				}else if(((mopBoxNum+1)>1)&&(whitch=="bwd")){
					$("#mopBox01 .holder").animate(
						{left:hdPosi+mopBoxPageW+"px"},
						{duration:mopBoxSpeed,complete:function (){mopBoxFunc.goAndBack2()}
					});
					mopBoxNum-=1;
					$("#mopBox01 .pageNumber").html(""+(mopBoxNum+1));
					/*sliderMove*/
					if(mopBoxCheckNum2>=1){
					$("#mopBox01 .sliderBtn").css({left:mopBoxSldPosi-mopBoxCheckNum2+"px"});
					}
				}
			},
			/*fix of click repeatedly*/
			goAndBack2:function(){
				var mopBoxCheckNumPx=$("#mopBox01>.case>.holder").css("left");
				var mopBoxCheckNumMns=mopBoxCheckNumPx.split("px")[0];
				var mopBoxCheckNum=mopBoxCheckNumMns*-1
				var check=jQuery.inArray(mopBoxCheckNum,stopNum);
				if(check==-1){
					if(((mopBoxNum+1)<mopBoxPages)||((mopBoxNum+1)>1)){
						$("#mopBox01 .holder").animate(
							{left:(mopBoxPageW*(mopBoxNum*-1))+"px"},{duration:mopBoxSpeed});
					}
				}
			},
			/*centering*/
			findPosi:function(){
				var dPosiT,dPosiL;
				var windW=document.documentElement.clientWidth;/*brotherW*/
				var windH=document.documentElement.clientHeight;/*brotherH*/
				/*縦位置*/
				if(jQuery.browser.msie==true){
					var scrollY = document.documentElement.scrollTop;/*IE*/
					var scrollX = document.documentElement.scrollLeft;/*IE*/
				}else{
					var scrollY = window.pageYOffset;/*other*/
					var scrollX = window.pageXOffset;/*other*/
				}
				dPosiT=((windH/2)+scrollY)-((pageH/2)+20);
				dPosiL=((windW/2)+scrollX)-(((mopBoxPageW*1)+40)/2);
				$("#mopBox01").css({top:dPosiT});
				$("#mopBox01").css({left:dPosiL});
			},
			sldBtnLover:function(){
				$("#mopBox01 .sldBtnLeft").css({backgroundImage:"url("+mopBoxLeftArrowF.src+")"});
			},
			sldBtnLout:function(){
				$("#mopBox01 .sldBtnLeft").css({backgroundImage:"url("+mopBoxLeftArrow.src+")"});
			},
			sldBtnRover:function(){
				$("#mopBox01 .sldBtnRight").css({backgroundImage:"url("+mopBoxRightArrowF.src+")"});
			},
			sldBtnRout:function(){
				$("#mopBox01 .sldBtnRight").css({backgroundImage:"url("+mopBoxRightArrow.src+")"});
			}
		}
	}
});


