View difference between Paste ID: c4yMcgzU and ukwXwnPW
SHOW: | | - or go back to the newest paste.
1
javascript: (function() {
2
 function RGBtoHSL(RGBColor) {
3
  with(Math) {
4
   var R, G, B;
5
   var cMax, cMin;
6
   var sum, diff;
7
   var Rdelta, Gdelta, Bdelta;
8
   var H, L, S;
9
   R = RGBColor[0];
10
   G = RGBColor[1];
11
   B = RGBColor[2];
12
   cMax = max(max(R, G), B);
13
   cMin = min(min(R, G), B);
14
   sum = cMax + cMin;
15
   diff = cMax - cMin;
16
   L = sum / 2;
17
   if (cMax == cMin) {
18
    S = 0;
19
    H = 0;
20
   } else {
21
    if (L <= (1 / 2)) S = diff / sum;
22
    else S = diff / (2 - sum);
23
    Rdelta = R / 6 / diff;
24
    Gdelta = G / 6 / diff;
25
    Bdelta = B / 6 / diff;
26
    if (R == cMax) H = Gdelta - Bdelta;
27
    else if (G == cMax) H = (1 / 3) + Bdelta - Rdelta;
28
    else H = (2 / 3) + Rdelta - Gdelta;
29
    if (H < 0) H += 1;
30
    if (H > 1) H -= 1;
31
   }
32
   return [H, S, L];
33
  }
34
 }
35
36
 function getRGBColor(node, prop) {
37
  var rgb = getComputedStyle(node, null).getPropertyValue(prop);
38
  var r, g, b;
39
  if (/rgb\((\d+),\s(\d+),\s(\d+)\)/.exec(rgb)) {
40
   r = parseInt(RegExp.$1, 10);
41
   g = parseInt(RegExp.$2, 10);
42
   b = parseInt(RegExp.$3, 10);
43
   return [r / 255, g / 255, b / 255];
44
  }
45
  return rgb;
46
 }
47
48
 function hslToCSS(hsl) {
49
  return "hsl(" + Math.round(hsl[0] * 360) + ", " + Math.round(hsl[1] * 100) + "%, " + Math.round(hsl[2] * 100) + "%)";
50
 }
51
 var props = ["color", "background-color", "border-left-color", "border-right-color", "border-top-color", "border-bottom-color"];
52
 var props2 = ["color", "backgroundColor", "borderLeftColor", "borderRightColor", "borderTopColor", "borderBottomColor"];
53
 if (typeof getRGBColor(document.documentElement, "background-color") == "string") document.documentElement.style.backgroundColor = "white";
54
 revl(document.documentElement);
55
56
 function revl(n) {
57
  var i, x, color, hsl;
58
  if (n.nodeType == Node.ELEMENT_NODE) {
59
   for (i = 0; x = n.childNodes[i]; ++i) revl(x);
60
   for (i = 0; x = props[i]; ++i) {
61
    color = getRGBColor(n, x);
62
    if (typeof(color) != "string") {
63
     hsl = RGBtoHSL(color);
64
     hsl[2] = 1 - hsl[2];
65
     n.style[props2[i]] = hslToCSS(hsl);
66
    }
67
   }
68
  }
69
 }
70
})()