Popup Search

Popup Search Box and translate Button (etc) for selected Text

目前為 2014-06-04 提交的版本,檢視 最新版本

// ==UserScript==
// @name				Popup Search
// @author				lkytal
// @namespace			Lkytal
// @homepage			http://coldfire.qiniudn.com/
// @description			Popup Search Box and translate Button (etc) for selected Text
// @include				*
// @require				http://code.jquery.com/jquery-2.1.1.min.js
// @version				2.6.1
// @icon				http://lkytal.qiniudn.com/ic.ico
// @grant				GM_xmlhttpRequest
// @grant				GM_addStyle
// @grant				unsafeWindow
// @grant				GM_openInTab
// @grant				GM_setClipboard
// @grant				GM_getClipboard
// @grant				GM_getValue
// @grant				GM_setValue
// @grant				GM_registerMenuCommand
// @homepageURL			https://greasyfork.org/scripts/340-popup-search
// ==/UserScript==
// Generated by CoffeeScript 1.7.1


if (window != window.top || window.document.title === "")
	return;
var GetOpt, InTextBox, Init, Inter, Load, MouseIn, OpenSet, SetOpt, SettingWin, ShowBar, TimeOutHide, bTrans, baiduico, bingicon, fixPos, getLastRange, get_offsets_and_remove, get_selection_offsets, gicon, ie, ticon, tip, tipdown, tipup, txt;

tipdown = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAXElEQVQYlYXMsQ5AQBREUSoVjQ+f+S0lSi2livJlr4ZEZDcmud3JVJIW2yPQVqXZPmwjaQXqEuJJ0vCLbrgDfRZFxBsH0GTRCybbcxF9HhPQZdEHbkUUEUg6JU0Xm2KvCU6v27kAAAAASUVORK5CYII=";

tipup = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAZElEQVQYlXXMIQ4CMBBE0UWhwHDw+ddCAhILEgWy4WNo0tAyyZidly1AwNba1CSvJOf6h/oduC/RAN7qfkJ9BC7VM6LhQ1O3E+pN8lAPNeYHHGsV4PkFN3WzREmuwEndLUFVfQC3Xa8Jl+92RAAAAABJRU5ErkJggg==";

tip = tipdown;

baiduico = "data:image/png;base64,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";

bingicon = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAACeklEQVRYhe2Wy2sTURTGu1fapOZRTKj2kaag1VaTNA9NjHkWLS3diC5q6wNc+A+EIkVw40ZRFBeuirgQF1JfuFBboYiIzb2TmdimCA0YWyupqalBTRo/F4M3KE0mhrR2kQsfDHPvOfOb794zZ6qErlb8T1VVACoAFYANDcD7dKAWFahFBd7TvL4AvE8HobsNqSmK1FuC6WP71gQiP4C3GeGe3fg9Zk54EHI35ub9evBenSi/fm0AhJ5dDCAy4Abn0ILa1CCGGlCrCsLhnRAO7QAxK0CMMlBb3R+QZQUId7ch0u9EYuwBVhs/s1l8fnIX00dtIEY5eF9LeQG+RWfYdeLZKGaHTiLS70TkuAvR4TP48vIpm19+MwFqURZ1ZooGAIAf8+/B2TWgZgVCzm0IuRtFHagH6awF72vBytek6EgmDWpVSTpRNEA2k0awYxN4T1PeZCFXA6hZwWKWxh+CWtXlAYhdHgK3f6ukpdSqxqfb11kcMckLVknhMuxtZ4lmA4MIOeslATiHFrFLARbH2TUFtyE/gF8PYpKzRIuP7oAYZZIAwY7NWJ6cEM/BSgbEIINQigNCVys4uwZz187nPkan/CCdW1Z9I96rAzHIMBsYZOuj505Lula4F/j1CO6tRnz0Fku6MHIF1KIEMclBrSpQqwrEKANn1yJ+b4Stm795EcRUW3oZ/r0V7872IZOI50ryYwzJV2NIvh5HenGB3f8eiyIy4AK1KCUfXhQAK7GD2xHcU42pI2bM3biApRePkQoHkQpPIvH8Pj5cHUa4tx3EUIOQq6GonP8EIEoP3tPEegK1KEXZ6sA5tCV1y439Q1IBqABUANZDvwDe9YuA3jr3dgAAAABJRU5ErkJggg==";

