/* ---------------------------------------------------------------------
minbox Ver 3.0.1 copyright (c) Takeshi Tasaki. All Rights Reserved.
----------------------------------------------------------------------*/
minboxOpt=Object.extend({
  minwidth:980,
  image_parts: [['loading.gif',202,267],['prev.png',29,39],['next.png',29,39],['close.png',39,29],['blank.gif',1,1]], //[src, width, height] (0=loading, 1=prev, 2=next, 3=close, 4=blank)
  border_setting: ['bgv.png','bgh.png','corner.png','#000000'], //vertical, holizontal, corner, border color(=image background)
  box_offset: 60
},window.minboxOpt||{});
var minboxBuild=Class.create();
minboxBuild.prototype={
  minboxImageArr:[],minboxSetting:[],currentImage:0,pth:undefined,
  initialize: function(){
    var i;var psrc;var preload=new Image();minboxImageArr=[];minboxSetting=[];
    psrc=$$('script').pluck('src');
    for(i=0;i<psrc.length;i++){if(psrc[i].match(/minbox.js$/)){pth=psrc[i].replace(/minbox.js$/,'');break;}}
    var myBody,newSet,newminboxImage,newminboxBlankImage,newminboxLoader,newminbox,newClose,newPrev,newNext,minboxSetHeight;
    myBody=$$('body')[0];
    minboxSetHeight=$('masterbox').getHeight();
    newSet=document.createElement('div');newSet.id='minboxSet';newSet.setStyle({'position':'absolute','z-index':'100','width':'100%','height':minboxSetHeight+'px','min-width':minboxOpt.minwidth+'px','top':'0','left':'0'});
    newminboxImage=document.createElement('img');newminboxImage.id='minboxImage';newminboxImage.src=pth+minboxOpt.image_parts[4][0];newminboxImage.setStyle({'border':'none','cursor':'pointer'});
    newminboxBlankImage=document.createElement('img');newminboxBlankImage.id='minboxBlankImage';newminboxBlankImage.src=pth+minboxOpt.image_parts[4][0];newminboxBlankImage.setStyle({'border':'none'});
    newminboxLoader=document.createElement('img');newminboxLoader.id='minboxLoader';newminboxLoader.src=pth+minboxOpt.image_parts[0][0];newminboxLoader.setStyle({'border':'none','width':minboxOpt.image_parts[0][1]+'px','height':minboxOpt.image_parts[0][2]+'px'});
    newminboxFrame=document.createElement('iframe');newminboxFrame.id='minboxFrame';newminboxFrame.frameborder=0;newminboxFrame.width=0;newminboxFrame.height=0;newminboxFrame.src='';newminboxFrame.allowtransparency='true';
    newminbox=document.createElement('table');newminbox.border=0;newminbox.cellPadding=0;newminbox.cellSpacing=0;newminbox.id='minbox';
    newClose=document.createElement('img');newClose.id='minboxClose';newClose.src=pth+minboxOpt.image_parts[3][0];newClose.setStyle({'border':'0','cursor':'pointer','vertical-align':'middle','width':minboxOpt.image_parts[3][1]+'px','height':minboxOpt.image_parts[3][2]+'px','padding':'0px 5px 0px 0px'});
    newPrev=document.createElement('img');newPrev.id='minboxPrev';newPrev.src=pth+minboxOpt.image_parts[1][0];newPrev.setStyle({'border':'0','cursor':'pointer','vertical-align':'middle','width':minboxOpt.image_parts[1][1]+'px','height':minboxOpt.image_parts[1][2]+'px'});
    newNext=document.createElement('img');newNext.id='minboxNext';newNext.src=pth+minboxOpt.image_parts[2][0];newNext.setStyle({'border':'0','cursor':'pointer','vertical-align':'middle','width':minboxOpt.image_parts[2][1]+'px','height':minboxOpt.image_parts[2][2]+'px'});
    var row1,row2,cell_top,cell_left,cell_image,cell_right,cell_bottom_left,cell_bottom,cell_bottom_right;
    row1=newminbox.insertRow(-1);row2=newminbox.insertRow(-1);row3=newminbox.insertRow(-1);
    cell_top_left=row1.insertCell(-1);cell_top_left.width=minboxOpt.image_parts[1][1]+'px';cell_top_left.setStyle({'background':'url('+pth+minboxOpt.border_setting[2]+') left top no-repeat'});
    cell_top=row1.insertCell(-1);cell_top.align='right';cell_top.vAlign='bottom';cell_top.height=minboxOpt.image_parts[3][2]+'px';cell_top.setStyle({'background':'url('+pth+minboxOpt.border_setting[1]+') left top repeat-x'});
    cell_top_right=row1.insertCell(-1);cell_top_right.width=minboxOpt.image_parts[2][1]+'px';cell_top_right.setStyle({'background':'url('+pth+minboxOpt.border_setting[2]+') right top no-repeat'});
    cell_left=row2.insertCell(-1);cell_left.align='right';cell_left.vAlign='middle';cell_left.width=minboxOpt.image_parts[1][1]+'px';cell_left.setStyle({'background':'url('+pth+minboxOpt.border_setting[0]+') left top repeat-y'});
    cell_image=row2.insertCell(-1);cell_image.id='minboxImagebox';cell_image.align='center';cell_image.vAlign='middle';cell_image.setStyle({'overflow':'hidden','background':minboxOpt.border_setting[3]});
    cell_right=row2.insertCell(-1);cell_right.align='left';cell_right.vAlign='middle';cell_right.width=minboxOpt.image_parts[2][1]+'px';cell_right.setStyle({'background':'url('+pth+minboxOpt.border_setting[0]+') right top repeat-y'});
    cell_bottom_left=row3.insertCell(-1);cell_bottom_left.width=minboxOpt.image_parts[1][1]+'px';cell_bottom_left.setStyle({'background':'url('+pth+minboxOpt.border_setting[2]+') left bottom no-repeat'});
    cell_bottom=row3.insertCell(-1);cell_bottom.height=minboxOpt.image_parts[3][2]+'px';cell_bottom.setStyle({'background':'url('+pth+minboxOpt.border_setting[1]+') left bottom repeat-x'});
    cell_bottom_right=row3.insertCell(-1);cell_bottom_right.width=minboxOpt.image_parts[2][1]+'px';cell_bottom_right.setStyle({'background':'url('+pth+minboxOpt.border_setting[2]+') right bottom repeat-x'});
    myBody.appendChild(newSet);newSet.appendChild(newminbox);
    cell_top_left.innerHTML='&nbsp;';cell_top.appendChild(newClose);cell_top_right.innerHTML='&nbsp;';
    cell_left.appendChild(newPrev);cell_image.appendChild(newminboxImage);cell_image.appendChild(newminboxBlankImage);cell_image.appendChild(newminboxLoader);cell_image.appendChild(newminboxFrame);cell_right.appendChild(newNext);
    cell_bottom_left.innerHTML='&nbsp;';cell_bottom.innerHTML='&nbsp;';cell_bottom_right.innerHTML='&nbsp;';
    Element.hide('minboxImage');Element.hide('minboxBlankImage');Element.hide('minboxLoader');Element.hide('minboxFrame');Element.hide('minboxSet');Element.hide('minboxClose');Element.hide('minboxPrev');Element.hide('minboxNext');
    Element.observe('minboxSet','click',(function(event){event.stop();if(Element.visible('minboxFrame')){this.minboxExit();}else if(Element.visible('minboxImage')){switch(event.element().id){default:null;break;case 'minboxClose':this.minboxExit();break;case 'minboxPrev':this.prewinder(false);break;case 'minboxNext':this.prewinder(true);break;case 'minboxImage':this.prewinder(true);break;case 'minboxSet':this.minboxExit();break;}}else{null;}}).bind(this));document.observe('click',(function(event){var minboxTrigger=event.findElement('a[rel^=minbox]')||event.findElement('area[rel^=minbox]');if(minboxTrigger){event.stop();var minboxGoStart=false;if(Element.visible('minboxSet')){if((Element.visible('minboxImage'))||(Element.visible('minboxFrame'))){minboxGoStart=true;}}else{minboxGoStart=true;}if(minboxGoStart){this.start(minboxTrigger);}else{return false;}}}).bind(this));
  },
  preparator: function(){
    Element.setStyle('minboxImage',{'width':minboxOpt.image_parts[0][1]+'px','height':minboxOpt.image_parts[0][2]+'px'});Element.setStyle('minboxBlankImage',{'width':minboxOpt.image_parts[0][1]+'px','height':minboxOpt.image_parts[0][2]+'px'});Element.setStyle('minboxImagebox',{'width':minboxOpt.image_parts[0][1]+'px','height':minboxOpt.image_parts[0][2]+'px'});
    Element.setStyle('minboxFrame',{'visibility':'visible','border':'0'});$('minboxFrame').src='';$('minboxFrame').width=0;$('minboxFrame').height=0;
    Element.hide('minboxImage');Element.hide('minboxBlankImage');Element.hide('minboxLoader');Element.hide('minboxFrame');
    Element.hide('minboxClose');Element.hide('minboxPrev');Element.hide('minboxNext');
  },
  start: function(minboxTrigger){
    if(!minboxTrigger){return;}
    var rapset=$$('iframe','embed','object','select');rapset.each(function(box){box.style.visibility='hidden';});
    var newOffset;if(self.pageYOffset){newOffset=self.pageYOffset;}else if((document.documentElement)&&(document.documentElement.scrollTop)){newOffset=document.documentElement.scrollTop;}else if(document.body){newOffset=document.body.scrollTop;}
    Element.setStyle('minbox',{'margin':newOffset+minboxOpt.box_offset+'px auto 0px auto'});
    this.preparator();
    minboxImageArr=[];minboxSetting=[];
    var minboxSettingBase=minboxTrigger.rel.match(/^minbox\[([0-9]+),([0-9]+)\]$/i);
    var minboxSetCheck=minboxTrigger.rel.match(/^minbox\[(.+)\]$/i);
    if(!minboxSettingBase){if(minboxSetCheck){minboxSetting=['image',0,0];minboxImageArr=$$(minboxTrigger.tagName + '[rel="'+minboxTrigger.rel+'"]').pluck('href').uniq();for(var i=0;i<minboxImageArr.length;i++){if(minboxImageArr[i]==minboxTrigger.href){currentImage=i;break;}}}else{minboxSetting=['image',0,0];minboxImageArr=[minboxTrigger.href];currentImage=0;}}else{minboxSetting=['frame',minboxSettingBase[1],minboxSettingBase[2]];minboxImageArr=[minboxTrigger.href];currentImage=0;}
    new Effect.Parallel([new Effect.Appear('minboxSet',{from:0.0,to:1.0,sync:true}),new Effect.Appear('minboxLoader',{from:0.0,to:1.0,sync:true})],{delay:0,duration:0.2,queue:'end',afterFinish:(function(){this.changeImage(true);}).bind(this)});
  },
  prewinder: function(Direction){
    if(Direction){currentImage++;}else{currentImage--;}
    if((currentImage>=0)&&(currentImage<minboxImageArr.length)){Element.hide('minboxClose');Element.hide('minboxPrev');Element.hide('minboxNext');this.changeImage();}else{this.minboxExit();}
  },
  changeImage: function(fresher){
    var currentScale=$('minboxImagebox').getDimensions();
    switch(minboxSetting[0]){
      default:
        var preload=new Image();
        preload.onload=(function(){Element.show('minboxBlankImage');var scaleWidth,scaleHeight,scaleDuration;scaleWidth=preload.width*100/currentScale.width;scaleHeight=preload.height*100/currentScale.height;if((scaleWidth==100)&&(scaleHeight==100)){scaleDuration=0.2;}else{scaleDuration=0.8;}new Effect.Parallel([new Effect.Scale('minboxImagebox',scaleWidth,{scaleY:false}),new Effect.Scale('minboxImagebox',scaleHeight,{scaleX:false}),new Effect.Scale('minboxBlankImage',scaleWidth,{scaleY:false}),new Effect.Scale('minboxBlankImage',scaleHeight,{scaleX:false})],{delay:0,duration:scaleDuration,afterFinish:(function(){Element.hide('minboxBlankImage');Element.setStyle('minboxImage',{'width':preload.width+'px','height':preload.height+'px'});new Effect.Appear('minboxImage',{delay:0,duration:0.4,afterFinish:(function(){Element.show('minboxClose');if(currentImage>0){Element.show('minboxPrev');}if(currentImage<minboxImageArr.length-1){Element.show('minboxNext');}})})})});}).bind(this);
        var mydelay,myduration,myfader;
        if(fresher){mydelay=0.6;myfader='minboxLoader';}else{mydelay=0;myfader='minboxImage';}
        new Effect.Fade(myfader,{delay:mydelay,duration:0.4,queue:'end',afterFinish:(function(){preload.src=minboxImageArr[currentImage];$('minboxImage').src=minboxImageArr[currentImage];}).bind(this)});
        break;
      case 'frame':new Effect.Fade('minboxLoader',{delay:0.6,duration:0.4,queue:'end',afterFinish:(function(){Element.show('minboxBlankImage');var scaleWidth,scaleHeight,scaleDuration;scaleWidth=minboxSetting[1]*100/currentScale.width;scaleHeight=minboxSetting[2]*100/currentScale.height;if((scaleWidth==100)&&(scaleHeight==100)){scaleDuration=0.2;}else{scaleDuration=0.8;}new Effect.Parallel([new Effect.Scale('minboxImagebox',scaleWidth,{scaleY:false}),new Effect.Scale('minboxImagebox',scaleHeight,{scaleX:false}),new Effect.Scale('minboxBlankImage',scaleWidth,{scaleY:false}),new Effect.Scale('minboxBlankImage',scaleHeight,{scaleX:false})],{delay:0,duration:scaleDuration,afterFinish:(function(){Element.hide('minboxBlankImage');$('minboxFrame').width=minboxSetting[1]+'px';$('minboxFrame').height=minboxSetting[2]+'px';$('minboxFrame').src=minboxImageArr[currentImage];new Effect.Appear('minboxFrame',{delay:0,duration:0.4,afterFinish:(function(){Element.show('minboxClose');})})})})}).bind(this)});break;
    }
  },
  minboxExit: function(){
    var myfader;
    if(minboxSetting[0]=='frame'){myfader='minboxFrame';}else{myfader='minboxImage'}
    new Effect.Fade(myfader,{delay:0,duration:0.1,afterFinish:(function(){Element.hide('minboxSet');$('minboxImage').src=pth+minboxOpt.image_parts[4][0];this.preparator();}).bind(this)});
    var rapset=$$('iframe','embed','object','select');rapset.each(function(box){box.style.visibility='visible';});
  }
}
document.observe('dom:loaded',function(){minboxBuild=new minboxBuild();});

