<repo_name>wDiff/moshimo.com<file_sep>/js/Mdk.js
/*@cc_on
if (@_jscript_version < 9) {
    var _d = document;
    eval("var document = _d");
}
@*/
/**
 * js/Mdk.js
 *
 * @author T.Mori <<EMAIL>>
 * @package Mdk
 * @version $Id$
 */

/**
 * Mdk の既定クラス
 *
 *   $ で始まる変数は Element を継承したオブジェクトを表現します
 *   $event は例外的に Event を継承したオブジェクトを表現します
 *
 * @author T.Mori <<EMAIL>>
 * @package Mdk
 * @access public
 */
var Mdk = Class.create(
  {

    /** @var Object <form ...> 関連のオブジェクト */
    form: {

      /**
       * 確認ダイアログを出してからフォームを送信する
       *
       * @param Form $form フォーム要素 (フォームの ID も可)
       * @param String message 確認メッセージ
       */
      confirm: function ($form, message) {
        message = message || "実行しますか？";
        if (confirm(message)) {
          this.submit($form);
        }
      },

      /**
       * フォームを送信する
       *
       * @param Form $form フォーム要素 (フォームの ID も可)
       */
      submit: function ($form) {
        var $form = $($form);
        $form.submit();
      },

      /**
       * Ajax なリクエストを送信する
       *
       * @param Form $form フォーム要素
       * @param Function callback コールバックメソッド
       */
      request: function ($form, callback, options) {
        options = Object.extend(
          {
            onSuccess: function (response) {
              callback(response, $form);
            }
          },
          options || {}
        );
        $form = $($form);
        // post じゃないと IE で重複送信が出来ない
        $form.request(
          options
        );
      },

      /** @var Object <input ...> 関連のオブジェクト */
      input: {

        /** @var Object <input type="checkbox" ...> 関連のオブジェクト */
        checkbox: {

          /**
           * チェックボックスを全てチェックする
           *
           * @param Array $elements checkbox の要素を含む配列
           */
          checkAll: function ($elements) {
            $elements.each(
              function ($element) {
                var call = false;
                if (!$element.checked) {
                  call = true;
                }
                if ($element.tagName.toLowerCase() == 'input' && $element.readAttribute('type') == 'checkbox' && !$element.disabled) {
                  $element.checked = 1;
                }
                if (call) {
                  $element.fire('mdk:change');
                }
              }
            );
          },

          /**
           * チェックボックスを全てチェック解除する
           *
           * @param Array $elements checkbox の要素を含む配列
           */
          releaseAll: function ($elements) {
            if (!Object.isArray($elements)) {
              return;
            }
            $elements.each(
              function ($element) {
                var call = false;
                if ($element.checked) {
                  call = true;
                }
                if ($element.tagName.toLowerCase() == 'input' && $element.readAttribute('type') == 'checkbox') {
                  $element.checked = 0;
                }
                if (call) {
                  $element.fire('mdk:change');
                }
              }
            );
          },

          /**
           * チェックが付いているチェックボックスの個数をカウントする
           *
           * @param Array $elements checkbox の要素を含む配列
           * @return Integer チェックが付いているチェックボックスの個数
           */
          countChecked: function ($elements) {
            if (!Object.isArray($elements)) {
              return;
            }
            var counter = 0;
            $elements.each(
              function ($element) {
                if ($element.tagName.toLowerCase() == 'input' && $element.readAttribute('type') == 'checkbox' && $element.checked) {
                  counter++;
                }
              }
            );
            return counter;
          }

        }

      },

      /**
       * ダミーフォームを生成する
       *
       * @return String 生成したフォームの ID
       */
      createDummy: function(action, parameters) {
        var $form = new Element('form');
        var form_id = $form.identify();
        $form.writeAttribute('action', action);
        $form.writeAttribute('mthod', 'post');
        if (parameters) {
          $H(parameters).each(
            function(parameter) {
              var $input = new Element('input');
              $input.writeAttribute('type', 'hidden');
              $input.writeAttribute('name', parameter.key);
              $input.writeAttribute('value', parameter.value);
              $form.insert({bottom: $input});
            }
          );
        }
        $$('body')[0].insert({bottom: $form});
        return form_id;
      },

      /**
       * サジェストするためのテキストをフォームに表示する
       *
       * @param Element $element フォームの INPUT TEXT
       * @param Object  options   オプション
       */
      suggestText: function($element) {

          var options = Object.extend({
            attribute:     'suggest',
            suggest_color: '#AAAAAA',
            normal_color:  '#000000',
            remove: true,
            remove_onsubmit: true
          }, arguments[1] || {});

          var suggest_forcus = function(onsubmit) {
            if($element.value == $element.readAttribute(options.attribute)){
              if((onsubmit && options.remove_onsubmit) || (!onsubmit && options.remove)) {
                $element.value="";
              }
              $element.setStyle({'color': options.normal_color});
            }
          }

          var suggest_blur = function() {
            if($element.value == "" || (!options.remove && $element.value == $element.readAttribute(options.attribute))) {
              $element.setStyle({'color': options.suggest_color});
              $element.value=$element.readAttribute(options.attribute);
            }
          }

          Event.observe($element, 'focus', suggest_forcus.bind(this, false));
          Event.observe($element, 'blur', suggest_blur.bind(this));
          Event.observe($element.up('form'), 'submit', suggest_forcus.bind(this, true));
          suggest_blur.bind(this)();

          return $element;
      }
    },


    /**
     * コンストラクタ
     */
    initialize: function() {
    }

  }
);

Mdk.PROTOCOL = location.protocol;
Mdk.SECURE = (Mdk.PROTOCOL.match(/^https/) ? true : false)
Mdk.HOSTNAME = location.hostname;
var a_hostname = location.hostname.split(/\./);
var tld = a_hostname.pop();
var sld = a_hostname.pop();
Mdk.DOMAIN = sld + '.' + tld;