ticon = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABzUlEQVRYhe2WTWsTURSGr5iQNOkIgvgDJEIXdqUrUTeltFt3gr/And3afZcuzbo/IC5qksnMtCITrYYWlGAJBKW0fpCNLSiBgtXHxQkmMvdOZkhCicyBs5rLOc+d856Xq9i8wFmmSgASgOkE8CxzThzAzUDtHJRVMG0VGyIegJOCl9fg8zra6DyFipoQgJsDNyuNvLweAMC/In9p7ABlBUcvpEm3DdvX9QAnX2Aj+iiiAThpeH3j30aN2/C9qYdo3hedjAXAs+CZgtNusJE3Yx5FRYE3OwYAW0Hrob5JexUOi/pvn4qRBBkO4OUFwBRbF6WJ8fslcGdGAKgo6JT0xfcfQ7W3+3sP9Gd+vJfxbZoFaQZwM+AXzLcr92bsWaL6n8f6c7vL4JyPCeBZ0uDkq77o27tyeyctaSuoXzXD2mZB6gHcLLya1xfrfhBH3F2CnYV+Nm5BfS6Yb27C88sxAf4ajx8EcDPmm+ri96/eSup1EKKBnCh4MA6eQPtRPAC/EGrN4VtQVfBxrV+sFrJyuuiUhnrBEB+YlVEAvLsH37biAdhKvGQkJ3TS0LgDO4vxmrdWBGAkJxz0BCclphI1a9HeBVP6JkwAEoD/CeAP3U729kMHHe8AAAAASUVORK5CYII=";

gicon = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAACcElEQVRYhe2VX0hTcRTHD0SP9SjUQ4hKbv4pm1u6JhFEVCL2ENGD0UME9haUFAQh0kM9xvRubnebRpFSIVELyRXhsheVIT1kWYIz1MwMy9Qo49PDT7cR5lZe7aH94Dzc3733fD/nd875HZGmMv6ppQHSAGmAv/rJb0c8OxB3AeLKU+YuQDxFiK9kFQH8dkQzs655Nxd6GwmP9TEyM8HIzAThsT4uRnQ2tVYi9TmIb6fBALoV0Yt5MhoBoGUwhD1YzcYb+8m6fYRzPS4W19sv45jbqlKDSEnca2Fz66GYgPhK1LHrNsRfqp49RYgzi2uv22OA0rjNAAB/Keub98TF3fm/j0y3srf9NFp/G+LMRgKOFQIEHIgzm3ezkwBUPjqvIl02VTbEsz018aQAug17sDoefapRGdYF7kJuDoYA6H7/AtHMxoonBdDMDEwNA3Av2oW48tcawMTQ9CgAkQ+vEM20xgCufEIj3fEaqM9ZugYCDsRrUSnSTHHTrSsE8Fo48fRyDKA8VKOEfhXXbdRG/AB8/jbDwKdhxmc/cqyzLjnEsi8DuxBXXgxg/sc84sxS+wnfbLi+j4yWCkS3kXnrcELXZCbvmqRH5LVQ3lETc/p4tBe5ukXdgImgfjuiW8m5czQOoOUaANBUhjTkUhvxxRw/n3yDeItVzr0WdfnoNsRdSEZLxSoALEAceHiGxHV/+BlVnXXYg9U4HpziePgSPRP9cUh3gYEAC+mQhq0c7DhLYCDIy6kos9/nmJv/SnR6jLvRMCe7rqjhpJkMmAVLFqZDVXZjoZqIiy3nylN7Xouqh1T9/TGA0ZYGSAP89wA/AZoF9N4ossasAAAAAElFTkSuQmCC";

