(function () {
  document.write('<div id="docomodakeBlogPartsContainer"></div>');
  var container = document.getElementById("docomodakeBlogPartsContainer");
  if (document.all) {
    container.innerHTML = [ 
    '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="158" height="284" id="docomodakeBlogParts" align="middle">',
    '<param name="allowScriptAccess" value="always" />',
    '<param name="allowFullScreen" value="false" />',
    '<param name="base" value="." />',
    '<param name="movie" value="http://docomodake.net/blogparts/blogparts.swf" />',
    '<param name="quality" value="high" />',
    '<param name="wmode" value="transparent" />',
    '<param name="bgcolor" value="#ffffff" />',
    '<param name="menu" value="false" />',
    '<param name="FlashVars" value="ua='+navigator.userAgent+'" />',
    '</object>'].join("");
  } else {
    container.innerHTML = '<embed src="http://docomodake.net/blogparts/blogparts.swf" bgcolor="#ffffff" wmode="transparent" base="." quality="high" width="158" height="284" flashvars="ua='+navigator.userAgent+'" id="docomodakeBlogParts" name="docomodakeBlogParts" menu="false" align="middle" allowScriptAccess="always" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />';
  }
})();

var docomodakeBlogPartsAPI = function() {
  var overlaySWF = "http://docomodake.net/blogparts/blogparts.swf";

  function getPosition(element) {
    var currentElement = element;
    var offsetLeft = 0;
    var offsetTop = 0;
    while (currentElement) {
      offsetLeft += currentElement.offsetLeft;
      offsetTop  += currentElement.offsetTop;
      currentElement = currentElement.offsetParent;
    }
    return {x: offsetLeft, y: offsetTop};
  }

  function getScrollPosition(){
    var x = document.body.scrollLeft || document.documentElement.scrollLeft;
    var y = document.body.scrollTop || document.documentElement.scrollTop;
    return {left: x, top: y};
  }

  function createNode(container) {
    var coord = getPosition(document.getElementById("docomodakeBlogParts"));
    var bx = coord.x;
    var by = coord.y;
    container.style.position = "absolute";
    container.style.display = "block";
    container.style.zIndex = "10000";
    container.style.width = "100%";
    container.style.left = "0px";
    container.style.top = "0px";
    if (document.all) {
      container.style.height = Math.max(document.body.scrollHeight, document.documentElement.clientHeight) + "px";
    } else {
      container.style.height = Math.max(document.body.scrollHeight, window.innerHeight) + "px";
    }

    if (document.all) {
      container.innerHTML = '<object id="docomodakeBlogPartsOverlay" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="100%" height="100%" align="middle"><param name="FlashVars" value="mode=dive&bpx='+bx+'&bpy='+by+'&ua='+navigator.userAgent+'" /><param name="allowScriptAccess" value="always" /><param name="movie" value="'+overlaySWF+'" /><param name="quality" value="high" /><param name="salign" value="lt" /><param name="wmode" value="transparent" /><param name="scale" value="noscale" /><param name="bgcolor" value="#ffffff" /><param name="menu" value="false" /></object>';
    } else {
      container.innerHTML = '<embed src="'+overlaySWF+'" flashvars="mode=dive&bpx='+bx+'&bpy='+by+'&ua='+navigator.userAgent+'" quality="high" salign="lt" menu="false" wmode="transparent" scale="noscale" bgcolor="#ffffff" width="100%" height="100%" name="docomodakeBlogPartsOverlay" id="docomodakeBlogPartsOverlay" align="middle" allowScriptAccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />';
    }
    return container;
  }

  window.onresize = function(){
    var overlayFlashContainer = document.getElementById("docomodakeBlogPartsOverlayContainer");
    var overlayFlash = document.getElementById("docomodakeBlogPartsOverlay");
    if (overlayFlash && overlayFlashContainer.style.display === "block") {
      var coord = getPosition(document.getElementById("docomodakeBlogPartsContainer"));
      var bx = coord.x - getScrollPosition().left;
      var by = coord.y - getScrollPosition().top;
      try {
        overlayFlash.setPosition(bx, by);
        if (document.all) {
          overlayFlashContainer.style.height = Math.max(document.body.scrollHeight, document.documentElement.clientHeight) + "px";
        } else {
          overlayFlashContainer.style.height = Math.max(document.body.scrollHeight, window.innerHeight) + "px";
        }
      } catch(e) {}
    }
  }

  //return API object
  return {
    startDive: function() {
      var docomodakeBlogPartsOverlayContainer = document.getElementById("docomodakeBlogPartsOverlayContainer");
      if (!docomodakeBlogPartsOverlayContainer) {
        docomodakeBlogPartsOverlayContainer = document.createElement("div");
        docomodakeBlogPartsOverlayContainer.id = "docomodakeBlogPartsOverlayContainer";
        document.body.insertBefore(docomodakeBlogPartsOverlayContainer, document.body.firstChild);
      } else {
        docomodakeBlogPartsOverlayContainer.style.display = "block";
      }
      createNode(docomodakeBlogPartsOverlayContainer);
    },

    onDiveStart: function() {
      var blogpartsFlash = document.getElementById("docomodakeBlogParts");
      blogpartsFlash.hide();
    },

    onDiveComplete: function() {
      var blogpartsFlash = document.getElementById("docomodakeBlogParts");
      document.getElementById("docomodakeBlogPartsOverlayContainer").style.display = "none";
      blogpartsFlash.show();
      blogpartsFlash.reset();
    },

    openWindow: function(url) {
      window.open(url);
    }
  };
}();