var Mdk_Util = {

    ClearElement: function() {
      var e_div = new Element('div');
      e_div.addClassName('clear-both');
      e_div.update('&nbsp;');
      return e_div;
    },

    CreateWindow: function(event, e_target, e_dummy_parent, x, y) {
      var e_div, e_iframe, e_dummy, left, top, width, height;
      e_div = new Element('div');
      if (Prototype.Browser.IE) {
        e_iframe = new Element('iframe', {frameborder: 0, src: 'javascript: false;'});
      }
      e_dummy = e_target.cloneNode(true);

      var e_parent = e_dummy_parent ? $(e_dummy_parent) : $$('body')[0];
      var parent_position = e_parent.getStyle('position');
      e_parent.setStyle({position: 'relative'});
      e_dummy.setStyle({position: 'absolute', top: 0, left: 0});
      e_dummy.setOpacity(0);
      e_parent.insert({top: e_dummy});
      width = e_dummy.getWidth();
      height = e_dummy.getHeight();
      left = event.pointerX();
      top = event.pointerY();
      if (x == 'right') {
        left = left - width - 15;
      }
      if (y == 'bottom') {
        top = top - height - 15;
      }
      e_dummy.remove();
      e_parent.setStyle({position: parent_position});

      if (Prototype.Browser.IE) {
        e_iframe.setStyle(
          {
            width     : width + "px",
            height    : height + "px",
            position  : 'absolute',
            color     : '#ffffff',
            left      : left + "px",
            top       : top + "px",
            zIndex    : 10,
            padding   : 0,
            margin    : 0,
            border    : "none"
          }
        );
      }
      e_div.setStyle(
        {
          position  : 'absolute',
          zIndex    : 20,
          left      : left + "px",
          top       : top + "px",
          padding   : 0,
          margin    : 0,
          border    : "none"
        }
      );
      e_div.insert({bottom: e_target});
      e_target.removeAttribute('id');
      return {element: e_div, iframe: e_iframe};
    },

    /**
     * 郵便番号検索を行う
     *   郵便番号などの要素名は決め打ち
     *
     * @param String action アクション名
     * @param Element e_form フォーム要素
     * @param Function callback フィルインするためのコールバックメソッド
     * @return void
     */
    ZipcodeSearch: function(action, e_form, callback) {
      var zipcode = '';
      if (e_form.down('input[name="zipcode"]')) {
        e_form.down('input[name="zipcode"]').fire('mdk:focus');
        zipcode = '' + e_form.down('input[name="zipcode"]').getValue();
      } else if (e_form.down('input[name="zipcode_list[0]"]') && e_form.down('input[name="zipcode_list[1]"]')) {
        e_form.down('input[name="zipcode_list[0]"]').fire('mdk:focus');
        e_form.down('input[name="zipcode_list[1]"]').fire('mdk:focus');
        zipcode = '' + e_form.down('input[name="zipcode_list[0]"]').getValue() + e_form.down('input[name="zipcode_list[1]"]').getValue();
      } else {
        return;
      }

      // {{{ フィルするためのメソッド
      this.FillAddress = function(response) {
        r = response.responseJSON;
        if (r.result) {
          document.zipcode_list = r.zipcode_list;
          if (r.zipcode_list.length == 1) {
            this.callback.bind({ zipcode: r.zipcode_list[0], e_form: this.e_form })();
          } else {
            var e_div, e_p, e_a;
            e_div = new Element('div');
            e_div.addClassName('inline-left');
            e_div.setStyle(
              {
                'width': '400px',
                'height': '600px',
                'overflowY': 'scroll',
                'backgroundColor': '#ffffff',
                'border': 'solid 1px #cccccc'
              }
            );
            e_p = new Element('p');
            e_p.addClassName('text-x-large');
            e_p.addClassName('inline-center');
            e_p.addClassName('bold');
            e_p.setStyle(
              {
                'margin': '10px'
              }
            );
            e_p.update('住所を選択してください');
            e_div.insert({bottom: e_p});
            for (var i = 0; i < r.zipcode_list.length; i++) {
              e_p = new Element('p');
              e_p.addClassName('text-large');
              e_p.setStyle(
                {
                  'margin': '10px'
                }
              );
              e_a = new Element('a', { 'href': 'javascript: void(0);' });
              e_a.observe('click', this.callback.bind({ zipcode: r.zipcode_list[i], e_form: this.e_form }));
              e_a.update(r.zipcode_list[i].prefecture_label + r.zipcode_list[i].municipality + r.zipcode_list[i].town);
              e_p.insert({bottom: e_a});
              e_div.insert({bottom: e_p});
            }
            e_p = new Element('p');
            e_p.addClassName('inline-center');
            e_p.addClassName('text-large');
            e_p.setStyle(
              {
                'margin': '10px'
              }
            );
            e_a = new Element('a', { 'href': 'javascript: void(0);' });
            e_a.addClassName('mdk-black-out-close');
            e_a.update('閉じる');
            e_p.insert({bottom: e_a});
            e_div.insert({bottom: e_p});
            Mdk_Globals.black_out = new Mdk_BlackOut(e_div, { keep_id: true });
          }
        } else {
          alert('該当する住所が見付かりませんでした');
        }
      }.bind({callback: callback, e_form: e_form});
      // }}}

      new Ajax.Request(
        action
        , {
          method: 'get'
          , onSuccess: this.FillAddress
          , parameters: {
            zipcode: zipcode
          }
        }
      );
    },

    ZipcodeDecideHelper: {

      joined: function() {
        if (this.e_form.down('input[name="zipcode_list[0]"]')) {
          this.e_form.down('input[name="zipcode_list[0]"]').setValue(this.zipcode.zipcode_list[0]);
        }
        if (this.e_form.down('input[name="zipcode_list[1]"]')) {
          this.e_form.down('input[name="zipcode_list[1]"]').setValue(this.zipcode.zipcode_list[1]);
        }
        if (this.e_form.down('input[name="zipcode"]')) {
          this.e_form.down('input[name="zipcode"]').setValue(this.zipcode.zipcode);
        }
        if (this.e_form.down('select[name="prefecture"]')) {
          this.e_form.down('select[name="prefecture"]').setValue(this.zipcode.prefecture);
        }
        if (this.e_form.down('input[name="address"]')) {
          this.e_form.down('input[name="address"]').setValue(this.zipcode.municipality + this.zipcode.town);
          this.e_form.down('input[name="address"]').fire('mdk:focus');
          this.e_form.down('input[name="address"]').fire('mdk:blur');
          this.e_form.down('input[name="address"]').focus();
          this.e_form.down('input[name="address"]').setValue(this.e_form.down('input[name="address"]').getValue());
        }

        var input_house_number = this.e_form.down('input[name="house_number"]');
        if (input_house_number) {
          input_house_number.focus();
        }

        if (Mdk_Globals.black_out) {
          Mdk_Globals.black_out.hide();
        }
      },

      splited: function() {
        if (this.e_form.down('input[name="zipcode_list[0]"]')) {
          this.e_form.down('input[name="zipcode_list[0]"]').setValue(this.zipcode.zipcode_list[0]);
        }
        if (this.e_form.down('input[name="zipcode_list[1]"]')) {
          this.e_form.down('input[name="zipcode_list[1]"]').setValue(this.zipcode.zipcode_list[1]);
        }
        if (this.e_form.down('input[name="zipcode"]')) {
          this.e_form.down('input[name="zipcode"]').setValue(this.zipcode.zipcode);
        }
        if (this.e_form.down('select[name="prefecture"]')) {
          this.e_form.down('select[name="prefecture"]').setValue(this.zipcode.prefecture);
        }
        if (this.e_form.down('input[name="municipality"]')) {
          this.e_form.down('input[name="municipality"]').setValue(this.zipcode.municipality);
          this.e_form.down('input[name="municipality"]').fire('mdk:focus');
          this.e_form.down('input[name="municipality"]').fire('mdk:blur');
          this.e_form.down('input[name="municipality"]').setValue(this.e_form.down('input[name="municipality"]').getValue());
        }
        if (this.e_form.down('input[name="town"]')) {
          this.e_form.down('input[name="town"]').setValue(this.zipcode.town);
          this.e_form.down('input[name="town"]').fire('mdk:focus');
          this.e_form.down('input[name="town"]').fire('mdk:blur');
          this.e_form.down('input[name="town"]').focus();
          this.e_form.down('input[name="town"]').setValue(this.e_form.down('input[name="town"]').getValue());
        }
        if (Mdk_Globals.black_out) {
          Mdk_Globals.black_out.hide();
        }
      }

    },

    SwitchImage: function(element, _switch) {
      element = $(element);
      if (element.readAttribute('src')) {
        element.writeAttribute('src', element.readAttribute('src').sub(/(on|off)\.(gif|jpe?g|png)(\?|$)/i, (_switch ? 'on' : 'off') + '.#{2}#{3}'));
      }
    }

};