ie = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAC2ElEQVRYhe2Wy08TURTGSboAlSjKq5SQSlH6cCsLYuIf4FpXLF2oTQpaSqf0YWdciAjRaOKKGGJIQEOIzxgFhZXEKIpPBExQjKJ27i2UdphOp+VzUSEhU8baoiamJ/k2d07u97v33HPn5u05FcS/VF4OIAfwXwBYuCB2n6SochNUMARahkDvobBwfwjAxFLs9FBUupKG207wOHBpAV2PRLyZk/GBxHFxREC5k/wS4rcALByFjiEw+Cj8dyK49SqK4SkJESkBAJgNxuG8HsahrhAujy6hfVBAtZduDICJpdjRTNDzRIRaXBhZwuZGHsUOgraNAjCzFGVOAiokVM1XYi6UQGETD+ZGBDW+LAEsXBBFdh5T3+WUZnJiOeX46EwMx64uwpAtQLWX4mjfosLg3oQELUOw9TiPylaCkWlJkdPQHYIh2xKUthDMBuNrJp74JkNjDWCXj6LWT1Hjo9BYA3gfkBV5ZS0kcwAzR1HZShQr896OoK49iP3n5ldVdyYI9m5EkVvmJLBw6++CKkCtn6K+Yz5ljdON+o55GP0ZAlS1EnQ+ELIC2NeZIYCFoyh28CknbegOId/GY3szWaMCGw+NNbCqfBuvaq4KYPBSHOlNnn4htrbV3n6VUWDjYf5ZWwtHUe4kaOwPo29MxJXHInqfijg7lMVFpHMRDL6TwEcSONgVUuzCwHgURXYeJQ6CLU08mgfCihz7QDjzNixtIRCkZZwfFqCxBvCRxhUGADBDUo9PB2QU2XnVDlAFKHEk2+9wzyL0HgqdiyhKsV4siAloGQIzq26uClDBELz+IuPmyygKm3joGIJNjTzCkvr/4NpzEcUOAlMa5qoAJjZ5wz37FMOLzzH0j0fROyZib1sQRpaifUjAw0kJY7MxDE1KOH1fgJGlqGDI6uHMCmAFQuci0LkIqtwEejeF0U9hZCn07uTbQMskv+s9NO1Vpw3wN5QDyAHkAH4APkBEEJ/n2M4AAAAASUVORK5CYII=";

txt = "";

InTextBox = function(selection) {
  $('textarea, input[type=text], *[contenteditable="true"]', document).each(function(i) {
    if (selection.containsNode(this, true)) {
      return true;
    }
  });
  return false;
};

getLastRange = function(selection) {
  var lastRange, r, _i, _ref;
  lastRange = selection.getRangeAt(selection.rangeCount - 1);
  for (r = _i = _ref = selection.rangeCount - 1; _ref <= 0 ? _i <= 0 : _i >= 0; r = _ref <= 0 ? ++_i : --_i) {
    if (!selection.getRangeAt(r).collapsed) {
      lastRange = selection.getRangeAt(r);
      break;
    }
  }
  return lastRange;
};

get_offsets_and_remove = function($test_span) {
  var curr_elem, span_ht, total_offsetLeft, total_offsetTop;
  curr_elem = $test_span[0];
  total_offsetTop = 0;
  total_offsetLeft = 0;
  while (curr_elem !== null) {
    total_offsetTop += curr_elem.offsetTop;
    total_offsetLeft += curr_elem.offsetLeft;
    curr_elem = curr_elem.offsetParent;
  }
  span_ht = $test_span.height();
  $test_span.remove();
  return [total_offsetTop, total_offsetLeft, span_ht];
};

get_selection_offsets = function(selection) {
  var $test_span, lastRange, newRange;
  $test_span = $('<span class="smarterwiki-popup-bubble-test-span" style="display:inline;">x</span>');
  lastRange = getLastRange(selection);
  newRange = document.createRange();
  newRange.setStart(lastRange.endContainer, lastRange.endOffset);
  newRange.insertNode($test_span[0]);
  return get_offsets_and_remove($test_span);
};

fixPos = function(sel, e) {
  var fix, m_left, offsetLeft, offsetTop, offsets;
  offsets = get_selection_offsets(sel);
  offsetTop = offsets[0];
  offsetLeft = offsets[1];
  if (e != null) {
    if (offsetLeft < e.pageX - 100) {
      offsetLeft = e.pageX;
    }
    if (offsetTop < e.pageY - 100) {
      offsetLeft = e.pageY - 8;
    }
  } else {
    $('#showupbody').css('margin-left', '70px');
  }
  if (GetOpt('#Dis_st')) {
    offsetTop = offsetTop - 2 - $('#ShowUpBox').height();
    if ((offsetTop - document.documentElement.scrollTop) < 40) {
      offsetTop = document.documentElement.scrollTop + 40;
    }
  } else {
    offsetTop += 1.1 * offsets[2];
  }
  m_left = $('#ShowUpBox').width();
  fix = 0;
  if (offsetLeft - m_left < 4) {
    fix = 4 - offsetLeft + m_left;
  }
  $('#ShowUpBox').css("top", offsetTop + "px").css("left", (offsetLeft - m_left + fix) + "px");
  return $('#popuptip').css('margin-left', m_left - 20 - fix);
};

