1(function ($) { 2 $.fn.jSnow = function (h) { 3 var j = $.extend({}, $.fn.jSnow.defaults, h); 4 var k, WIN_HEIGHT; 5 var l = j.flakes; 6 var m = j.flakeCode; 7 var n = j.flakeColor; 8 var o = j.flakeMinSize; 9 var p = j.flakeMaxSize; 10 var q = j.fallingSpeedMin; 11 var r = j.fallingSpeedMax; 12 var s = j.interval; 13 var t = j.zIndex; 14 var vs = j.vSize; 15 var fa = j.fadeAway; 16 var fs = j.followScroll; 17 setWaH(); 18 var useGif = false; 19 //if ($.browser.msie && (parseFloat($.browser.version) < 8))useGif = true; 20 if ($('body').is('.lt-ie8 *')) { 21 useGif = true; 22 } 23 //if ($.browser.msie && (parseFloat($.browser.version) < 8) && t == "auto")t = 0; 24 if ($('body').is('.lt-ie8 *') && t == "auto")t = 0; 25 26 var u = $("<div \/>"); 27 u.css({ 28 width: k + "px", 29 height: 1, 30 display: "block", 31 overflow: "visible", 32 position: "absolute", 33 left: "1px", 34 zIndex: t 35 }); 36 if (fs) { 37 u.css('top', $("html").scrollTop() + 1 + "px"); 38 } else { 39 u.css = '1px'; 40 } 41 $("body").prepend(u).css({height: "100%"}); 42 $("html").css({"overflow-y": "scroll", "overflow-x": "hidden"}); 43 var v = Array(); 44 generateFlake(l, false); 45 setInterval(animateFlakes, s); 46 window.onresize = setWaH; 47 function setWaH() { 48 k = $('body').width(); 49 var def_h = window.innerHeight || document.documentElement.clientHeight; 50 def_h -= 50; 51 if (!vs || vs > def_h ) { 52 WIN_HEIGHT = window.innerHeight || document.documentElement.clientHeight 53 WIN_HEIGHT -= 50; 54 } else WIN_HEIGHT = vs; 55 }; 56 if (fs) { 57 window.onscroll = function () { 58 u.css({top: $("html").scrollTop() + "px"}) 59 }; 60 } 61 function generateFlake(a, b) { 62 a = a || 1; 63 b = b || false; 64 var i = 0; 65 for (i = 0; i < a; i++) { 66 var c = $("<span \/>"); 67 var d = o + Math.floor(Math.random() * p); 68 var e = m[Math.floor(Math.random() * m.length)]; 69 if (e.indexOf(".gif") != -1 || e.indexOf(".png") != -1) { 70 var f = new Image(); 71 if (useGif)e = e.replace("png", "gif"); 72 f.src = e; 73 e = "<img src='" + e + "' alt='jSnowFlake'>" 74 } 75 c.html(e).css({ 76 color: n[Math.floor(Math.random() * n.length)], 77 fontSize: d + "px", 78 display: "block", 79 position: "absolute", 80 cursor: "default", 81 "pointer-events": "none", 82 "z-index": t 83 }); 84 $(u).append(c); 85 f_left = Math.floor(Math.random() * (k - c.width() - 50)) + 25; 86 f_top = (b) ? -1 * c.height() : Math.floor(Math.random() * (WIN_HEIGHT - 50)); 87 var g = Math.floor(Math.random() * 90); 88 jQuery.data(c, "posData", { 89 top: f_top, 90 left: f_left, 91 rad: Math.random() * 50, 92 i: Math.ceil(q + Math.random() * (r - q)), 93 swingRange: g 94 }); 95 c.css({top: f_top + "px", left: f_left + "px"}); 96 v.push(c) 97 } 98 }; 99 function animateFlakes() { 100 var i = 0; 101 for (i = v.length - 1; i >= 0; i--) { 102 var f = v[i]; 103 var a = jQuery.data(f, "posData"); 104 a.top += a.i; 105 var b = Number(); 106 b = Math.cos((a.rad / 180) * Math.PI); 107 a.rad += 2; 108 var X = a.left - b * a.swingRange; 109 if (fa) { 110 op = (WIN_HEIGHT - a.top < 100) ? ((WIN_HEIGHT - a.top) / 100) : 1;
111 f.css('opacity', op); 112 } 113 f.css({top: a.top + "px", left: X + "px"}); 114 if (a.top > WIN_HEIGHT) { 115 jQuery.removeData(f); 116 f.remove(); 117 v.splice(i, 1); 118 generateFlake(1, true) 119 } 120 } 121 }; 122 return this 123 }; 124 $.fn.jSnow.defaults = { 125 flakes: 30, 126 fallingSpeedMin: 1, 127 fallingSpeedMax: 3, 128 flakeMaxSize: 20, 129 flakeMinSize: 10, 130 flakeCode: ["•"], 131 flakeColor: ["#fff"], 132 zIndex: "auto", 133 interval: 50, 134 fadeAway: true, 135 } 136})(jQuery);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.