var Mdk_Alert = Class.create(
  {

    /**
     * @var Object static 変数を格納するオブジェクト
     * @static
     */
    Statics: {

      /** @var Number 表示オブジェクトのインデックス */
      index: 0,

      /** @var Number 表示しているオブジェクトの数 */
      displayed_number: 0,

      /** @var Number 表示オブジェクトの高さ合計 */
      composited_height: 0

    },

    /**
     * 実際に表示する
     */
    show: function() {
      // 要素の構築
      this.Statics.index++;
      this.base = new Element(
        'div',
        {
          id: 'mdk-alert-base-' + this.Statics.index
        }
      );
      if (Prototype.Browser.IE) {
        this.iframe = new Element(
          'iframe',
          {
            id: 'mdk-alert-iframe' + this.Statics.index,
            src: '/images/spacer.gif',
            frameborder: "0"
          }
        );
      }
      this.div = new Element(
        'div',
        {
          id: 'mdk-alert-div-' + this.Statics.index
        }
      );

      // 中身をセット
      this.div.insert({bottom: this.$element});

      // style を設定
      var position = 'fixed';
      if (Prototype.Browser.IE) {
        position = 'absolute';
      }
      this.base.setStyle(
        {
          display: 'none',
          position: position,
          zIndex: 105,
          padding: 0,
          margin: 0,
          border: "none"
        }
      );
      if (Prototype.Browser.IE) {
        this.iframe.setStyle(
          {
            position: position,
            zIndex: 110,
            padding: 0,
            margin: 0,
            border: "none"
          }
        );
      }
      this.div.setStyle(
        {
          position: position,
          zIndex: 120,
          border: 'solid 1px #aaaaaa',
          backgroundColor: '#ffffff'
        }
      );

      // 要素を追加
      if (Prototype.Browser.IE) {
        this.base.insert({bottom: this.iframe});
      }
      this.base.insert({bottom: this.div});
      $$('body')[0].insert({bottom: this.base});

      // エフェクトを設定
      new Effect.Parallel(
        [
          Effect.Appear(
            this.base,
            {
              duration: 0.5,
              beforeStartInternal: function() {
                this.Statics.displayed_number++;
                this.base.setOpacity(0.1);
                this.base.show();
                this.updateSize();
                this.updatePosition();
              }.bind(this)
            }
          ),
          Effect.Fade(
            this.base,
            {
              duration: 1,
              delay: 3,
              afterFinishInternal: function() {
                this.div.hide();
                if (Prototype.Browser.IE) {
                  this.iframe.hide();
                }
                this.base.hide();
                this.Statics.displayed_number--;
                if (this.Statics.displayed_number <= 0) {
                  this.Statics.composited_height = 0;
                }
              }.bind(this)
            }
          )
        ],
        {delay: 3}
      );
    },

    /**
     * 位置を更新する
     *
     * @param Number left 横位置
     * @param Number top 縦位置
     */
    updatePosition: function(left, top) {
      if (!this.base) {
        return;
      }
      if (!left) {
        left = document.viewport.getScrollOffsets().left + document.viewport.getDimensions().width - this.$element.getWidth() - 2;
      }
      if (!top) {
        top = this.Statics.composited_height;
      }
      this.Statics.composited_height += this.$element.getHeight();
      if (Prototype.Browser.IE) {
        this.base.setStyle({left: document.viewport.getScrollOffsets().left + left + 'px', top: document.viewport.getScrollOffsets().top + top + 'px'});
      } else {
        this.base.setStyle({left: left + 'px', top: top + 'px'});
      }
    },

    /**
     * サイズを更新する
     *
     * @param Number width 横幅
     * @param Number height 縦幅
     */
    updateSize: function(width, height) {
      if (!this.base) {
        return;
      }
      width = width || this.$element.getWidth();
      height = height || this.$element.getHeight();

      this.base.setStyle({width: width + 'px', height: height + 'px'});
      if (Prototype.Browser.IE) {
        this.iframe.setStyle({width: width + 'px', height: height + 'px'});
      }
      this.div.setStyle({width: width + 'px', height: height + 'px'});
    },

    /**
     * コンストラクタ
     */
    initialize: function($element) {
      var div = new Element('div');
      if (Object.isString($element)) {
        div.update($element);
      } else {
        div.insert({bottom: $element});
      }
      div.setStyle({padding: '5px 10px', whiteSpace: 'nowrap'});
      this.$element = div;
      this.show();
    }

  }
);

var Mdk_Induce = Class.create(
  {

    focus: function() {
      if (this.element.getValue().gsub(/\r|\n/, '') == this.induce_message.gsub(/\r|\n/, '')) {
        this.element.setValue('');
      }
      this.element.removeClassName('silver');
    },

    blur: function() {
      if (this.element.getValue().gsub(/\r|\n/, '') === '' || this.element.getValue().gsub(/\r|\n/, '') == this.induce_message.gsub(/\r|\n/, '')) {
        this.element.addClassName('silver');
        this.element.setValue(this.induce_message);
      }
    },

    submit: function() {
      if (this.element.getValue().gsub(/\r|\n/, '') == this.induce_message.gsub(/\r|\n/, '')) {
        this.element.setValue('');
      }
    },

    initialize: function(element, induce_message) {
      this.element = $(element);
      this.induce_message = induce_message;
      this.element.observe('focus', this.focus.bind(this));
      this.element.observe('mdk:focus', this.focus.bind(this));
      this.element.observe('blur', this.blur.bind(this));
      this.element.observe('mdk:blur', this.blur.bind(this));
      this.element.up('form').observe('submit', this.submit.bind(this));
      this.element.up('form').observe('mdk:submit', this.submit.bind(this));
      this.element.mdk_induce = this;
      this.element.fire('mdk:focus');
      this.element.fire('mdk:blur');
    }

  }
);

var Mdk_Tooltip = Class.create(
  {

    show: function(event) {
      this.o_tooltip = Mdk_Util.CreateWindow(event, this.e_tooltip, false, 'left', 'bottom');
      if (Object.isElement(this.o_tooltip.element)) {
        this.o_tooltip.element.addClassName('mdk-tooltip');
        this.o_tooltip.element.addClassName('inline-left');
        $$('body')[0].insert({bottom: this.o_tooltip.element});
      }
      if (Object.isElement(this.o_tooltip.iframe)) {
        $$('body')[0].insert({bottom: this.o_tooltip.iframe});
      }
      this.hide_timer = setTimeout(this.hide.bindAsEventListener(this), this.display_second * 1000);
    },

    hide: function(event) {
      if (Object.isUndefined(this.o_tooltip)) {
        return;
      }
      if (Object.isElement(this.o_tooltip.element)) {
        this.o_tooltip.element.remove();
        this.o_tooltip.element = undefined;
      }
      if (Object.isElement(this.o_tooltip.iframe)) {
        this.o_tooltip.iframe.remove();
        this.o_tooltip.iframe = undefined;
      }
      this.o_tooltip = undefined;
      if (!Object.isUndefined(this.hide_timer)) {
        clearTimeout(this.hide_timer);
      }
      this.hide_timer = undefined;
    },

    update: function(event) {
      if (Object.isUndefined(this.o_tooltip)) {
        return;
      }
      var left, top;
      left = event.pointerX();
      top = event.pointerY();
      if (Object.isElement(this.o_tooltip.element)) {
        this.o_tooltip.element.setStyle({left: left + 'px', top: (top - this.o_tooltip.element.getHeight() - 15) + 'px'});
      }
      if (Object.isElement(this.o_tooltip.iframe)) {
        this.o_tooltip.iframe.setStyle({left: left + 'px', top: (top - this.o_tooltip.element.getHeight() - 15) + 'px'});
      }
      if (!Object.isUndefined(this.hide_timer)) {
        clearTimeout(this.hide_timer);
      }
      this.hide_timer = setTimeout(this.hide.bindAsEventListener(this), this.display_second * 1000);
    },

    initialize: function(element, content, display_second) {
      element = $(element);
      if (!element) {
        return;
      }
      if (Object.isString(content)) {
        this.e_tooltip = new Element('div');
        this.e_tooltip.update(content);
      } else if (Object.isElement(content)) {
        this.e_tooltip = content.cloneNode(true);
      } else {
        return;
      }
      this.e_tooltip.setStyle(
        {
          border: 'solid 1px #000000',
          backgroundColor: '#ffffe7',
          padding: '5px'
        }
      );
      if (display_second) {
        this.display_second = display_second;
      } else {
        this.display_second = 3;
      }
      $$('body')[0].setStyle({position: 'relative'});
      element.observe('mouseover', this.show.bindAsEventListener(this));
      element.observe('mousemove', this.update.bindAsEventListener(this));
      element.observe('mouseout', this.hide.bindAsEventListener(this));
      element.observe(
        'mdk:dummy',
        function() {
          this.show.bindAsEventListener(this)();
          this.hide.bindAsEventListener(this)();
        }.bind(this)
      );
      element.observe('mdk:tooltip:show', this.show.bindAsEventListener(this));
      element.observe('mdk:tooltip:hide', this.hide.bindAsEventListener(this));
    }

  }
);

var Mdk_NowLoading = {

    show: function() {
      var e_loading_mask = new Element('div', {id: 'mdk-now-loading-mask'});
      var e_loading = new Element('div', {id: 'mdk-now-loading'});
      var e_loading_indicator = new Element('div', {id: 'mdk-now-loading-indicator'});
      var e_loading_message = new Element('p');
      var e_loading_image = new Element('img', {src: '/images/common/now-loading.gif', width: 48, height: 48});
      e_loading_mask.setOpacity(0.5);
      e_loading_message.update('ただいま読み込み中です');
      e_loading_indicator.insert({bottom: e_loading_image});
      e_loading_indicator.insert({bottom: e_loading_message});
      e_loading.insert({bottom: e_loading_indicator});
      $$('body')[0].insert({top: e_loading});
      $$('body')[0].insert({top: e_loading_mask});
    },

    hide: function() {
      $('mdk-now-loading').remove();
      $('mdk-now-loading-mask').remove();
      if ($('mdk-now-loading-iframe')) {
        $('mdk-now-loading-iframe').remove();
      }
    }

};