MouseIn = 0;

bTrans = 0;

$(document).mousedown(function(event) {
  if (bTrans === 1) {
    $('#ShowUpBox').remove();
    Init();
  }
  return $('#ShowUpBox').hide();
});

Inter = void 0;

TimeOutHide = function() {
  if (MouseIn === 0 && GetOpt("#Fade_st") && !bTrans) {
    return $('#ShowUpBox').fadeOut(600);
  }
};

Init = function() {
  var $DivBox;
  $DivBox = $('<span id="ShowUpBox"><span id="showupbody"><span id="popupwapper"></span><span id=Gspan></span></span></span>');
  $('body').append($DivBox);
  $DivBox.hide();
  $DivBox[0].style.cssText = "width:auto;height:auto;position:absolute;z-index:10240;display:inline;line-height:0;vertical-align:baseline;";
  $('#showupbody')[0].style.cssText = "all: unset;display: block;border:solid 2px rgb(144,144,144);border-radius:1px; background:-moz-linear-gradient(top, rgb(252, 252, 252) 0%, rgb(245, 245, 245) 33%, rgb(245, 245, 245) 100%);background:-webkit-linear-gradient(top, rgb(252, 252, 252), rgb(245, 245, 245));max-width: 750px !important;min-height: 20px;max-height: 350px;min-width: 20px;overflow:auto;";
  $('#showupbody')[0].style.cssText = "all: unset;display: block;border:solid 2px rgb(144,144,144);border-radius:1px; background:-moz-linear-gradient(top, rgb(252, 252, 252) 0%, rgb(245, 245, 245) 33%, rgb(245, 245, 245) 100%);background:-webkit-linear-gradient(top, rgb(252, 252, 252), rgb(245, 245, 245));max-width: 750px !important;min-height: 20px;max-height: 350px;min-width: 20px;overflow:auto;";
  if (!GetOpt("#Round_st")) {
    $('#showupbody').css({
      "border-radius": "4px"
    });
  }
  $DivBox.on("mouseup", function(event) {
    event.stopPropagation();
    if (event.which === 3) {
      event.preventDefault();
      GM_setClipboard(document.defaultView.getSelection().toString());
      $('#ShowUpBox').remove();
      Init();
      return false;
    } else if (event.which === 2) {
      event.preventDefault();
      return GM_openInTab(document.defaultView.getSelection().toString());
    }
  });
  $DivBox.on("contextmenu", function(event) {
    event.stopPropagation();
    event.preventDefault();
    return false;
  });
  document.getElementById("ShowUpBox").oncontextmenu = function(event) {
    event.stopPropagation();
    event.preventDefault();
    return false;
  };
  $DivBox.on("mousedown", function(event) {
    return event.stopPropagation();
  });
  $DivBox.on("dblclick", function(event) {
    return event.stopPropagation();
  });
  $DivBox.on("click", function(event) {
    return event.stopPropagation();
  });
  $DivBox.hover(function() {
    $(this).fadeTo(150, 1);
    return MouseIn = 1;
  }, function() {
    if (!bTrans) {
      $(this).fadeTo(300, 0.7);
      clearTimeout(Inter);
      Inter = setTimeout(TimeOutHide, 5500);
    }
    return MouseIn = 0;
  });
  $('#popupwapper').css({
    "margin": "3px 2px 3.8px 2px",
    "display": "block",
    "line-height": "0"
  });
  $('#popupwapper').append("<a id=gtransicon href=\"javascript:void(0)\"><img id=gtrans src=\"" + ticon + "\"></img></a>").append("<a id=openurl href=\"\" target=\"_blank\"><img id=iconie src=\"" + ie + "\"></img></a>").append("<a id=sbaidu href=\"\" target=\"_blank\"><img src=\"" + baiduico + "\"></img></a>").append("<a id=sbing href=\"\" target=\"_blank\"><img src=\"" + bingicon + "\"></img></a>").append("<a id=sgoogle href=\"\" target=\"_blank\"><img id=gicon src=\"" + gicon + "\"></img></a>");
  $('#sgoogle, #sbing, #sbaidu, #openurl').on("click", function(event) {
    return $('#ShowUpBox').hide();
  });
  $('#gtrans').on("click", function(event) {
    var postData;
    event.preventDefault();
    postData = "client=t&text=" + txt + "&langpair=auto|auto";
    return GM_xmlhttpRequest({
      method: 'POST',
      url: 'http://translate.google.cn/translate_a/t',
      data: postData,
      headers: {
        'Content-Type': 'application/x-www-form-urlencoded'
      },
      onload: function(responseDetails) {
        var Rst, Rtxt, currentURL, i, j, line, _i, _j, _k, _l, _len, _len1, _len2, _len3, _len4, _m, _ref, _ref1, _ref2, _ref3, _ref4;
        Rtxt = eval("(" + responseDetails.responseText + ")");
        currentURL = "http://translate.google.cn/translate_t?text=" + txt + "&langpair=auto|auto";
        Rst = '<a style="text-decoration:none;font-size:16px;" href="' + currentURL + '" target="_blank">';
        _ref = Rtxt[0];
        for (_i = 0, _len = _ref.length; _i < _len; _i++) {
          line = _ref[_i];
          Rst += line[0] + '<br>';
        }
        Rst += '</a><br /><ul style="font-size:13px;list-style-position:inside;">';
        if (typeof Rtxt[1] !== 'undefined' && Rtxt[1][0][2].length > 0) {
          _ref1 = Rtxt[1];
          for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {
            i = _ref1[_j];
            Rst = Rst + '<li>' + i[0] + ': ';
            _ref2 = i[2];
            for (_k = 0, _len2 = _ref2.length; _k < _len2; _k++) {
              j = _ref2[_k];
              if (j[3] > 0.005) {
                Rst += j[0] + ', ';
              }
            }
            Rst += '</li>';
          }
        }
        Rst += '</ul>';
        if (txt.length < 100 && typeof Rtxt[5] !== 'undefined') {
          _ref3 = Rtxt[5];
          for (_l = 0, _len3 = _ref3.length; _l < _len3; _l++) {
            i = _ref3[_l];
            if (!(typeof i[2] !== 'undefined')) {
              continue;
            }
            Rst += "<br/><strong>" + i[0] + " : </strong>";
            _ref4 = i[2];
            for (_m = 0, _len4 = _ref4.length; _m < _len4; _m++) {
              j = _ref4[_m];
              Rst += j[0] + ', ';
            }
          }
        }
        $('#Gspan').append('<div style="padding:5px;font-size:13px;overflow:auto;>' + Rst + '</div>').show();
        $('#popupwapper').hide();
        fixPos(document.defaultView.getSelection());
        return bTrans = 1;
      }
    });
  });
  if (!GetOpt('#Open_st')) {
    $('#openurl').hide();
  }
  if (!GetOpt('#Baidu_st')) {
    $('#sbaidu').hide();
  }
  if (!GetOpt('#Bing_st')) {
    $('#sbing').hide();
  }
  if (!GetOpt('#Google_st')) {
    $('#sgoogle').hide();
  }
  if (GetOpt('#Tab_st')) {
    $DivBox.find('a').attr('target', '_blank');
  } else {
    $DivBox.find('a').attr('target', '_self');
  }
  if (GetOpt('#Dis_st')) {
    tip = tipup;
    $DivBox.append($('<span id=popuptip></span>'));
    $('#popuptip').css({
      'margin-top': '-2px',
      'margin-bottom': '0px'
    });
  } else {
    tip = tipdown;
    $DivBox.prepend($('<span id=popuptip></span>'));
    $('#popuptip').css({
      'margin-top': '0px',
      'margin-bottom': '-2px'
    });
  }
  $('#popuptip').css({
    'background': 'url(' + tip + ') 0px 0px no-repeat transparent',
    'display': 'inline-block',
    'clear': 'both',
    'height': '9px',
    'width': '9px'
  });
  $('#Gspan').empty().css({
    "line-height": "normal",
    "width": "auto",
    "font-size": "16px",
    "padding": "25px!important",
    "overflow": "auto"
  }).hide();
  $('#ShowUpBox img').css({
    "margin": "0px 2px 0px 2px",
    "height": "20px",
    "width": "20px",
    "border-radius": "1px",
    "padding": "0px",
    "display": "inline-block",
    "-moz-transition-duration": "0.1s"
  });
  $('#ShowUpBox img').hover(function() {
    return $(this).css({
      "margin": "-1px 1px -1px 1px",
      "height": "22px",
      "width": "22px"
    });
  }, function() {
    return $(this).css({
      "margin": "0px 2px 0px 2px",
      "height": "20px",
      "width": "20px"
    });
  });
  return $DivBox.hide();
};

