// home.js

(function ($) {

// console エラーよけ
  if (!window.console) {(function() {var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml","group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];window.console = {};for (var i = 0; i < names.length; ++i)window.console[names[i]] = function() {}})();}  
// console エラーよけ
  
  var $window;
  var $document;
  var $body;
  var $content;
  var $viewer;
  var $footer;
  var $imageInfo;
  
  var MIN_HEIGHT = 520;
  var NAV_HEIGHT = 180;
  
  var resizeEvents = $.resizeEvents.events;
  var imageInfoEvents = $.imageInfo.events;
  var viewerEvents = $.bbrk.home.viewer.events;
  
  
  $window = $(window);
  
  $document = $(document);
  $document.on("ready", onDocumentReady);
  
  $.resizeEvents($window);
  
  
  function onDocumentReady(e) {
  
    $document.off("ready", onDocumentReady);
    
    $body = $("body");
    $content = $body.clone();
    $viewer = $.bbrk.home.viewer($content);
    $footer = $.bbrk.home.footer($content);

    $body.html("");
    $body.css({ display: "block" });
    $body.append($viewer, $footer);
    
    $window.on("resize", onWindowResize);
    $window.on(resizeEvents.RESIZE_START, onWindowResizeStart);
    $window.on(resizeEvents.RESIZE_END, onWindowResizeEnd);
    
    $imageInfo = $.imageInfo($body, true);
    $imageInfo.on(imageInfoEvents.COMPLETE, onComplete);
    $imageInfo.load();

    resetViewerHeight();

  }
  
  function onWindowResize(e) {
    resetViewerHeight();
    $viewer.resizeCurrent($window.width(), $window.height() - NAV_HEIGHT);
  }
  
  function onWindowResizeStart(e) {
    $body.css({ overflow: "hidden" });
    $viewer.pause();
  }
  
  function onWindowResizeEnd(e) {
    $body.css({ overflow: "" });
    $viewer.resizeAll($window.width(), $window.height() - NAV_HEIGHT);
    $viewer.play();
  }
  
  function onComplete(e) {
    $viewer.on(viewerEvents.COMPLETE, onViewerComplete);
    $viewer.show();
  }
  
  function onViewerComplete(e) {
    $viewer.off(viewerEvents.COMPLETE, onViewerComplete);
    $viewer.resizeAll($window.width(), $window.height() - NAV_HEIGHT);
  }
  
  function resetViewerHeight() {
    
    var height;
    
    height = $window.height() - NAV_HEIGHT;
    
    if (height < MIN_HEIGHT) {
      height = MIN_HEIGHT;
    }
    
    $viewer.setHeight(height);
  }
  
})(jQuery);