var Mdk_BlackOut = Class.create(
  {

    show: function() {
      if ($('mdk-black-out-mask') || $('mdk-black-out')) {
        return;
      }
      var dummy = this.element.cloneNode(true);
      dummy.setOpacity(0);
      dummy.setStyle(
        {
          position: 'absolute'
        }
      );
      $$('body')[0].insert({bottom: dummy});
      var width, height, left, top, body_position;
      width = dummy.getWidth();
      height = dummy.getHeight();
      left = (document.viewport.getWidth() / 2) - (width / 2);
      top = (document.viewport.getHeight() / 2) - (height / 2);
      if (top < 0) {
        top = 0;
      }
      dummy.remove();
      if (Prototype.Browser.IE) {
        top += document.viewport.getScrollOffsets().top;
      }
      body_position = $$('body')[0].getStyle('position');
      $$('body')[0].setStyle('position', 'relative');
      this.e_black_out_mask = new Element('div', {id: 'mdk-black-out-mask'});
      if (Prototype.Browser.IE) {
        this.e_black_out_iframe = new Element('iframe', {id: 'mdk-black-out-iframe', src: "javascript: false;", frameborder: 0});
      }
      this.e_black_out = new Element('div', {id: 'mdk-black-out'});
      this.e_black_out_indicator = new Element('div', {id: 'mdk-black-out-indicator'});
      if (!Object.isUndefined(this.options) && this.options.hide_at_mask) {
        this.e_black_out_mask.observe('click', this.hide.bind(this));
      }
      if (Object.isElement(this.element) && this.element.down('.mdk-black-out-close')) {
        this.element.select('.mdk-black-out-close').each(
          function(e_close) {
            e_close.observe('click', this.hide.bind(this));
          }.bind(this)
        );
      }
      this.e_black_out_mask.setStyle(
        {
          height: ($('container') ? $('container').getHeight() : $$('body')[0].getHeight()) + 'px'
        }
      );
      if (Prototype.Browser.IE) {
        this.e_black_out_iframe.setStyle(
          {
            height: ($('container') ? $('container').getHeight() : $$('body')[0].getHeight()) + 'px'
          }
        );
      }
      this.e_black_out.setStyle(
        {
          position: 'absolute',
          width: width + 'px',
          height: height + 'px',
          left: left + 'px',
          top: top + 'px'
        }
      );
      this.element.setStyle('position', 'relative');
      this.e_black_out_indicator.setStyle(
        {
          width: width + 'px'
        }
      );
      this.e_black_out_indicator.insert({bottom: this.element});
      this.e_black_out.insert({bottom: this.e_black_out_indicator});
      this.e_black_out.hide();
      $$('body')[0].insert({top: this.e_black_out});
      $$('body')[0].insert({top: this.e_black_out_mask});
      if (Prototype.Browser.IE) {
        $$('body')[0].insert({top: this.e_black_out_iframe});
      }
      Effect.BlindDown(this.e_black_out, {duration: 1.0});
      $$('body')[0].setStyle('position', body_position);
    },

    hide: function() {
      if (this.e_black_out_mask) {
        this.e_black_out_mask.remove();
      }
      if (this.e_black_out_iframe) {
        this.e_black_out_iframe.remove();
      }
      if (this.e_black_out) {
        this.e_black_out.remove();
      }
    },

    initialize: function(element, options) {
      element = $(element);
      if (!Object.isElement(element)) {
        return;
      }

      this.options = options || {};
      if (this.options && !this.options.keep_id) {
        this.element = element.cloneNode(true);
        this.element.removeAttribute('id');
        this.element.identify();
      } else {
        this.element = element;
      }
      this.show.bind(this)();
    }

  }
);

var Mdk_Decrypt = Class.create(
  {

    /** @var Integer 固定シード */
    FIXED_SEED: [7, 13],

    /**
     * 複合化
     *
     * @return void
     */
    decrypt: function() {
      if (!this.text_only) {
        document.write('<a href="ma' + 'il' + 'to:');
        this.value[0].each(
          function(character) {
            document.write(this._decrypt(character, 0));
          }.bind(this)
        );
        document.write('">');
      }
      this.value[1].each(
        function(character) {
          document.write(this._decrypt(character, 1));
        }.bind(this)
      );
      if (!this.text_only) {
        document.write('<' + '/a' + '>');
      }
    },

    /**
     * 文字単位の複合化
     *
     * @param String character 一文字
     * @param Integer index インデックス
     * @return String 複合した文字
     */
    _decrypt: function(character, index) {
      return String.fromCharCode(character - this.seed + this.FIXED_SEED[index]);
    },

    /**
     * コンストラクタ
     *
     * @param Array value 文字の配列
     * @param Integer seed シード
     * @param Boolean text_only テキスト表示のみにするかどうか
     * @return void
     */
    initialize: function(value, seed, text_only) {
      this.value = value;
      this.seed = seed;
      this.text_only = text_only;
      this.decrypt();
    }

  }
);

var Mdk_Globals = {};

var mdk = new Mdk;

/**
 * 数字 3 桁ごとにカンマを入れる
 *
 * @return String カンマを入れた数値
 */
Number.prototype.commify = function() {
  var s = this.toString().split("\.");
  return s[0].replace(/((^[+-])?(\d)+?)(?=(\d{3})+$)/g, "$1,") + (s[1]? "." + s[1].replace(/(\d{3})(?=\d+)/g, "$1,") : "");
}

Number.prototype.roundByDigit = function(digit) {
  var value = this;
  value = value * Math.pow(10, digit);
  value = parseInt((Math.round(value)).toString());
  value = value / Math.pow(10, digit);
  return value;
};

/**
 * ゼロ埋めする
 *
 * @param Number digit 埋める桁数
 * @return String 埋めた文字列
 */
Number.prototype.zerofill = function(digit) {
  var string = ('0'.repeat(digit) + this.toString());
  return string.substr(string.length - digit, digit);
};

/**
 * 文字列を繰り返す
 *
 * @param Number length 繰り返す回数
 * @return String 構築した文字列
 */
String.prototype.repeat = function(length) {
  var s = [];
  while (s.length < length) {
    s.push(this);
  }
  return s.join('');
}

/**
 * 改行コードを BR タグに置換する
 *
 * @param Boolen xhtml 対象とする文字列
 * @return String 置換後の文字列
 */
String.prototype.nl2br = function(xhtml) {
  xhtml = Object.isUndefined(xhtml) || xhtml ? true : false;
  br = xhtml ? '<br />' : '<br>';
  return this.gsub(/\r\n|\r|\n/i, br);
}

/**
 * URL的な文字列をアンカータグに置換する
 *
 * @param String target ターゲットフレーム
 * @return String 置換後の文字列
 */