document.onmouseup = function(event) {
  if (event.which !== 1) {
    return;
  }
  if ($('#Ctrl_st').data('val') && !event.ctrlKey) {
    return;
  }
  window.lxe = event;
  return setTimeout(function() {
    return ShowBar(window.lxe);
  }, 50);
};

ShowBar = function(event) {
  var UrlText, sel, seltxt;
  sel = document.defaultView.getSelection();
  seltxt = sel.toString();
  if (seltxt === '' || InTextBox(sel)) {
    $('#ShowUpBox').hide();
    return;
  }
  if (GetOpt("#Copy_st")) {
    GM_setClipboard(seltxt);
  }
  txt = encodeURIComponent(seltxt);
  $('#Gspan').empty().hide();
  fixPos(sel, event);
  $('#sbaidu').attr('href', "http://www.baidu.com/s?wd=" + txt);
  $('#sbing').attr('href', "http://bing.com/search?q=" + txt + "&form=MOZSBR");
  $('#sgoogle').attr('href', "https://www.google.com.hk/search?newwindow=1&q=" + txt);
  UrlText = seltxt;
  if (UrlText.indexOf('http') === -1) {
    UrlText = 'http://' + UrlText;
  }
  MouseIn = 0;
  bTrans = 0;
  clearTimeout(Inter);
  Inter = setTimeout(TimeOutHide, 4000);
  $('#openurl').attr('href', UrlText);
  return $('#ShowUpBox').css('opacity', 0.9).fadeIn(150);
};

