var root = "/"

jQuery.noConflict();
jQuery.getScript(root +"js/jquery.easing.js");

jQuery(document).ready(function(){

var $ = jQuery ;  

$.getScript(root +"js/namespace.js",function(){

   var NS = window.getNameSpace();
   NS.methods.enableHTML5ElementForIE();
   NS.methods.initViewPort(1000);
   NS.methods.includeCSS3Files([root +"css/css3.css"]);

   var fancyboxoption = {
      overlayOpacity : 0.6 ,
      overlayColor   : "#000" , 
      centerOnScroll : true 
   };

   // Popup
   $.getScript(root +"js/popup.js",function(){
      (new NS.Popup()).set();
   });

   // headerbnr
   (function($){
      var target = $("#GHBnr");
      if(!target[0]) return ;
      var bnrs = target.find("li").hide();      
      bnrs.eq(Math.floor(Math.random()*bnrs.length)).show();
   })($);

   // mglist releaseballon
   (function($){
      var mglist = $("#GF").find(".Mglist") ;
      if(!mglist[0]) return ;
            
      $.each(mglist.find("li"),function(){
         var mg    = $(this);
         var today = (new Date()).setHours(0,0,0,0) ;
         var dates = mg.find(".time").data("releasedate");

         if(dates){
            $.each(dates.split(","),function(){
               var date = this.split("-");
               if((new Date(date[0],date[1]-1,date[2])).getTime() == today){
                  $("<span>").addClass("Ballon").text("本日発売").prependTo(mg.find("h3"));
               }
            });
         }
      });
   })($);

   // sociallinks
   (function($){
      var target = $("#GA").find(".BlogTitle");
      if(!target[0]) return ;
      if($(".linkPage")[0]) return ;
      
      $.getScript(root +"js/sociallinks.js",function(){
         new NS.SocialLinks({
            target    : target ,
            disable   : { yahoobookmark : true },
             mixi_key  : "39fd8a1c56943ac419f5521886c0dc85548f8370" ,
             canonical : location.href
           });      
      });
   })($);
   
   // Entryitem
   (function($){
      var target = $("#GA").find(".Entryitem");
      if(!target[0]) return ;
      
      target.find("a[target]").addClass("target");
      
      // fancybox init
      $.getScript(root +"js/jquery.mousewheel.js",function(){
         $.getScript(root +"js/jquery.fancybox.js",function(){
            var links = target.find("a").filter(function(){return $(this).attr("href").match(/\.(jpg|jpeg|png|gif)$/i) != null}).fancybox(fancyboxoption);

            // osusume only
            (function(){
               if(!$(".osusumePage")[0]) return ;
               
               $.each(links,function(i,val){
                  var a = $(this) ;
                  var img = a.find("img") ;
                                    
                  var btnExpand = $("<span>").addClass("btnExpand pngfix").text("拡大する").prependTo(a.parent()).bind("click",function(){
                     a.trigger("click");
                  });               
                  btnExpand.css({
                     margin : (img.position().top + img.height() - 68) +"px 0 0 "+ (img.position().left + img.width() - 66) +"px"
                  });
               });
            })();
         });
      });
   })($);

   // Item
   (function($){
      var target = $("#GA").find(".Item");
      if(!target[0]) return ;
     
      target.find(".txtlink , .title").find("a[target]").addClass("target");
      
      // new acon set (before 3 days)
      if(target.hasClass("Comicitem")) return ;
      $.each(target.find(".date"),function(){
         var itemdate = $(this);
         var today = new Date((new Date()).setHours(0,0,0,0));
         var befor3day = new Date();
         befor3day.setTime(today.getTime() - (3 * 24 * 3600 * 1000));

         if(!itemdate.data("isodate")) return ;
         var isodate = itemdate.data("isodate") ;
         isodate.match(/(\d{4})-(\d{2})-(\d{2})/);
         item_modifi = new Date(RegExp.$1,RegExp.$2-1,RegExp.$3);

         // alert((item_modifi.getTime() > befor3day.getTime()) +":"+ item_modifi +":"+ befor3day);

         if(item_modifi.getTime() > befor3day.getTime()){
            $("<p>").addClass("Ballon Icon new").text("NEW!").insertAfter(itemdate);
         }
      });
   })($);

   // side backnumber pulldown
   (function($){
      var target = $("#GS").find(".BackNumber");
      if(!target[0]) return ;
      
      target.find("select").bind("change",function(){
         var _this = $(this);
         var href  = _this.val();
         if(href == "") return ;
         location.href = href ;
      });
   })($);

   // side backnumber accordion 2011.12.17 add
   (function($){
      var target = $("#GS").find(".BackNumber");
      if(!target[0]) return ;
      if(!target.hasClass("accordion")) return ;
      
      var active  = "active";
      var more    = target.find(".more");
      var btnmore = target.find("[href^=#more]");
            
      btnmore.bind("click",function(e){
         var self   = $(this);
         var target = more.filter(self.attr("href"));
         if(target.is(":hidden")){
            target.slideDown(300);
            self.addClass(active);
         }
         else {
            target.slideUp(300);
            self.removeClass(active);
         }
         e.preventDefault();
      });
      
      btnmore.trigger("click");
   })($);

   // side refine filtering
   (function($){
      var target = $("#GS").find(".Refine");
      var isTameshiyomi = $("body").hasClass("tameshiyomiPage");
      if(!target[0]) return ;
      if($(".osusumePage")[0]) return ;
      
      var comics  = $("#GA").find(".BlogContents");
      if(isTameshiyomi) comics  = comics.find(".Comicitem");
      var nav     = target.find("a");
      var matches = new Object();
      
      nav.first().attr("href").match(/#(.+)[A-Z].+/);
      var filtertxt = RegExp.$1 ;

      var hash = location.hash.replace("#","");
      
      //nav.filter("[href=#"+ filtertxt +"All]").addClass("active");
      nav.bind("click",function(e,first,multi){
         var _this = $(this);
         var key = _this.attr("href").replace(/.*#/,"");
         
         if(!matches[key]){
            if(key == filtertxt +"All"){
               matches[key] = comics;
               if(!isTameshiyomi){
                  matches[key] = comics.filter(function(){
                     return $(this).find(".Comicitem")[0];
                  });
               }
            }
            else {
               matches[key] = comics.filter("."+ key);
            }
         }

         if(!matches[key]) return ;
         
         if(!multi) comics.hide();
         if(first) {
            matches[key].show();
         }else{
            matches[key].fadeIn(300);
         } 

         if(isTameshiyomi){
            var blogcontents = $("#GA").find(".BlogContents");
            
            if(key == filtertxt +"All"){
               blogcontents.show();
            }
            else {
               $.each($("#GA").find(".BlogContents"),function(i,val){
                  var _this = $(this);
               
                  if(key == filtertxt +"All"){
                     $("#GA").find(".BlogContents").show();
                     return ;            
                  }
               
                  if(_this.find("."+ key).length > 0){
                     _this.show();
                  }
                  else {
                     _this.hide();
                  }         
               });            
            }
         }
         
         if(!multi) nav.removeClass("active");
         _this.addClass("active");
         
         e.preventDefault();
      });

      if(hash){
         if(hash.match(/\+/) != null){
            hash = hash.split("+");
            $.each(hash,function(){
               var _this = this ;
               nav.filter(function(){
                  return $(this).parent().hasClass(_this.replace(filtertxt,"btn"));
               }).trigger("click",[true,true]);
            });
            comics.not("." +hash.join(" , .")).hide();
         }else{
            nav.filter(function(){return $(this).parent().hasClass(hash.replace(filtertxt,"btn"));}).trigger("click",[true]);
         }         
      } else {
      nav.filter(function(){return $(this).parent().hasClass("btnAll");}).trigger("click",[true]);
      }
   })($);

   // side refine filtering (Osusume Only)
   (function($){
      var target = $("#GS").find(".Refine");
      if(!target[0]) return ;
      if(!$("#osusumeIndex")[0]) return ;
      
      var comics  = $("#GA").find(".BlogContents");
      var nav     = target.find("a");
      var matches = new Object();

      nav.first().attr("href").match(/#(.+)[A-Z].+/);
      var filtertxt = RegExp.$1 ;

      var hash = location.hash.replace("#","");
      
      setTimeout(function(){
         if(hash){
            nav.filter(function(){return $(this).parent().hasClass(hash.replace("cat","btn"));}).trigger("click",[true]);
         }
         else {
            comics.hide();
            comics.first().show();
         }
         },500);
      
      nav.bind("click",function(e,first){
      
         var _this = $(this);
         var key = _this.attr("href").replace(/.*#/,"");
         
         if(!matches[key]){
            matches[key] = comics.filter("."+ key);
         }

         if(!matches[key]) return ;
         
         comics.hide();
         if(first){
           matches[key].show();
         }
         else {
           matches[key].fadeIn(300);
         } 
         
         nav.removeClass("active");
         _this.addClass("active");
         
         e.preventDefault();
      });
   })($);

   // side search
   (function($){
      var target = $("#GS").find(".Search");
      if(!target[0]) return ;
      
      $.each(target.find(".inputtxt"),function(){
         var _this       = $(this);
         var placeholder = _this.attr("placeholder");
         _this.removeAttr("placeholder");
         
         _this
         .bind("focus",function(){
            _this.addClass("active");
            if(_this.val() == placeholder){
               _this.val("");            
            }
         })
         .bind("blur",function(){
            _this.removeClass("active");
            if(_this.val() == ""){
               _this.val(placeholder);
            }
         }).trigger("blur");      
      });
   })($);

   // smooth anchor scroll 
   (function($){
      $("a[href^=#]").bind("click",function(e){
         if(this.hash == "#") return ;
         if(this.hash.match("more") != null) return ; // side backnumber accordion 2011.12.17 add
         var target = $(this.hash);
         if(!target[0]) return ;
         $("body , html").animate({scrollTop:target.offset().top},600,"easeOutQuart");
         e.preventDefault();
         e.stopPropagation();
      });
   })($);
   
   // homeIndex 
   (function($){
      var target = $("#homeIndex");
      if(!target[0]) return ;

      // MV
      $.getScript(root +"js/keyframeloader.js",function(){
         $.getScript(root +"js/mv.js");
      });

      // carousel
      $.getScript(root +"js/carousel.js");
      
      // calener 
      $.getScript(root +"js/calender.js",function(){
      
         // Calender class run
         NS.Calender.filepath = root + "data/calender/" ; //スケジュールデータの場所を指定
         var cal = NS.cal = new NS.Calender();
         cal.init("#calender");

      });

      // top sociallinks
      (function($){
         var target = $("#GA").find(".Latest");
         if(!target[0]) return ;
      
         $.getScript(root +"js/sociallinks.js",function(){
            new NS.SocialLinks({
               target    : target ,
               disable   : { yahoobookmark : true },
                mixi_key  : "39fd8a1c56943ac419f5521886c0dc85548f8370" ,
                canonical : location.href ,
                insertBefore : true 
              });      
         });
      })($);

   })($);      

});

});