String.prototype.anchorize = function(target) {
  target = Object.isUndefined(target) ? false : ' target="' + target + '"';
  var string = this.toString().gsub(/(https?:\/\/[a-zA-Z0-9#$%&,.\/;=?@^_\-\[\]]+)/m, '<a href="#{0}"' + target + '>#{0}</a>');
  return string;
}

/**
 * prototypeUtils.js from http://jehiah.com/
 * Licensed under Creative Commons.
 * version 1.0 December 20 2005
 *
 * Contains:
 * + Form.Element.setValue()
 * + unpackToForm()
 */
/* Form.Element.setValue("fieldname/id","valueToSet") */
Form.Element.Methods.setValue = function(element,newValue) {
  element_id = element;
  element = $(element);
  if (!element){element = document.getElementsByName(element_id)[0];}
  if (!element){return false;}
  var method = element.tagName.toLowerCase();
  var parameter = Form.Element.SetSerializers[method](element,newValue);
}

Form.Element.SetSerializers = {
  input: function(element,newValue) {
    switch (element.type.toLowerCase()) {
      case 'submit':
      case 'hidden':
      case 'password':
      case 'text':
        return Form.Element.SetSerializers.textarea(element,newValue);
      case 'checkbox':
      case 'radio':
        return Form.Element.SetSerializers.inputSelector(element,newValue);
    }
    return false;
  },

  inputSelector: function(element,newValue) {
    fields = document.getElementsByName(element.name);
    for (var i=0;i<fields.length;i++){
      if (Object.isArray(newValue)) {
        if (newValue.include(fields[i].value)) {
          fields[i].checked = true;
        }
      } else {
        if (fields[i].value == newValue){
          fields[i].checked = true;
        }
      }
    }
  },

  textarea: function(element,newValue) {
    element.value = newValue;
  },

  select: function(element,newValue) {
    var value = '', opt, index = element.selectedIndex;
    for (var i=0;i< element.options.length;i++){
      if (Object.isArray(newValue)) {
        if (newValue.include(element.options[i].value)) {
          element.options[i].selected = true;
        }
      } else {
        if (element.options[i].value == newValue){
          element.options[i].selected = true;
          return true;
        }
      }
    }
  }
}

/* Form.Element.clear("fieldname/id") */
Form.Element.Methods.clear = function(element) {
  element_id = element;
  element = $(element);
  if (!element){element = document.getElementsByName(element_id)[0];}
  if (!element){return false;}
  var method = element.tagName.toLowerCase();
  var parameter = Form.Element.ClearSerializers[method](element);
  return parameter;
}

Form.Element.Methods.selectAll = function(element) {
  element = $(element);
  setTimeout(
    function() {
      this.select();
    }.bind(element)
    , 10
  );
  return element;
};

Form.Element.ClearSerializers = {
  input: function(element) {
    switch (element.type.toLowerCase()) {
      case 'submit':
      case 'hidden':
      case 'password':
      case 'text':
        return Form.Element.ClearSerializers.textarea(element);
      case 'checkbox':
      case 'radio':
        return Form.Element.ClearSerializers.inputSelector(element);
    }
    return false;
  },

  inputSelector: function(element) {
    if (!$(element).up('form').select('[name="' + element.name + '"]')) {
      return false;
    }
    fields = $(element).up('form').select('[name="' + element.name + '"]');
    for (var i=0;i<fields.length;i++){
      fields[i].checked = false;
      fields[i].removeAttribute('checked');
    }
    return element;
  },

  textarea: function(element) {
    element.value = '';
    return element;
  },

  select: function(element,newValue) {
    var value = '', opt, index = element.selectedIndex;
    for (var i=0;i< element.options.length;i++){
      element.options[i].selected = false;
      element.options[i].removeAttribute('selected');
    }
  }
}

Element.addMethods();

function unpackToForm(data){
   for (i in data){
     Form.Element.setValue(i,data[i].toString());
   }
}

document.viewport.getDimensions = function() {
  var dimensions = { }, B = Prototype.Browser;
  $w('width height').each(function(d) {
    var D = d.capitalize();
    if (B.WebKit && !document.evaluate) {
      // Safari <3.0 needs self.innerWidth/Height
      dimensions[d] = self['inner' + D];
    } else if (B.Opera && parseFloat(window.opera.version()) < 9.5) {
      // Opera <9.5 needs document.body.clientWidth/Height
      dimensions[d] = document.body['client' + D];
    //} else if (B.IE) {
    //  dimensions[d] = document.body['client' + D];
    } else {
      dimensions[d] = document.documentElement['client' + D];
    }
  });
  return dimensions;
}
if (typeof jQuery != 'undefined') {
  void function ($) {
    $.extend({
      MSMconfirm: function (title, msg, buttons_list) {

        var confirm_html = $('<div id="moshimo-confirm" style="width:200px; display:none;">TEST!</div>');
        $(confirm_html).html(msg);
        $(confirm_html).dialog({
          autoOpen: false,
          draggable: false,
          title: title,
          //height: 140,
          closeOnEscape: false,
          modal: true,
          show: "clip",
          buttons: buttons_list
        });
        $(confirm_html).dialog('open');
      }
      , MSMalert: function (title, msg, func) {

        var alert_html = $('<div id="moshimo-confirm" style="width:200px; background-color: #d8f090; display:none;">TEST!</div>');
        $(alert_html).text(msg);
        $(alert_html).dialog({
          autoOpen: false,
          title: title,
          height: 140,
          draggable: false,
          closeOnEscape: false,
          modal: true,
          show: "clip",
          buttons: {
            "OK": function () {
              func();
              $(this).dialog('close');
            }
          }
        });
        $(alert_html).dialog('open');
      }
    });
  }(jQuery);
}



<file_sep>/js/1.0.0.js
/**
 * jQuery.induce - jQuery Plugin
 *
 * Under The MIT License
 * Copyright (c) 2011 <NAME>. (http://monry.jp/)
 * 
 * Permission is hereby granted, free of charge, to any person obtaining
 * a copy of this software and associated documentation files (the
 * "Software"), to deal in the Software without restriction, including
 * without limitation the rights to use, copy, modify, merge, publish,
 * distribute, sublicense, and/or sell copies of the Software, and to
 * permit persons to whom the Software is furnished to do so, subject to
 * the following conditions:
 * 
 * The above copyright notice and this permission notice shall be
 * included in all copies or substantial portions of the Software.
 * 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 *
 * Version: 1.0.0
 * Revision: $Rev$
 * Date: $Date$
 */
(
  function($) {
    $.B = {};
    $.B.check = function() {
      // {{{ 初期化
      // 新しいブラウザかどうか
      $.B.modern = false;
      // 古いブラウザかどうか
      $.B.legacy = false;
      // Internet Explorer かどうか
      $.B.IE = false;
      // Internet Explorer 5.5 以下かどうか
      $.B.IE55l = false;
      // Internet Explorer 6 かどうか
      $.B.IE6 = false;
      // Internet Explorer 7 かどうか
      $.B.IE7 = false;
      // Internet Explorer 8 かどうか
      $.B.IE8 = false;
      // Internet Explorer 9 かどうか
      $.B.IE9 = false;
      // Internet Explorer (Quirks モード) かどうか
      $.B.IEQuirks = false;
      // Internet Explorer 7 (互換モード) かどうか
      $.B.IE7Emulated = false;
      // Internet Explorer 8 (互換モード) かどうか
      $.B.IE8Emulated = false;
      // Mozilla Firefox かどうか
      $.B.FF = false;
      // エンジンが WebKit かどうか
      $.B.WK = false;
      // Google Chrome かどうか
      $.B.GC = false;
      // Safari かどうか
      $.B.SF = false;
      // Opera かどうか
      $.B.OP = false;
      // それ以外のブラウザかどうか
      $.B.other = false;
      // }}}

      // {{{ 判定処理
      if (!document.uniqueID && !window.opera && !window.globalStorage && window.localStorage) {
        /* WebKit */
        $.B.WK = true;
      } else if (window.globalStorage) {
        /* Firefox */
        $.B.FF = true;
      } else if (window.opera) {
        /* Opera */
        $.B.OP = true;
      } else if (typeof window.ActiveXObject != 'undefined' || typeof window.document.all != 'undefined') {
        /* Internet Explorer */
        if (typeof document.documentMode != 'undefined') {
          if (document.documentMode == '8') {
            $.B.IE8Emulated = true;
          } else if (document.documentMode == '7') {
            $.B.IE7Emulated = true;
          } else if (document.documentMode == '5') {
            $.B.IEQuirks = true;
          }
        }
        if ($.support.opacity) {
          /* Internet Explorer 9 */
          $.B.IE9 = true;
        } else if (typeof window.addEventListener == 'undefined' && typeof document.documentElement.style.maxHeight == 'undefined') {
          /* Internet Explorer 6 */
          $.B.IE6 = true;
        } else if (typeof window.addEventListener == 'undefined' && typeof document.querySelectorAll == 'undefined') {
          /* Internet Explorer 7 */
          $.B.IE7 = true;
        } else if (typeof window.addEventListener == 'undefined' && typeof document.getElementsByClassName == 'undefined') {
          /* Internet Explorer 8 */
          $.B.IE8 = true;
        } else {
          /* Internet Explorer 5.5 以下 */
          $.B.IE55l = true;
        }
      } else {
        /* 判別不能 */
        $.B.other = true;
      }
      // }}}

      // {{{ 条件が重複するモノを一括で判定
      $.B.IE = $.B.IE55l || $.B.IE6 || $.B.IE7 || $.B.IE8 || $.B.IE9;
      $.B.modern = !$.B.IE55l && !$.B.IE6 && !$.B.IE7 && !$.B.IE8 && !$.B.other;
      $.B.legacy = !$.B.modern;
      $.B.GC = $.B.WK;
      $.B.SF = $.B.WK;
      // }}}

      // {{{ 冗長な名前でも値を持っておく
      $.B.InternetExplorer = $.B.IE;
      $.B.InternetExplorer55Lower = $.B.IE55l;
      $.B.InternetExplorer6 = $.B.IE6;
      $.B.InternetExplorer7 = $.B.IE7;
      $.B.InternetExplorer8 = $.B.IE8;
      $.B.InternetExplorer9 = $.B.IE9;
      $.B.Firefox = $.B.FF;
      $.B.WebKit = $.B.WK;
      $.B.Safari = $.B.WK;
      $.B.GoogleChrome = $.B.WK;
      $.B.Opera = $.B.OP;
      // }}}
    };
    $.B.check();
  }
)(jQuery);

<file_sep>/js/common.js
void function($) {
  $(
    function(event) {

      // {{{ 画面最上部へスクロール
      $('#totop').click(function (event) {
        event.preventDefault();
        $.scrollTo(
          '#container'
          , 800
        );
      });
      // }}}

    }
  );
}(jQuery);
<file_sep>/js/1.0.0_2.js
/**
 * jQuery.heightAlign - jQuery Plugin
 *
 * Under The MIT License
 * Copyright (c) 2011 <NAME>. (http://monry.jp/)
 * 
 * Permission is hereby granted, free of charge, to any person obtaining
 * a copy of this software and associated documentation files (the
 * "Software"), to deal in the Software without restriction, including
 * without limitation the rights to use, copy, modify, merge, publish,
 * distribute, sublicense, and/or sell copies of the Software, and to
 * permit persons to whom the Software is furnished to do so, subject to
 * the following conditions:
 * 
 * The above copyright notice and this permission notice shall be
 * included in all copies or substantial portions of the Software.
 * 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 *
 * Version: 1.0.0
 * Revision: $Rev$
 * Date: $Date$
 */
(
  function($) {
    // {{{ 高さ調節
    $.fn.heightAlign = function(options) {
      var
        // デフォルトの設定
        _defaults = {
          'group_by_attribute': false
        },

        // 設定確定
        _setting = $.extend(_defaults, options),

        _targets = $(this),

        // 呼出時のコンテキスト
        _context = $(this).context,

        // 呼出時のセレクタ
        _selector = $(this).selector,

        // 実処理
        _align = function() {
          // {{{ 高さリスト構築
          var height_list = {};
          _targets.each(
            function(index, element) {
              var key = '';
              if (_setting.group_by_attribute) {
                key = $(element).attr(_setting.group_by_attribute);
              }
              if (typeof height_list[key] == 'undefined') {
                height_list[key] = 0;
              }
              if (height_list[key] < $(element).height()) {
                height_list[key] = $(element).height();
              }
            }
          );
          // }}}

          // {{{ 高さリストを元に高さを実際に調整
          $.each(
            height_list
            , function(key, value) {
              var __selector = _selector;
              if (_setting.group_by_attribute) {
                __selector += '[' + _setting.group_by_attribute + '="' + key + '"]';
              }
              $(__selector, _context).height(value);
            }
          );
          // }}}
        }
      ;

      _align();

      return this;
    }
    // }}}

  }
)(jQuery);

<file_sep>/46.html
<!doctype html>
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="description" content="株式会社もしも 実藤裕史 1979年4月21日生まれ。埼玉県出身。一橋大学商学部中退。大学在学中にECベンチャー「オイシックス」のインターンとしてスタートアッ..." />
<meta name="keywords" content="株式会社もしも、実藤裕史、ビジョナリー、社長、取締役、経営者、CEO、インタビュー、転職、求人、仕事、採用" />
    
<meta property="og:type" content="article" />
<meta property="og:title" content="モノを売る仕組みの提供で個人を応援！" />
<meta property="og:description" content="株式会社もしも 実藤裕史氏 のインタビュー記事を公開中！他にも、魅力的な経営者たちのインタビュー記事を多数掲載しています。" />
<meta property="og:image" content="http://lvimg.jp/job-link/img/visionary/46/profile_image_circle_large.jpg?_=431686020" />
<meta property="og:url" content="http://job.j-sen.jp/visionary/president/article/46/" />
<meta property="og:site_name" content="ビジョナリー" />

<meta name="viewport" content="width=1060">
<title>株式会社もしも 実藤裕史 モノを売る仕組みの提供で個人を応援！  | ビジョナリー</title>
<link rel="stylesheet" href="/css/visionary/visionary.css" media="all">
    <script src="/js/dist/app/visionary/template/layout.js?rel=2da181bc10b274f38a7d6218f21288af"></script>
    <script src="/js/dist/app/visionary/module/article/index.js?rel=2a0c40298c2160486edf94c76d220961"></script>
<!--[if lte IE 8]>
<script type="text/javascript" src="/js/2009/selectivizr-min.js"></script>
<![endif]-->
<link rel="shortcut icon" href="/favicon.ico">
</head>

<body>

<!-- Google Tag Manager -->
<noscript><iframe src="http://www.googletagmanager.com/ns.html?id=GTM-8CP5"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});
var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;
j.src='http://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-8CP5');</script>
<!-- End Google Tag Manager -->