OpenSet = function() {
  return $('#popup_setting').show().css('top', '110px');
};

GetOpt = function(id) {
  return $(id).data('val');
};

SetOpt = function(id) {
  var dom, val;
  dom = $("#" + id);
  val = GM_getValue(id);
  if (!val) {
    dom.addClass('close');
  }
  dom.data('val', val);
  return dom.click(function() {
    $(this).toggleClass('close');
    if ($(this).data('val')) {
      return $(this).data('val', 0);
    } else {
      return $(this).data('val', 1);
    }
  });
};

SettingWin = function() {
  var SaveOpt, item, _i, _len, _ref;
  GM_addStyle('#popup_setting {all: unset;display:none; transition:0.6s ease top; top:-200%; text-align: justify;position:fixed;left:-moz-calc(50% - 310px);left:-webkit-calc(50% - 310px);width:600px;background:#FFF;box-shadow:0 0 5px #222;padding:20px 10px 50px 20px;z-index:102400;} #rol1,#rol2,#rol3,#rol4,#rol5{text-align: justify;} #popup_save{display:inline-block;position:absolute;right:15px;bottom:10px;} .setting_btn_inside{font-size:16px;padding:4px;-moz-user-select:none;cursor:default;}.setting_btn_inside:hover{background:#DDD;}.setting_btn_inside:active{box-shadow:0 0 3px #999 inset;}');
  GM_addStyle('.setting_sp_btn{min-width:120px;height:18px;font-size:12px;padding:4px;-moz-user-select:none;cursor:default;position:relative;margin:5px;margin-right:60px;display:inline-block;} .setting_sp_btn.close{background:#DDD;border:none;} .setting_sp_btn::before{position:absolute;right:-26px;top:0;content:" ";width:26px;height:26px;background:#6B4;transition:0.3s;} .setting_sp_btn.close::before{background:#C54;} .setting_sp_btn:hover{background:#DDD;} .setting_sp_btn:active{box-shadow:0 0 3px #999 inset;}');
  $("body").append('<div id="popup_setting"> <div style="font-size:16px;">PopUp设置:请选择需要显示的项目<br><br> </div> <div id="rol1"> </div> <div id="rol2"> </div> <div id="rol3"> </div> <div id="rol4"> </div> <div id = "btnarea"> <div style="font-size:12px;bottom:13px;position:absolute;left:20px;color:red;">请在Greasemonkey的"用户脚本命令"菜单的"Popup Search设置"下打开此选项</div> <div id="popup_save" class="setting_btn_inside" style="display:inline-block;">Save</div> <div id="popup_close" class="setting_btn_inside" style="display:inline-block;position:absolute;right:85px;bottom:10px;">Close</div> </div></div>');
  $("#rol1").append('<div id="Google_st">Google搜索</div> <div id="Bing_st">Bing搜索</div> <div id="Baidu_st">Baidu搜索</div>');
  $("#rol2").append('<div id="Open_st">选中视作链接打开按钮</div> <div id="Fade_st">超时自动隐藏</div> <div id="Dis_st">显示于文字上方</div>');
  $("#rol3").append('<div id="Tab_st"">新标签页打开</div> <div id="Copy_st">选中自动复制</div>  <div id="Ctrl_st">仅按下Ctrl时显示</div>');
  $("#rol4").append('<div id="Round_st"">弹出框直角风格</div>');
  $("#rol1 > div, #rol2 > div, #rol3 > div, #rol4 > div").addClass("setting_sp_btn");
  $("#popup_close").click(function() {
    $("#popup_setting").fadeOut(400, function() {
      $("#popup_setting").remove();
      return SettingWin();
    });
  });
  SaveOpt = function(id) {
    var dom;
    dom = $("#" + id);
    return GM_setValue(id, dom.data('val'));
  };
  _ref = $("#popup_setting .setting_sp_btn");
  for (_i = 0, _len = _ref.length; _i < _len; _i++) {
    item = _ref[_i];
    if (item != null) {
      SetOpt(item.id);
    }
  }
  return $("#popup_save").click(function() {
    var _j, _len1, _ref1;
    _ref1 = $("#popup_setting .setting_sp_btn");
    for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {
      item = _ref1[_j];
      if (item != null) {
        SaveOpt(item.id);
      }
    }
    $("#popup_setting").fadeOut(400, function() {
      $("#popup_setting").remove();
      return SettingWin();
    });
    $('#ShowUpBox').remove();
    return Init();
  });
};

