(function() {
  const qiniuOption = {
    watermark: 'aHR0cHM6Ly93ZGwud2FsbHN0cmVldGNuLmNvbS8yM2Y0ZWE2Ny1hZjI1LTQ3ZTItYTFlYy1iNzJjNzkzYWNlOGE=',
    weexWatermark: 'aHR0cHM6Ly93cGltZy53YWxsc3Rjbi5jb20vMGQxMmMwN2ItNjViMS00NjA4LTllMTctODUyMDRhOTc3YzY5',
    dissolve: 30,
    dx: 20,
    dy: 20,
    watermarkScale: 0
  };
  tinymce.create('tinymce.plugins.WaterMarkPlugin', {
    init(ed) {
      ed.addCommand('mceWaterMark', () => {
        const target = ed.selection.getNode();

        const src = $(target).attr('src') + '?watermark/1/image/' + qiniuOption.watermark + '/dissolve/' + qiniuOption.dissolve + '/gravity/Center/dx/' + qiniuOption.dx + '/dy/' + qiniuOption.dy + '/ws/' + qiniuOption.watermarkScale
        ed.windowManager.open({
          title: '七牛水印',
          width: 600,
          height: 500,
          body: [{
            type: 'container',
            html: `<div class="mce-container" hidefocus="1" tabindex="-1" >
								<div class="mce-container-body mce-container-watermark-body">
                   <div style="margin-bottom:10px;">
                      <label><input checked='true' style="margin-left: 20px;margin-right: 5px;" name="image-watermarkType" data-type="watermark" class="note-image-watermarkType" type="radio" />见闻</label>
                      <label><input style="margin-left: 20px;margin-right: 5px;" name="image-watermarkType" data-type="weexWatermark" class="note-image-watermarkType" type="radio" />WEEX</label>
                  </div>
                  <div style='min-height:600px;'>
                    <label><input style="margin-left: 20px;margin-right: 5px;" name="image-watermark" data-position="NorthWest" class="note-image-watermark" type="radio" />左上</label>
                    <label><input style="margin-left: 20px;margin-right: 5px;" name="image-watermark" data-position="SouthWest" class="note-image-watermark" type="radio" />左下</label>
                    <label><input style="margin-left: 20px;margin-right: 5px;" name="image-watermark" data-position="NorthEast" class="note-image-watermark" type="radio" /><span>右上</span></label>
                    <label><input style="margin-left: 20px;margin-right: 5px;" name="image-watermark" data-position="SouthEast" class="note-image-watermark" type="radio" /><span>右下</span></label>
                    <label><input checked='true' style="margin-left: 20px;margin-right: 5px;" name="image-watermark" data-position="Center" class="note-image-watermark" type="radio" /><span>正中央</span></label>
                    <img src=${src} style="display: block;margin: 20px auto;max-height: 420px;max-width: 100%;" class="watermark-preview">
                  </div>
								</div>
							</div>`
          }],
          onSubmit() {
            const src = $('.mce-container-watermark-body .watermark-preview').attr('src');
            $(target).attr('src', src);
            ed.undoManager.add()
            // setTimeout(() => {
            //   ed.insertContent('a')
            // }, 100);
          }
        });
        $('.mce-container-watermark-body input[type="radio"]').on('click', () => {
          const $watermarkImg = $('.mce-container-watermark-body .watermark-preview')
          const baseSrc = $watermarkImg.attr('src').split('?')[0];
          const position = $('.mce-container-watermark-body input[name="image-watermark"]:checked').attr('data-position');
          const type = $('.mce-container-watermark-body input[name="image-watermarkType"]:checked').attr('data-type');
          const query = setQuery(position, type);
          $watermarkImg.attr('src', baseSrc + query);
        })
      });


      function setQuery(postion, type) {
        return '?watermark/1/image/' + qiniuOption[type] + '/dissolve/' + qiniuOption.dissolve + '/gravity/' + postion + '/dx/' + qiniuOption.dx + '/dy/' + qiniuOption.dy + '/ws/' + qiniuOption.watermarkScale
      }

      // Register buttons
      ed.addButton('watermark', {
        title: 'watermark',
        text: '水印',
        cmd: 'mceWaterMark'
      });
    }
  });
  tinymce.PluginManager.add('watermark', tinymce.plugins.WaterMarkPlugin);
}());