<div id="header">
    <div class="center-container">
    <div class="site-logo"><a href="/visionary/president/">ビジョナリー</a></div>
        <div class="site-txt">
            <h1>株式会社もしも 実藤裕史 モノを売る仕組みの提供で個人を応援！ ビジョナリー</h1>
            <p>[<a href="/visionary/president/guide/">このサイトについて</a>]</p>
        </div>
        <form action="/visionary/president/search/" method="get">
            <input type="text" name="freewords" value="" placeholder="上場、IT、経営など">
            <input type="submit" value="検索">
        </form>
    </div>
</div>

<div id="contents">
<div class="article-profile">
    <div class="heading-wrap">
        <h2>“モノを売る仕組みの提供で個人を応援！”</h2>
    </div>
    <div class="content">
        <p class="name">株式会社もしも<br>代表取締役<br>実藤裕史</p>
        <p class="mod-txt-muted mod-right">インタビュー： 2014/03/14</p>
        <p class="txt">1979年4月21日生まれ。埼玉県出身。一橋大学商学部中退。大学在学中にECベンチャー「オイシックス」のインターンとしてスタートアップを経験。その後ブランド品のネットショップを立ち上げ、月間2,000万円の売り上げを達成するまでに成長。ECに大きな可能性を見出し、2004年有限会社ウェブデパを設立、代表取締役に就任する。2006年に社名を㈱もしもに変更し、ドロップシッピングによる新しいEC市場の確立を目指している。<br />
<a href="https://www.moshimo.com/" rel="nofollow" target="blank">もしもドロップシッピング</a></p>
        <dl class="mod-dl-inline">
                        <dt>生年月日：</dt>
            <dd>1979年</dd>
                                    <dt>出身：</dt>
            <dd>埼玉県</dd>
                                    <dt>出身校：</dt>
            <dd>一橋大学</dd>
                    </dl>
        <div class="figure">
            <img src="http://lvimg.jp/job-link/img/visionary/46/profile_image_circle_large.jpg" height="500" width="500" alt="" />        </div>
    </div>
