var _____WB$wombat$assign$function_____ = function(name) {return (self._wb_wombat && self._wb_wombat.local_init && self._wb_wombat.local_init(name)) || self[name]; };
if (!self.__WB_pmw) { self.__WB_pmw = function(obj) { this.__WB_source = obj; return this; } }
{
  let window = _____WB$wombat$assign$function_____("window");
  let self = _____WB$wombat$assign$function_____("self");
  let document = _____WB$wombat$assign$function_____("document");
  let location = _____WB$wombat$assign$function_____("location");
  let top = _____WB$wombat$assign$function_____("top");
  let parent = _____WB$wombat$assign$function_____("parent");
  let frames = _____WB$wombat$assign$function_____("frames");
  let opener = _____WB$wombat$assign$function_____("opener");

/*
 * wpaint.js - wPaint integration javascript
 * https://github.com/vichan-devel/Tinyboard/blob/master/js/wpaint.js
 *
 * Released under the MIT license
 * Copyright (c) 2014 Marcin Łabanowski <marcin@6irc.net>
 *
 * Contains parts of old oekaki code:
 * Copyright (c) 2013 copypaste <wizardchan@hush.com>
 * Copyright (c) 2013-2014 Marcin Łabanowski <marcin@6irc.net>
 *
 * Usage:
 *   $config['additional_javascript'][] = 'js/jquery.min.js';
 *   $config['additional_javascript'][] = 'js/jquery-ui.custom.min.js';
 *   $config['additional_javascript'][] = 'js/ajax.js';
 *   $config['additional_javascript'][] = 'js/wPaint/8ch.js';
 *   $config['additional_javascript'][] = 'js/wpaint.js';
 *   $config['additional_javascript'][] = 'js/upload-selection.js';
 *
 */

window.oekaki = (function(){
"use strict";

var oekaki = {};

oekaki.settings = new script_settings('wpaint');
oekaki.height = oekaki.settings.get("height", 250);
oekaki.width = oekaki.settings.get("width", 500);

function dataURItoBlob(dataURI) {
    var binary = atob(dataURI.split(',')[1]);
    var array = new Array(binary.length);
    for(var i = 0; i < binary.length; i++) {
        array[i] = binary.charCodeAt(i);
    }
    return new Blob([new Uint8Array(array)], {type: 'image/jpeg'});
}

oekaki.do_css = function() {
}

oekaki.init = function() {
  var oekaki_form = '<tr id="oekaki"><th>Oekaki</th><td><div id="wpaintctr"><div id="wpaintdiv"></div></div></td></tr>';

  // Add oekaki after the file input
  $('form[name="post"]:not(#quick-reply) [id="upload"]').after(oekaki_form);

  $('<link class="wpaintcss" rel="stylesheet" href="'+configRoot+'js/wPaint/wPaint.min.css" />').appendTo($("head"));
  $('<link class="wpaintcss" rel="stylesheet" href="'+configRoot+'js/wPaint/lib/wColorPicker.min.css" />').appendTo($("head"));
  $('<link class="wpaintcss" rel="stylesheet" href="'+configRoot+'stylesheets/jquery-ui/core.css" />').appendTo($("head"));
  $('<link class="wpaintcss" rel="stylesheet" href="'+configRoot+'stylesheets/jquery-ui/resizable.css" />').appendTo($("head"));
  $('<link class="wpaintcss" rel="stylesheet" href="'+configRoot+'stylesheets/jquery-ui/theme.css" />').appendTo($("head"));

  var initcount = 0;
  $('.wpaintcss').one('load', function() {
    initcount++;

    if (initcount == 5) {
      $.extend($.fn.wPaint.defaults, {
        mode:        'pencil',  // set mode
        lineWidth:   '1',       // starting line width
        fillStyle:   '#FFFFFF', // starting fill style
        strokeStyle: '#000000',  // start stroke style
      });

      delete $.fn.wPaint.menus.main.items.save;

      $('#wpaintdiv').wPaint({
        path: configRoot+'js/wPaint/',
	menuOffsetTop: -46,
	bg: "#ffffff",
	loadImgFg:   oekaki.load_img,
	loadImgBg:   oekaki.load_img
      });

      $("#wpaintctr").resizable({
        stop: function(event,ui) {
          $("#wpaintdiv").wPaint("resize");
        },
        alsoResize: "#wpaintdiv",
      });

      $('#wpaintctr .ui-resizable-se').css({'height':'12px', 'width':'12px'});
    }
  });

  $("#wpaintdiv").width(oekaki.width).height(oekaki.height).css("position", "relative");
  $("#wpaintctr").width(oekaki.width+5).height(oekaki.height+5).css("padding-top", 48).css("position", "relative");

  $(document).on("ajax_before_post.wpaint", function(e, postData) {
    var blob = $('#wpaintdiv').wPaint("image");
    blob = dataURItoBlob(blob);
    postData.append("file", blob, "Oekaki.png");
  });

  $(window).on('stylesheet', function() {
    oekaki.do_css();
    if ($('link#stylesheet').attr('href')) {
      $('link#stylesheet')[0].onload = oekaki.do_css;
    }
  });

  oekaki.initialized = true;
};

oekaki.load_img = function() {
  alert(_("Click on any image on this site to load it into oekaki applet"));
  $('img').one('click.loadimg', function(e) {
    $('img').off('click.loadimg');
    e.stopImmediatePropagation();
    e.preventDefault();
    var url = $(this).prop('src');
    $('#wpaintdiv').wPaint('setBg', url);
    return false;
  });
};

oekaki.deinit = function() {
  $('#oekaki, .wpaintcss').remove();

  $(document).off("ajax_before_post.wpaint");

  oekaki.initialized = false;
};

oekaki.initialized = false;
return oekaki;
})();


}
/*
     FILE ARCHIVED ON 03:17:50 Jun 08, 2023 AND RETRIEVED FROM THE
     INTERNET ARCHIVE ON 03:53:16 Mar 03, 2024.
     JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE.

     ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C.
     SECTION 108(a)(3)).
*/
/*
playback timings (ms):
  exclusion.robots: 0.082
  exclusion.robots.policy: 0.072
  cdx.remote: 0.089
  esindex: 0.009
  LoadShardBlock: 272.417 (6)
  PetaboxLoader3.resolve: 324.833 (4)
  PetaboxLoader3.datanode: 192.824 (8)
  load_resource: 295.285 (2)
*/