Event.observe(window,'load',function(e){
 (function(){
   if(typeof(BESTORYns.util.calendar)=='undefined'){
    BESTORYns.util.calendar = {};
   }
   var Scal = BESTORYns.util.calendar;
   // 現在月のエレメントサフィックス設定
   Scal.activeid = 1;
   // カレンダーエレメントプレフィックス
   Scal.prefix = "infocalendar";
   Scal.prev = function(){
    if (Scal.activeid > 0) {
     var fadeobj = $(Scal.prefix + Scal.activeid);
     new Effect.Morph(fadeobj,{style:'left:300px',duration:0.5});
     Scal.activeid--;
     var appearobj = $(Scal.prefix + Scal.activeid);
     new Effect.Morph(appearobj,{style:'left:0px',duration:0.5});
    }
   };
   Scal.next = function(){
    if (Scal.activeid < 2) {
     var fadeobj = $(Scal.prefix + Scal.activeid);
     new Effect.Morph(fadeobj,{style:'left:-300px',duration:0.5});
     Scal.activeid++;
     var appearobj = $(Scal.prefix + Scal.activeid);
     new Effect.Morph(appearobj,{style:'left:0px',duration:0.5});
    }
   };
   Scal.popup = function(event){
    Scal.poppuffAll();
    var o = Event.element(event);
    try{
     var p = o.parentNode;
     if (p.tagName.toLowerCase() != 'td'){
      p = o.parentNode.parentNode;
     }
     var d = p.getElementsByTagName('div')[0];
     Element.setOpacity(d,'0.95');
     d.style.display = 'block';
    }catch(e){}
   };

   Scal.poppuff = function(event){
    try{
     var r = event.relatedTarget || event.toElement;
     if ((r.tagName.toLowerCase() == 'span')||(r.tagName.toLowerCase() == 'td')) {
      Event.element(event).style.display = 'none';
     }
    }catch(e){
     Event.element(event).style.display = 'none';
    }
   }

   Scal.poppuffAll = function(){
    var o = $('infocalendar').getElementsByClassName('popup')
    for(i=0;i<o.length;i++){
     o[i].style.display = 'none';
    }
   }
   Scal.popupTask = null;
   Event.observe('btnCalprev','click',Scal.prev,true);
   Event.observe('btnCalnext','click',Scal.next,true);
   var eventSpans = $$('#infocalendar td span');
   for(var i=0;i<eventSpans.length;i++){
    var o = eventSpans[i];
    if (o.id.match('eventCalendar')){
     Event.observe(o,'mouseover',function(ee){Scal.popupTask = Scal.popup.later(300)(ee);},true);
     Event.observe(o,'mouseout',function(ee){try{Scal.popupTask.cancel();}catch(err){}},true);
    }
   }
   var o = $('infocalendar').getElementsByClassName('popup')
   for(var i=0;i<o.length;i++){
     Event.observe(o[i],'mouseout',Scal.poppuff,true);
   }

   Event.observe($('infocalendar'),'mouseout',function(e){
    var r = e.relatedTarget || e.toElement;
    if (r.id == 'infocalendar-wrapper') {
     Scal.poppuffAll();
    }
   },true);

   // 2009.08暫定処理
   //Scal.next();
 })();
},true);