</div>
<div class="article-main">
                <div class="article-block">
            <div class="center-container">
                <div class="txt">
                                                                <div class="section">
                            <h3>- 小さい時はどんなお子さんでしたか？</h3>
                            <p>一番古い記憶は、保育園の柵を乗り越えて逃げようとして、鉄条網に頭が引っかかり血だらけになった記憶です。それ以降ずーっと脱走癖があり、逃げなくなったのは社長になってからですかね（笑）。小学校4年生の時に『うわさのズッコケ株式会社』という本を読んで夢中になりました。仲良し3人組が釣り客相手にお弁当などを売るビジネスに着眼して、クラスメートからお金を集めて株式会社をつくるという話で、「会社をつくるって面白そうだ」と漠然と思いました。それに影響を受けて、家で手伝いの料金一覧表をつくり、細々とした家事仕事を母から請負ってお小遣いを稼いだほどです。</p>
                        </div>
                                                                <div class="section">
                            <h3>- 起業のきっかけはどのようなことだったんですか？</h3>
                            <p>経営の勉強をしようと大学に入り、在学中に起業を目指していた時に、インターネットベンチャーの有機野菜宅配「オイシックス」の立ち上げに参加しました。自分で野菜のコピーなどを考えて工夫すると、お客様が反応して買ってくれることにやり甲斐を感じました。当時、傷やサイズ不揃いで捨てられていたB級野菜を「ふぞろいの野菜たち」という名前で売り出して大ヒットしたのを見て、言葉ひとつで大きな違いが出ることを体感しました。1年半ほど勤めて、「もう起業できる！」と質屋のショップサイト運営を請負いました。実際は流通のことも、ネットショップのシステムの仕組みも分からず、ゼロから学びながら売上を伸ばしました。丁度流行り始めた価格comで全ての商品がギリギリ1位になるように設定し、最安店ランキング1位つまり「日本で一番ブランド品が安い店」と認知されるようになり、1年半で2億2,000万円くらい売り上げました。「モノを売る」楽しさをもっと人に伝えたいと思っていましたが、実際に販売するとなると商品梱包や伝票処理などの煩雑な仕事が大きなネック。アメリカではその面倒な部分を代わりにやってくれるというドロップシッピングのシステムがあると聞き、これは日本でも必要なサービスだと考え、2006年8月に“もしもドロップシッピング”のサービスを開始しました。</p>
                        </div>
                                                                <div class="section">
                            <h3>- モノを売る楽しさというのはどんな部分なのでしょうか？</h3>
                            <p>究極のコミュニケーションだと思っています。「この値段で売りたい」と商品を提示する売り手側と、「それがほしい」と思って購入する買い手側。その値段や商品が適していないと、相手には届かず買ってもらえない。お客さまの心に響いた時に、初めて「売買」につながるという部分が楽しいですね。</p>
                        </div>
                                                                <div class="section">
                            <h3>- 会社設立に際しては、どんな思いがありましたか？</h3>
                            <p>「個人の未来を応援する」という理念のもと、ブログやTwitterで情報発信するのと同じように「モノを売る」ことができるようにしたかったです。アメリカではドロップシッピングの会社は100社以上、1つの会社で扱える商品も100万点以上と規模は大きいんですが、売る側は「売り主」として住所掲載を義務づけられ、返品代金を負担したりとリスクも高い。日本でやるからには「大変な部分」と「リスク」、つまり法的な責任と返品商品を弊社で請負い、気軽に始められる環境を整備しなければなりませんでした。</p>
                        </div>
                                                                <div class="section">
                            <h3>- 今後、事業はどう展開される予定ですか？</h3>
                            <p>現在当社サービスを使われている会員が40万人、流通している商品も40万点。この規模を3年で100万人、100万商品にしたいと思っています。またTopSellerという新しいサービスは、楽天やYahoo!、STORES.jpなどの他社のショッピングカートで販売できるシステムです。昨年からYahoo!の出店料が無料になったので、TopSellerを使うとYahoo!の集客力も利用しながら、商品量も顧客層も増やせるので、さらに利用者増を目指しています。</p>
                        </div>
                                                                            </div>
                <div class="figure">
                    <img src="http://lvimg.jp/job-link/img/visionary/46/block1_image.jpg" width="380" alt="" />                </div>
                            </div>
        </div>
                <div class="article-block">
            <div class="center-container">
                <div class="txt">
                                                                <div class="section">
                            <h3>- ドロップシッピングで売上を増やすコツは？</h3>
                            <p>現在トップセールスの半数は主婦の方。SEOやブログ、メルマガなど皆さん独自の工夫があるようです。特別なスキルがなくても続けることで成果が出ること、家事や子育てをしながらでも合間の時間をかければ成果に比例することなどが、主婦会員が多い理由だと思います。その中でも目立つためには、見る人の役に立つコンテンツを多くすること。トップセールス常連のコスプレショップのオーナーさんは、他にはないコスプレのアイデアや実際に装着した写真などをたっぷり掲載しています。主婦の方が活躍する裏には、「コレいいわよ！」というおススメおばちゃん的な人の心に刺さるコメントが上手なことがあると思います。</p>
                        </div>
                                                                <div class="section">
                            <h3>- 会社のなかで大切にしている文化はどんなことでしょうか？</h3>
                            <p>会員様のなかには、弊社のドロップシッピングの収入で生活をしている会員様がたくさんいらっしゃいます。つまり弊社のビジネスと会員様たちの生活が直結している、「その責任は自分たちにある」という考えは社員隅々まで浸透させています。</p>
                        </div>
                                                                <div class="section">
                            <h3>- 起業を志す人へのメッセージをお願いします。</h3>
                            <p>起業はリスクもありますが、得られるものも多い。やりたい気持ちがあれば、できるだけ早くやった方がよいと思います。体力やエネルギーがあるうちに取りかかる方が有利なこと、守るものが多くなると踏み出せないことから、若い時の起業がおススメです。</p>
                        </div>
                                                                <div class="section">
                            <h3>- 失敗談はありますか？</h3>
                            <p>ドロップシッピングを開始した当初、物流費用をよく理解しておらずに失敗しました。商品が売れた時の利益より、梱包・出荷の代金の方が高くて、売れれば売れる程赤字という事態になったこと。立ち上げてすぐは、これで倒産しそうになりました。</p>
                        </div>
                                                                <div class="section">
                            <h3>- 座右の銘を教えてください。</h3>
                            <p>「男子三日会わざれば刮目してみよ」という三国志に出てくる言葉で、「若者に三日会わなければ目をよく見開いて見よ、なぜなら驚くほど成長しているから」という意味です。これに自分たちを重ねあわせ、自分たちの可能性を信じて急成長を目指したいですね。</p>
                        </div>
                                                                            </div>
                <div class="figure">
                    <img src="http://lvimg.jp/job-link/img/visionary/46/block2_image.jpg" width="380" alt="" />                </div>
                                    <div class="article-footer">
                        <p class="interviewee">代表取締役<br>
                        <span>実藤裕史</span></p>
                                                    <ul class="sns">
    <li><div class="fb-like" data-href="http://job.j-sen.jp/visionary/president/article/46/" data-layout="button_count" data-action="like" data-show-faces="false" data-share="true"></div></li>
    <li><a href="https://twitter.com/share" class="twitter-share-button" data-url="http://job.j-sen.jp/visionary/president/article/46/" data-text="株式会社もしも 実藤裕史 モノを売る仕組みの提供で個人を応援！  | ビジョナリー" data-width="107" data-lang="ja">ツイート</a></li>
    <li><a href="http://b.hatena.ne.jp/entry/http://job.j-sen.jp/visionary/president/article/46/" class="hatena-bookmark-button" data-hatena-bookmark-title="株式会社もしも 実藤裕史 モノを売る仕組みの提供で個人を応援！  | ビジョナリー" data-hatena-bookmark-layout="standard-balloon" data-hatena-bookmark-lang="ja" title="このエントリーをはてなブックマークに追加"><img src="http://b.st-hatena.com/images/entry-button/button-<EMAIL>" alt="このエントリーをはてなブックマークに追加" width="20" height="20"></a></li>
    <li class="gplus"><div class="g-plusone" data-size="medium" data-href="http://job.j-sen.jp/visionary/president/article/46/"></div>
    </li>
</ul>
                                            </div>
                    <img src="http://lvimg.jp/job-link/img/visionary/46/profile_image_footer.jpg" height="340" width="1000" alt="" />                            </div>
        </div>
    </div>

<div class="center-container">
    <div class="section">
    <h2 class="mod-heading01">他の経営者インタビュー</h2>
    <div class="mod-col4">
                    <div class="item">
                <div class="figure">
                    <a href="/visionary/president/article/17/"><img src="http://lvimg.jp/job-link/img/visionary/17/profile_image_circle_middle.jpg" height="120" width="120" alt="" /></a>
                </div>
                <h3><a href="/visionary/president/article/17/">ベンチャービジネスを支援する法律事務所</a></h3>
                <p class="mod-txt-muted">GVA法律事務所<br>
                <em>山本俊</em></p>
            </div>
                    <div class="item">
                <div class="figure">
                    <a href="/visionary/president/article/133/"><img src="http://lvimg.jp/job-link/img/visionary/133/profile_image_circle_middle.jpg" height="120" width="120" alt="" /></a>
                </div>
                <h3><a href="/visionary/president/article/133/">顧客の課題を「可視化」し、新たな価値を見つけだす</a></h3>
                <p class="mod-txt-muted">株式会社ウィナス<br>
                <em>浜辺拓</em></p>
            </div>
                    <div class="item">
                <div class="figure">
                    <a href="/visionary/president/article/118/"><img src="http://lvimg.jp/job-link/img/visionary/118/profile_image_circle_middle.jpg" height="120" width="120" alt="" /></a>
                </div>
                <h3><a href="/visionary/president/article/118/">メールが変れば会社が変わるマナー向上で広がるチャンス</a></h3>
                <p class="mod-txt-muted">株式会社アイ・コミュニケーション<br>
                <em>平野友朗</em></p>
            </div>
                    <div class="item">
                <div class="figure">
                    <a href="/visionary/president/article/49/"><img src="http://lvimg.jp/job-link/img/visionary/49/profile_image_circle_middle.jpg" height="120" width="120" alt="" /></a>
                </div>
                <h3><a href="/visionary/president/article/49/">「女性」×「ソーシャルメディア」で新たなライフスタイルを提案</a></h3>
                <p class="mod-txt-muted">トレンダーズ株式会社<br>
                <em>経沢香保子</em></p>
            </div>
            </div>
