var head = document.head || document.getElementsByTagName('head')[0];
var style = null;

// Centers the page content dynamically.
function centerPage() {
  if (style) {
    head.removeChild(style);
    style = null;
  }

  var windowWidth = window.innerWidth;
  if (windowWidth <= 768) {
    return;
  }

  var sideWidth = 300;
  var contentWidth = 800;
  var ribbonWidth = 150;
  var leftMargin = Math.max(0, (windowWidth - sideWidth - contentWidth) / 2);
  var scrollbarWidth = document.body ? windowWidth - document.body.clientWidth : 0;
  var css = '';

  css += '.wy-nav-side { left: ' + leftMargin + 'px; }';
  css += "\n";
  css += '.wy-nav-content-wrap { margin-left: ' + (sideWidth + leftMargin) + 'px; }';
  css += "\n";
  css += '.github-fork-ribbon-wrapper.right { left: ' +
         (Math.min(windowWidth - scrollbarWidth, sideWidth + contentWidth + leftMargin) - ribbonWidth) + 'px; }';
  css += "\n";

  var newStyle = document.createElement('style');
  newStyle.type = 'text/css';
  if (newStyle.styleSheet) {
    newStyle.styleSheet.cssText = css;
  } else {
    newStyle.appendChild(document.createTextNode(css));
  }

  head.appendChild(newStyle);
  style = newStyle;
}

centerPage();
window.addEventListener('resize', centerPage);
// Adjust the position of the 'fork me at GitHub' ribbon after document.body is available,
// so that we can calculate the width of the scroll bar correctly.
window.addEventListener('DOMContentLoaded', centerPage);