$(document).ready(function(){
// document ready functions start ////////////////////////////////////////////////


// Create Global NameSpace ////////////////////////////////////////////
var NS = (function createNS(){
   var host = window.location.host;
   var ns_name = (host != "")?(host.replace(/\./g,"_")).toUpperCase():"NAMESPACE";
   return window[ns_name] = {};
})();

function isIOS(){
  var device = false ;
  var ua = navigator.userAgent ;
  var reg_iphone = /iPhone/i , reg_ipad = /iPad/i ;
  if(ua.match(reg_iphone)) device = true ;
  if(ua.match(reg_ipad)) device = true ;
  return device ;
}
function isAndroid(){
  var device = false ;
  var ua = navigator.userAgent ;
  var reg_android = /Android/i ;
  if(ua.match(reg_android)) device = true ;
  return device ;
}
function isSmartPhone(){
  var device = false ;
  if(isIOS()) device = true ;
  if(isAndroid()) device = true ;
  return device ;
}


// Copyright Updater ////////////////////////////////////////////
$("#year").text((new Date()).getFullYear());

// Common Popup Opener ////////////////////////////////////////////
(function(){

  $("a[rel^=popup]").click(function(e){
    var param = ($(this).attr("rel").split("=")[1]).split("+");
    var n = param[0] , flag = param[1] , w = param[2] , h = param[3] ; 

    if(flag == "true"){   /* fullscreen */
      w = window.screen.availWidth ;
      h = window.screen.availHeight ;
      var top = 0 , left = 0 , scrl = "no" ;
      if($.browser.msie && $.browser.version == 6){
        w = w - 10 ;
        h = h - 29 ;
      }
    }
    else {   /* size */
      w = $.browser.msie?parseInt(w)+17:w;
      var top = window.screen.height*0.5 - h*0.5;
      var left = window.screen.width*0.5 - w*0.5;
      var scrl = "yes";
    }

    var popup = window.open($(this).attr("href"),n,'width=' + w + ', height=' + h + ', menubar=no, toolbar=no, scrollbars=' + scrl + ' ,top=' + top + ' ,left=' + left);
    if(popup) popup.focus();
  
    e.preventDefault();
    e.stopPropagation();
  });
})();  

// WordBreak for Firefox 2 ////////////////////////////////////////////
(function(){
  
  if($.browser.msie) return ;
  if($.browser.mozilla && $.browser.version.substring(0,3) > 1.8) return ;
  
  var name = ".wordBreak";
  
  $.each($(".wordBreak"),function(){
    wordBreak(this);
  });
  
  function wordBreak(target){
    
    insertBreak(target);
    
    function insertBreak(target){
      for(var e = target.firstChild ; e != null ; e = e.nextSibling){
        switch(e.nodeType){
        case 1 :
          arguments.callee(e);
          break ;
        case 3 :
          if(e.data.match(/^\n/) || e.data.match(/^\t/)) break ;
          var str = [];
          for(var i = 0 ; i<e.data.length; i++) str.push(e.data[i]);
          e.data = str.join(String.fromCharCode(8203));
          break ;
        }
      }
    }
  }
})();


// Logo MouseOver Color ////////////////////////////////////////////

function logoHoverColor(category){
  if(!$(category)[0]) return ;  
  var selector_txt = category + " dd img" ;
  
  var _comp = 0 ;
  $.each($(selector_txt),function(){
    var img = new Image();
    var src = $(this).attr("src");
    var src_h = src.split(".")[0] + "_on." + src.split(".")[1];   
    img.src = src_h;
   
    if($.browser.msie)$(img).ready(logoMouseover);
    else $(img).load(logoMouseover);
  });
  
  function logoMouseover(){
    _comp++ ;      
    if(_comp != $(selector_txt).length) return ; 
  
    $(selector_txt).mouseover(function(e){
      $(this).attr("src",$(this).attr("src").split(".")[0] + "_on." + $(this).attr("src").split(".")[1]);
    });

    $(selector_txt).mouseout(function(e){
      $(this).attr("src",($(this).attr("src").split(".")[0]).replace(/_on$/g,".") + $(this).attr("src").split(".")[1]);
    });
  }
}




// topPage Scripts ////////////////////////////////////////////

(function(){
  if(!$("#topIndex")[0]) return ;

  // BrandList Pulldown //////////////////////
  showBrandlist("#ladies");
  showBrandlist("#men");

  function showBrandlist(category){
    if(!$(category)[0]) return ;    
    logoHoverColor(category);
    
    var wrap = $(category);
    var brands = $(category + " > dd");
    if(brands.length < 5) return ;
    
    hidelist();
    var flag_close = true ;

    var btn = $("<div class=\"Btn btnListOpen\"><a href=\"#\"><span>OPEN</span></a></div>").insertAfter(wrap);
    btn.click(function(e){
      if(flag_close){
        showlist(e);
        $(this).addClass("btnListClose");
        $(this).removeClass("btnListOpen").children().children().text("CLOSE");
        flag_close = false ;
      }
      else {
        hidelist(e);
        $(this).addClass("btnListOpen");
        $(this).removeClass("btnListClose").children().children().text("OPEN");
        flag_close = true ;
      }
      e.preventDefault();
      e.stopPropagation();
    });

    function hidelist(){
      wrap.addClass("close");
      $.each(brands, function(i,val) {
        if(i > 4) brands.eq(i).hide();
      });
    }
    function showlist(){
      wrap.removeClass("close");
      brands.fadeIn(300);
    }
  }

  // News mouseover ShowImage //////////////////////
  (function(){
    if(!$("#news")[0]) return ;
    
    var newsImg = $("<div id=\"newsImg\"></div>").appendTo("#news").hide();
    $("#news dl").addClass("jsAddPadding");
    
    var _comp = 0 ;
    $.each($("#news dd a[rev]"),function(){
      var img = new Image();
      img.src = $(this).attr("rev");
   
      if($.browser.msie)$(img).ready(newsMouseOver);
      else $(img).load(newsMouseOver);
    });
    
    function newsMouseOver(){
      _comp++ ;          
      if(_comp != $("#news dd a[rev]").length) return ; 

      $("#news dd a[rev]").mouseover(function(e){
        var src = $(this).attr("rev");
        if(src.match(/(\.jpg$|\.jpeg$|\.gif$|\.png$|\.bmp$|\.tiff$)/) == null) return ;
        
        (new Image()).src = src ;
        
        newsImg.empty().append(
          $("<img src=" + src + " />")
        ).fadeIn(300);
      });
  
      $("#news dd a[rev]").mouseout(function(e){
        newsImg.empty().hide();
      });
    }
    
  })();  

})();

  // Brandlist Filter //////////////////////
(function(){
   if(!$(".brandlistPage")[0]) return ;

   // Default Heights
   var aside_h = $(".aside").height();
   var article_w = $(".article > .wrapper > .wrapper");
   if($.browser.msie && ($.browser.version).substring(0) < 7) article_w.css("height",aside_h);
   else article_w.css("minHeight",aside_h);

   // Selector
   var aside_lists = $(".aside dd li a[href^=#]");
   var article_sec = $(".section");
   var kananav_lists = $("#kananav li a[href^=#]");

   // Onload has hash
   if(window.location.hash != ""){
      var hash = window.location.hash ;
      article_sec.not(hash).hide();
      $(hash).fadeIn(300);

      aside_lists.css("opacity",0.3);
      $(".aside dd li a[href^="+ hash +"]").fadeTo(300, 1);
   }

   // Click Event Kananav
   kananav_lists.click(function(e){
      kananav_lists.removeClass("active");
      $(this).addClass("active");
      
      var klass = "."+ $(this).attr("href").replace(/^#/,"");
      
      article_sec.not(klass+"item").hide();
      $(klass+"item").fadeIn(300);

      aside_lists.css("opacity",0.3);
      $(klass+"list a").fadeTo(300, 1);
      
      e.stopPropagation();
      e.preventDefault();
   });

   // Click Event Aside list
   aside_lists.click(function(e){
      var id = $(this).attr("href");

      kananav_lists.removeClass("active");
      
      aside_lists.css("opacity",0.3);
      $(this).fadeTo(300, 1);

      article_sec.not(id).hide();
      $(id).fadeIn(300);
   
      e.stopPropagation();
      e.preventDefault();
   });


})();





// shopsearchPage Scripts ////////////////////////////////////////////

(function(){
  if($("body").attr("className") != "shopsearchPage") return ;
  
  NS.shop = {} ;
  
  var setting = {
    img_path      : "img/logo/",
    img_active    : "_actv" ,
    css_firstline : "firstline",
    css_last      : "last",
    css_disable   : "disable"
  };
  
  (function(){
    if(!$("#brandSelect")[0]) return ;
    
    var brands = NS.shop.brands = {};
        
    $("#brandSelect > dl").each(function(){
      setAltCheckbox($(this).attr("id"));
    });
    
    function setAltCheckbox(id){
      
      var labels = $("#"+ id +" label");
      
      labels.each(function(i,val){
        
        if(i < 10) $(this).parent("li").addClass(setting.css_firstline);
        if((i > 0) && ((i+1)%10 == 0)) $(this).parent("li").addClass(setting.css_last);
        if(i == labels.length-1) $(this).parent("li").addClass(setting.css_last);
        
         
  
        var input = $(this).find("input");
        var span = $(this).find("span");
        
        var brand = {
          id      : input.val() ,
          name    : span.text(),
          inputID : input.attr("id"),
          altID   : "alt_"+ input.val()
        };
        
        (new Image()).src = setting.img_path + brand.id +".gif";
        
        span.hide();
        
        input
          .css({ position : "absolute",left : "-9999px"})
          .click(function(e){
                                        
            var checked = this.checked ;
                      
            if(checked) removeActive(brand.altID);
            else setActive(brand.altID);
                               
          })
          .keypress(function(e){
                       
            if(e.which == 32){
              return false ;
            }
            
          })
          .keyup(function(e){
                       
            if(e.which == 32){
              return false ;
            }
                                
          })
          .keydown(function(e){
            
            if(e.which == 32){
              e.stopPropagation();
              e.preventDefault();
              $(this).trigger("click");
            }
                                
          })
          .focus(function(){
            $("#"+brand.altID).css("opacity",0.7);
          })
          .blur(function(){
            $("#"+brand.altID).css("opacity",1);
          });
  
        
        brand.altImg = $("<img>")
          .attr({
            src     : setting.img_path + brand.id +".gif" ,
            alt     : brand.name ,
            id      : brand.altID
          })
          .click(function(e){

            if(!isSmartPhone()) $("#"+brand.inputID).trigger("click");
            
            e.preventDefault();
            e.stopPropagation();
          })
          .bind("touchstart",function(){
          
            $("#"+brand.inputID).trigger("click");
            
          })
          .prependTo($(this));
        
        if(input[0].checked) setActive(brand.altID);
        
        brands[brand.id] = brand ;
        
      });
    }
    
    function setActive(id){
      var target = $("#"+id);
      var path = target.attr("src");
      
      path = path.replace(".gif",setting.img_active+".gif");
      
      target.attr("src",path);
    } 
    function removeActive(id){
      var target = $("#"+id);
      var path = target.attr("src");
      
      path = path.replace(setting.img_active+".gif",".gif");
      
      target.attr("src",path);
    } 
  
  
  })();

  (function(){
    if(!$("#selectedBrands")[0]) return ;
    
    var lis = $("#selectedBrands dd li");

    lis.each(function(i,val){
      
      if(i < 10) $(this).addClass(setting.css_firstline);
      if((i > 0) && ((i+1)%10 == 0)) $(this).addClass(setting.css_last);
      if(i == lis.length-1) $(this).addClass(setting.css_last);
  
    });

  })();
  
  (function(){
    if(!$("#areaSelect")[0]) return ;
    
    $("#areaSelect input:disabled").each(function(i,val){
      $(this).parent("label").addClass(setting.css_disable);
      $(this).css("opacity",0.5);
    
    });
    
  })();


  (function(){
    if(!$("#result")[0]) return ;
    
    (function(){
      
      if(!$("#resultLength")[0]) return ;
    
      var btn =  $("<div>").attr("id","btnPrint").addClass("Btn");
      var a = $("<a>").attr("href","#").click(function(e){
        window.print();
        return false ;
      }).appendTo(btn);
      var a_span = $("<span>").text("印刷する").appendTo(a); 
       
      btn.insertAfter($("#resultLength"));
     
    })();
    
    $("#result .inner table th").parent("tr").prev().last().find("td").css("border-bottom","0");
    
    
  })();

})();




// document ready functions end ////////////////////////////////////////////////
});