</div>
</div>

</div>

<div id="footer">
    <div class="area1">
        <div class="center-container">
            <div class="section">
                <h2>関連リンク</h2>
                <ul>
                    <li><a href="https://j-sen.jp/" target="_blank">アルバイトならジョブセンス</a></li>
                    <li><a href="http://haken.j-sen.jp/" target="_blank">派遣の求人ならジョブセンス派遣</a></li>
                    <li><a href="http://chintai.door.ac/" target="_blank">賃貸情報ならdoor賃貸</a></li>
                    <li><a href="https://jobtalk.jp/" target="_blank">転職のクチコミなら転職会議</a></li>
                    <li><a href="https://imitsu.jp/" target="_blank">比較・見積もりサイトならアイミツ</a></li>
                    <li><a href="https://syukatsu-kaigi.jp/" target="_blank">就職活動なら就活会議</a></li>
                    </ul>
            </div>
            <div class="section">
                <h2>転職コンテンツ</h2>
                <ul>
                    <li><a href="http://job.j-sen.jp/jobpedia/index.htm" target="_blank">職種大辞典</a></li>
                    <li><a href="http://job.j-sen.jp/qualificationpedia/index.htm" target="_blank">資格大辞典</a></li>
                    <li><a href="http://job.j-sen.jp/hellowork/index.htm" target="_blank">ハローワークPedia</a></li>
                    <li><a href="http://job.j-sen.jp/contents/syokureki.htm" target="_blank">職務経歴書の書き方</a></li>
                    <li><a href="http://job.j-sen.jp/contents/rirekisyo.htm" target="_blank">履歴書の書き方</a></li>
                    <li><a href="http://job.j-sen.jp/contents/interview.htm" target="_blank">面接Ｑ＆Ａ</a></li>
                </ul>
            </div>
            <div class="section about">
                <h2><span>ABOUT</span>
                <a href="/visionary/president/guide/">ビジョナリーとは？</a></h2>
                <p class="mod-txt-muted">ビジョナリーは、様々な分野で活躍している「ビジョナリー＝先見の明をもつ優れた経営者」のインタビューを集めたサイトです。<br>
                    『世の中の魅力あふれる経営者の想いやエピソードを発信し、より多くの人に伝えていきたい』<br>
                    ビジョナリーには、そんな想いが込められています。<br>
                    <a href="https://job.j-sen.jp/support/ask.htm?category=7">インタビュー掲載をご希望の企業様へ</a></p>
            </div>
                            <ul class="sns">
    <li><div class="fb-like" data-href="http://job.j-sen.jp/visionary/president/" data-layout="button_count" data-action="like" data-show-faces="false" data-share="true"></div></li>
    <li><a href="https://twitter.com/share" class="twitter-share-button" data-url="http://job.j-sen.jp/visionary/president/" data-text="経営者インタビューサイト【ビジョナリー】 | 転職ならジョブセンスリンク" data-width="107" data-lang="ja">ツイート</a></li>
    <li><a href="http://b.hatena.ne.jp/entry/http://job.j-sen.jp/visionary/president/" class="hatena-bookmark-button" data-hatena-bookmark-title="経営者インタビューサイト【ビジョナリー】 | 転職ならジョブセンスリンク" data-hatena-bookmark-layout="standard-balloon" data-hatena-bookmark-lang="ja" title="このエントリーをはてなブックマークに追加"><img src="http://b.st-hatena.com/images/entry-button/button-only@2x.png" alt="このエントリーをはてなブックマークに追加" width="20" height="20"></a></li>
    <li class="gplus"><div class="g-plusone" data-size="medium" data-href="http://job.j-sen.jp/visionary/president/"></div>
    </li>
</ul>
                    </div>
    </div>
    <div class="area2">
        <div class="center-container">
            <p class="logo">powered by<br>
            <a href="http://job.j-sen.jp/" target="_blank"><img src="/img/visionary/president/logo_footer.png" height="29" width="206" alt="ジョブセンスリンク（転職サイト）"></a></p>
            <p class="mod-txt-s">推奨ブラウザ:Internet Explorer9.0以降 Safari  Firefox4以降  Google Chrome<br>
                    ※上記以外のブラウザでは最適なレイアウトで閲覧できない可能性がございます。</p>
            <p><small>Copyright (C) Livesense Inc.</small></p>
        </div>
    </div>
</div>

<div id="to-top"><img src="/img/visionary/president/img_totop.png" height="48" width="48" alt=""></div>


<div id="fb-root"></div>
<script>
;(function (w, d) {
    w.___gcfg = {lang: 'ja'};
    var s, e = d.getElementsByTagName('script')[0],
        a = function (u, i) {
            if (!d.getElementById(i)) {
                s = d.createElement('script');
                s.src = u;
                if (i) {s.id = i;}
                e.parentNode.insertBefore(s, e);
            }
        };
    a('//connect.facebook.net/ja_JP/all.js#xfbml=1', 'facebook-jssdk');
    a('//platform.twitter.com/widgets.js', 'twitter-wjs');
    a('//b.st-hatena.com/js/bookmark_button_wo_al.js');
    a('https://apis.google.com/js/plusone.js');
})(this, document);
</script>
</body>
</html>
<file_sep>/js/index.js
void function($) {
  $(
    function(event) {

      // {{{ メイン画像のスライダー
      $( '#main-img' ).backstretch([
        'http://image.' + Mdk.DOMAIN + '/static/img/ds/www/index/img-catch.jpg',
        'http://image.' + Mdk.DOMAIN + '/static/img/ds/www/index/img-main02.jpg',
        'http://image.' + Mdk.DOMAIN + '/static/img/ds/www/index/img-main03.jpg',
        'http://image.' + Mdk.DOMAIN + '/static/img/ds/www/index/img-main01.jpg',
        'http://image.' + Mdk.DOMAIN + '/static/img/ds/www/index/img-main04.jpg'
      ], {duration: 5000, fade: 1000});
      // }}}

    }
  );
}(jQuery);
<file_sep>/js/1.0.0_1.js
/**
 * jQuery.util - jQuery Plugin
 *
 * Under The MIT License
 * Copyright (c) 2011 <NAME>. (http://monry.jp/)
 * 
 * Permission is hereby granted, free of charge, to any person obtaining
 * a copy of this software and associated documentation files (the
 * "Software"), to deal in the Software without restriction, including
 * without limitation the rights to use, copy, modify, merge, publish,
 * distribute, sublicense, and/or sell copies of the Software, and to
 * permit persons to whom the Software is furnished to do so, subject to
 * the following conditions:
 * 
 * The above copyright notice and this permission notice shall be
 * included in all copies or substantial portions of the Software.
 * 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 *
 * Version: 1.0.0
 * Revision: $Rev$
 * Date: $Date$
 */
(
  function($) {
    $.extend(
      {
        'stripTags': function(text) {
          return $('<div>').html(text).text();
        },
        'escapeHTML': function(text) {
          return $('<div>').text(text).html();
        }
      }
    );
    $.fn.extend(
      {
        'replaceAttr': function(attribute_name, pattern, replacement) {
          $(this).each(
            function(index, element) {
              $(element).attr(attribute_name, ($(element).attr(attribute_name) || '').replace(pattern, replacement));
            }
          );
          return this;
        }
      }
    );
  }
)(jQuery);