Load = function() {
  var UpdateAlert, popupmenu;
  UpdateAlert = GM_getValue("UpdateAlert", 0);
  if (UpdateAlert < 4) {
    GM_setValue("UpdateAlert", 4);
    GM_setValue("Open_st", GM_getValue("Open_st", 1));
    GM_setValue("Baidu_st", GM_getValue("Baidu_st", 1));
    GM_setValue("Bing_st", GM_getValue("Bing_st", 1));
    GM_setValue("Google_st", GM_getValue("Google_st", 1));
    GM_setValue("Fade_st", GM_getValue("Fade_st", 1));
    GM_setValue("Ctrl_st", GM_getValue("Ctrl_st", 0));
    GM_setValue("Dis_st", GM_getValue("Dis_st", 1));
    GM_setValue("Tab_st", GM_getValue("Tab_st", 1));
    GM_setValue("Copy_st", GM_getValue("Copy_st", 0));
    GM_setValue("Round_st", GM_getValue("Round_st", 1));
    SettingWin();
    OpenSet();
  } else {
    SettingWin();
  }
  Init();
  GM_registerMenuCommand("Popup Search设置", OpenSet, 'p');
  if (GM_getValue("PopupMenu", 0)) {
    popupmenu = document.body.appendChild(document.createElement("menu"));
    popupmenu.outerHTML = '<menu id="userscript-popup" type="context"><menuitem id="Popupset" label="Popup Search设置"></menuitem></menu>';
    document.querySelector("#Popupset").addEventListener("click", OpenSet, false);
    return document.body.addEventListener("contextmenu", (function() {
      return document.body.setAttribute("contextmenu", "userscript-popup");
    }), false);
  }
};

setTimeout(Load, 100);