1/*! 2 * jQuery Tools v1.2.7 - The missing UI library for the Web 3 * 4 * toolbox/toolbox.expose.js 5 * toolbox/toolbox.flashembed.js 6 * toolbox/toolbox.history.js 7 * toolbox/toolbox.mousewheel.js 8 * tooltip/tooltip.js 9 * tooltip/tooltip.dynamic.js 10 * tooltip/tooltip.slide.js 11 * 12 * NO COPYRIGHTS OR LICENSES. DO WHAT YOU LIKE. 13 * 14 * http://flowplayer.org/tools/ 15 * 16 * jquery.event.wheel.js - rev 1 17 * Copyright (c) 2008, Three Dub Media (http://threedubmedia.com) 18 * Liscensed under the MIT License (MIT-LICENSE.txt) 19 * http://www.opensource.org/licenses/mit-license.php 20 * Created: 2008-07-01 | Updated: 2008-07-14 21 * 22 * ----- 23 * 24 */ 25(function (a) { 26 a.tools = a.tools || {version: "v1.2.7"}; 27 var b; 28 b = a.tools.expose = {conf: {maskId: "exposeMask", loadSpeed: "slow", closeSpeed: "fast", closeOnClick: !0, closeOnEsc: !0, zIndex: 9998, opacity: .8, startOpacity: 0, color: "#fff", onLoad: null, onClose: null}}; 29 function c() { 30 if (a.browser.msie) { 31 var b = a(document).height(), c = a(window).height(); 32 return[window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth, b - c < 20 ? c : b] 33 } 34 return[a(document).width(), a(document).height()] 35 } 36 37 function d(b) { 38 if (b)return b.call(a.mask) 39 } 40 41 var e, f, g, h, i; 42 a.mask = {load: function (j, k) { 43 if (g)return this; 44 typeof j == "string" && (j = {color: j}), j = j || h, h = j = a.extend(a.extend({}, b.conf), j), e = a("#" + j.maskId), e.length || (e = a("<div/>").attr("id", j.maskId), a("body").append(e)); 45 var l = c(); 46 e.css({position: "absolute", top: 0, left: 0, width: l[0], height: l[1], display: "none", opacity: j.startOpacity, zIndex: j.zIndex}), j.color && e.css("backgroundColor", j.color); 47 if (d(j.onBeforeLoad) === !1)return this; 48 j.closeOnEsc && a(document).on("keydown.mask", function (b) { 49 b.keyCode == 27 && a.mask.close(b) 50 }), j.closeOnClick && e.on("click.mask", function (b) { 51 a.mask.close(b) 52 }), a(window).on("resize.mask", function () { 53 a.mask.fit() 54 }), k && k.length && (i = k.eq(0).css("zIndex"), a.each(k, function () { 55 var b = a(this); 56 /relative|absolute|fixed/i.test(b.css("position")) || b.css("position", "relative") 57 }), f = k.css({zIndex: Math.max(j.zIndex + 1, i == "auto" ? 0 : i)})), e.css({display: "block"}).fadeTo(j.loadSpeed, j.opacity, function () { 58 a.mask.fit(), d(j.onLoad), g = "full" 59 }), g = !0; 60 return this 61 }, close: function () { 62 if (g) { 63 if (d(h.onBeforeClose) === !1)return this; 64 e.fadeOut(h.closeSpeed, function () { 65 d(h.onClose), f && f.css({zIndex: i}), g = !1 66 }), a(document).off("keydown.mask"), e.off("click.mask"), a(window).off("resize.mask") 67 } 68 return this 69 }, fit: function () { 70 if (g) { 71 var a = c(); 72 e.css({width: a[0], height: a[1]}) 73 } 74 }, getMask: function () { 75 return e 76 }, isLoaded: function (a) { 77 return a ? g == "full" : g 78 }, getConf: function () { 79 return h 80 }, getExposed: function () { 81 return f 82 }}, a.fn.mask = function (b) { 83 a.mask.load(b); 84 return this 85 }, a.fn.expose = function (b) { 86 a.mask.load(b, this); 87 return this 88 } 89})(jQuery); 90(function () { 91 var a = document.all, b = "http://www.adobe.com/go/getflashplayer", c = typeof jQuery == "function", d = /(\d+)[^\d]+(\d+)[^\d]*(\d*)/, e = {width: "100%", height: "100%", id: "_" + ("" + Math.random()).slice(9), allowfullscreen: !0, allowscriptaccess: "always", quality: "high", version: [3, 0], onFail: null, expressInstall: null, w3c: !1, cachebusting: !1}; 92 window.attachEvent && window.attachEvent("onbeforeunload", function () { 93 __flash_unloadHandler = function () { 94 }, __flash_savedUnloadHandler = function () { 95 } 96 }); 97 function f(a, b) { 98 if (b)for (var c in b)b.hasOwnProperty(c) && (a[c] = b[c]); 99 return a 100 } 101 102 function g(a, b) { 103 var c = []; 104 for (var d in a)a.hasOwnProperty(d) && (c[d] = b(a[d])); 105 return c 106 } 107 108 window.flashembed = function (a, b, c) { 109 typeof a == "string" && (a = document.getElementById(a.replace("#", ""))); 110 if (a) { 111 typeof b == "string" && (b = {src: b}); 112 return new j(a, f(f({}, e), b), c) 113 } 114 }; 115 var h = f(window.flashembed, {conf: e, getVersion: function () { 116 var a, b; 117 try { 118 b = navigator.plugins["Shockwave Flash"].description.slice(16) 119 } catch (c) { 120 try { 121 a = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7"), b = a && a.GetVariable("$version") 122 } catch (e) { 123 try { 124 a = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6"), b = a && a.GetVariable("$version") 125 } catch (f) { 126 } 127 } 128 } 129 b = d.exec(b); 130 return b ? [b[1], b[3]] : [0, 0] 131 }, asString: function (a) { 132 if (a === null || a === undefined)return null; 133 var b = typeof a; 134 b == "object" && a.push && (b = "array"); 135 switch (b) { 136 case"string": 137 a = a.replace(new RegExp("([\"\\\\])", "g"), "\\$1"), a = a.replace(/^\s?(\d+\.?\d*)%/, "$1pct"); 138 return"\"" + a + "\""; 139 case"array": 140 return"[" + g(a,function (a) { 141 return h.asString(a) 142 }).join(",") + "]"; 143 case"function": 144 return"\"function()\""; 145 case"object": 146 var c = []; 147 for (var d in a)a.hasOwnProperty(d) && c.push("\"" + d + "\":" + h.asString(a[d])); 148 return"{" + c.join(",") + "}" 149 } 150 return String(a).replace(/\s/g, " ").replace(/\'/g, "\"") 151 }, getHTML: function (b, c) { 152 b = f({}, b); 153 var d = "<object width=\"" + b.width + "\" height=\"" + b.height + "\" id=\"" + b.id + "\" name=\"" + b.id + "\""; 154 b.cachebusting && (b.src += (b.src.indexOf("?") != -1 ? "&" : "?") + Math.random()), b.w3c || !a ? d += " data=\"" + b.src + "\" type=\"application/x-shockwave-flash\"" : d += " classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\"", d += ">"; 155 if (b.w3c || a)d += "<param name=\"movie\" value=\"" + b.src + "\" />"; 156 b.width = b.height = b.id = b.w3c = b.src = null, b.onFail = b.version = b.expressInstall = null; 157 for (var e in b)b[e] && (d += "<param name=\"" + e + "\" value=\"" + b[e] + "\" />"); 158 var g = ""; 159 if (c) { 160 for (var i in c)if (c[i]) { 161 var j = c[i]; 162 g += i + "=" + encodeURIComponent(/function|object/.test(typeof j) ? h.asString(j) : j
162) + "&" 163 } 164 g = g.slice(0, -1), d += "<param name=\"flashvars\" value='" + g + "' />" 165 } 166 d += "</object>"; 167 return d 168 }, isSupported: function (a) { 169 return i[0] > a[0] || i[0] == a[0] && i[1] >= a[1] 170 }}), i = h.getVersion(); 171 172 function j(c, d, e) { 173 if (h.isSupported(d.version))c.innerHTML = h.getHTML(d, e); else if (d.expressInstall && h.isSupported([6, 65]))c.innerHTML = h.getHTML(f(d, {src: d.expressInstall}), {MMredirectURL: location.href, MMplayerType: "PlugIn", MMdoctitle: document.title}); else { 174 c.innerHTML.replace(/\s/g, "") || (c.innerHTML = "<h2>Flash version " + d.version + " or greater is required</h2><h3>" + (i[0] > 0 ? "Your version is " + i : "You have no flash plugin installed") + "</h3>" + (c.tagName == "A" ? "<p>Click here to download latest version</p>" : "<p>Download latest version from <a href='" + b + "'>here</a></p>"), c.tagName == "A" && (c.onclick = function () { 175 location.href = b 176 })); 177 if (d.onFail) { 178 var g = d.onFail.call(this); 179 typeof g == "string" && (c.innerHTML = g) 180 } 181 } 182 a && (window[d.id] = document.getElementById(d.id)), f(this, {getRoot: function () { 183 return c 184 }, getOptions: function () { 185 return d 186 }, getConf: function () { 187 return e 188 }, getApi: function () { 189 return c.firstChild 190 }}) 191 } 192 193 c && (jQuery.tools = jQuery.tools || {version: "v1.2.7"}, jQuery.tools.flashembed = {conf: e}, jQuery.fn.flashembed = function (a, b) { 194 return this.each(function () { 195 jQuery(this).data("flashembed", flashembed(this, a, b)) 196 }) 197 }) 198})(); 199(function (a) { 200 var b, c, d, e; 201 a.tools = a.tools || {version: "v1.2.7"}, a.tools.history = {init: function (g) { 202 e || (a.browser.msie && a.browser.version < "8" ? c || (c = a("<iframe/>").attr("src", "javascript:false;").hide().get(0), a("body").append(c), setInterval(function () { 203 var d = c.contentWindow.document, e = d.location.hash; 204 b !== e && a(window).trigger("hash", e) 205 }, 100), f(location.hash || "#")) : setInterval(function () { 206 var c = location.hash; 207 c !== b && a(window).trigger("hash", c) 208 }, 100), d = d ? d.add(g) : g, g.click(function (b) { 209 var d = a(this).attr("href"); 210 c && f(d); 211 if (d.slice(0, 1) != "#") { 212 location.href = "#" + d; 213 return b.preventDefault() 214 } 215 }), e = !0) 216 }}; 217 function f(a) { 218 if (a) { 219 var b = c.contentWindow.document; 220 b.open().close(), b.location.hash = a 221 } 222 } 223 224 a(window).on("hash", function (c, e) { 225 e ? d.filter(function () { 226 var b = a(this).attr("href"); 227 return b == e || b == e.replace("#", "") 228 }).trigger("history", [e]) : d.eq(0).trigger("history", [e]), b = e 229 }), a.fn.history = function (b) { 230 a.tools.history.init(this); 231 return this.on("history", b) 232 } 233})(jQuery); 234(function (a) { 235 a.fn.mousewheel = function (a) { 236 return this[a ? "on" : "trigger"]("wheel", a) 237 }, a.event.special.wheel = {setup: function () { 238 a.event.add(this, b, c, {}) 239 }, teardown: function () { 240 a.event.remove(this, b, c) 241 }}; 242 var b = a.browser.mozilla ? "DOMMouseScroll" + (a.browser.version < "1.9" ? " mousemove" : "") : "mousewheel"; 243 244 function c(b) { 245 switch (b.type) { 246 case"mousemove": 247 return a.extend(b.data, {clientX: b.clientX, clientY: b.clientY, pageX: b.pageX, pageY: b.pageY}); 248 case"DOMMouseScroll": 249 a.extend(b, b.data), b.delta = -b.detail / 3; 250 break; 251 case"mousewheel": 252 b.delta = b.wheelDelta / 120 253 } 254 b.type = "wheel"; 255 return a.event.handle.call(this, b, b.delta) 256 } 257})(jQuery); 258(function (a) { 259 a.tools = a.tools || {version: "v1.2.7"}, a.tools.tooltip = {conf: {effect: "toggle", fadeOutSpeed: "fast", predelay: 0, delay: 30, opacity: 1, tip: 0, fadeIE: !1, position: ["top", "center"], offset: [0, 0], relative: !1, cancelDefault: !0, events: {def: "mouseenter,mouseleave", input: "focus,blur", widget: "focus mouseenter,blur mouseleave", tooltip: "mouseenter,mouseleave"}, layout: "<div/>", tipClass: "tooltip"}, addEffect: function (a, c, d) { 260 b[a] = [c, d] 261 }}; 262 var b = {toggle: [function (a) { 263 var b = this.getConf(), c = this.getTip(), d = b.opacity; 264 d < 1 && c.css({opacity: d}), c.show(), a.call() 265 }, function (a) { 266 this.getTip().hide(), a.call() 267 }], fade: [function (b) { 268 var c = this.getConf(); 269 !a.browser.msie || c.fadeIE ? this.getTip().fadeTo(c.fadeInSpeed, c.opacity, b) : (this.getTip().show(), b()) 270 }, function (b) { 271 var c = this.getConf(); 272 !a.browser.msie || c.fadeIE ? this.getTip().fadeOut(c.fadeOutSpeed, b) : (this.getTip().hide(), b()) 273 }]}; 274 275 function c(b, c, d) { 276 var e = d.relative ? b.position().top : b.offset().top, f = d.relative ? b.position().left : b.offset().left, g = d.position[0]; 277 e -= c.outerHeight() - d.offset[0], f += b.outerWidth() + d.offset[1], /iPad/i.test(navigator.userAgent) && (e -= a(window).scrollTop());
278 var h = c.outerHeight() + b.outerHeight(); 279 g == "center" && (e += h / 2), g == "bottom" && (e += h), g = d.position[1]; 280 var i = c.outerWidth() + b.outerWidth(); 281 g == "center" && (f -= i / 2), g == "left" && (f -= i); 282 return{top: e, left: f} 283 } 284 285 function d(d, e) { 286 var f = this, g = d.add(f), h, i = 0, j = 0, k = d.attr("title"), l = d.attr("data-tooltip"), m = b[e.effect], n, o = d.is(":input"), p = o && d.is(":checkbox, :radio, select, :button, :submit"), q = d.attr("type"), r = e.events[q] || e.events[o ? p ? "widget" : "input" : "def"]; 287 if (!m)throw"Nonexistent effect \"" + e.effect + "\""; 288 r = r.split(/,\s*/); 289 if (r.length != 2)throw"Tooltip: bad events configuration for " + q; 290 d.on(r[0],function (a) { 291 clearTimeout(i), e.predelay ? j = setTimeout(function () { 292 f.show(a) 293 }, e.predelay) : f.show(a) 294 }).on(r[1], function (a) { 295 clearTimeout(j), e.delay ? i = setTimeout(function () { 296 f.hide(a) 297 }, e.delay) : f.hide(a) 298 }), k && e.cancelDefault && (d.removeAttr("title"), d.data("title", k)), a.extend(f, {show: function (b) { 299 if (!h) { 300 l ? h = a(l) : e.tip ? h = a(e.tip).eq(0) : k ? h = a(e.layout).addClass(e.tipClass).appendTo(document.body).hide().append(k) : (h = d.next(), h.length || (h = d.parent().next())); 301 if (!h.length)throw"Cannot find tooltip for " + d 302 } 303 if (f.isShown())return f; 304 h.stop(!0, !0); 305 var o = c(d, h, e); 306 e.tip && h.html(d.data("title")), b = a.Event(), b.type = "onBeforeShow", g.trigger(b, [o]); 307 if (b.isDefaultPrevented())return f; 308 o = c(d, h, e), h.css({position: "absolute", top: o.top, left: o.left}), n = !0, m[0].call(f, function () { 309 b.type = "onShow", n = "full", g.trigger(b) 310 }); 311 var p = e.events.tooltip.split(/,\s*/); 312 h.data("__set") || (h.off(p[0]).on(p[0], function () { 313 clearTimeout(i), clearTimeout(j) 314 }), p[1] && !d.is("input:not(:checkbox, :radio), textarea") && h.off(p[1]).on(p[1], function (a) { 315 a.relatedTarget != d[0] && d.trigger(r[1].split(" ")[0]) 316 }), e.tip || h.data("__set", !0)); 317 return f 318 }, hide: function (c) { 319 if (!h || !f.isShown())return f; 320 c = a.Event(), c.type = "onBeforeHide", g.trigger(c); 321 if (!c.isDefaultPrevented()) { 322 n = !1, b[e.effect][1].call(f, function () { 323 c.type = "onHide", g.trigger(c) 324 }); 325 return f 326 } 327 }, isShown: function (a) { 328 return a ? n == "full" : n 329 }, getConf: function () { 330 return e 331 }, getTip: function () { 332 return h 333 }, getTrigger: function () { 334 return d 335 }}), a.each("onHide,onBeforeShow,onShow,onBeforeHide".split(","), function (b, c) { 336 a.isFunction(e[c]) && a(f).on(c, e[c]), f[c] = function (b) { 337 b && a(f).on(c, b); 338 return f 339 } 340 }) 341 } 342 343 a.fn.tooltip = function (b) { 344 var c = this.data("tooltip"); 345 if (c)return c; 346 b = a.extend(!0, {}, a.tools.tooltip.conf, b), typeof b.position == "string" && (b.position = b.position.split(/,?\s/)), this.each(function () { 347 c = new d(a(this), b), a(this).data("tooltip", c) 348 }); 349 return b.api ? c : this 350 } 351})(jQuery); 352(function (a) { 353 var b = a.tools.tooltip; 354 b.dynamic = {conf: {classNames: "top right bottom left"}}; 355 function c(b) { 356 var c = a(window), d = c.width() + c.scrollLeft(), e = c.height() + c.scrollTop(); 357 return[b.offset().top <= c.scrollTop(), d <= b.offset().left + b.width(), e <= b.offset().top + b.height(), c.scrollLeft() >= b.offset().left] 358 } 359 360 function d(a) { 361 var b = a.length; 362 while (b--)if (a[b])return!1; 363 return!0 364 } 365 366 a.fn.dynamic = function (e) { 367 typeof e == "number" && (e = {speed: e}), e = a.extend({}, b.dynamic.conf, e); 368 var f = a.extend(!0, {}, e), g = e.classNames.split(/\s/), h; 369 this.each(function () { 370 var b = a(this).tooltip().onBeforeShow(function (b, e) { 371 var i = this.getTip(), j = this.getConf(); 372 h || (h = [j.position[0], j.position[1], j.offset[0], j.offset[1], a.extend({}, j)]), a.extend(j, h[4]), j.position = [h[0], h[1]], j.offset = [h[2], h[3]], i.css({visibility: "hidden", position: "absolute", top: e.top, left: e.left}).show(); 373 var k = a.extend(!0, {}, f), l = c(i); 374 if (!d(l)) { 375 l[2] && (a.extend(j, k.top), j.position[0] = "top", i.addClass(g[0])), l[3] && (a.extend(j, k.right), j.position[1] = "right", i.addClass(g[1])), l[0] && (a.extend(j, k.bottom), j.position[0] = "bottom", i.addClass(g[2])), l[1] && (a.extend(j, k.left), j.position[1] = "left", i.addClass(g[3])); 376 if (l[0] || l[2])j.offset[0] *= -1; 377 if (l[1] || l[3])j.offset[1] *= -1 378 } 379 i.css({visibility: "visible"}).hide() 380 }); 381 b.onBeforeShow(function () { 382 var a = this.getConf(), b = this.getTip(); 383 setTimeout(function () { 384 a.position = [h[0], h[1]], a.offset = [h[2], h[3]] 385 }, 0) 386 }), b.onHide(function () { 387 var a = this.getTip(); 388 a.removeClass(e.classNames) 389 }), ret = b 390 }); 391 return e.api ? ret : this 392 } 393})(jQuery); 394(function (a) { 395 var b = a.tools.tooltip; 396 a.extend(b.conf, {direction: "up", bounce: !1, slideOffset: 10, slideInSpeed: 200, slideOutSpeed: 200, slideFade: !a.browser.msie}); 397 var c = {up: ["-", "top"], down: ["+", "top"], left: ["-", "left"], right: ["+", "left"]}; 398 b.addEffect("slide", function (a) { 399 var b = this.getConf(), d = this.getTip(), e = b.slideFade ? {opacity: b.opacity} : {}, f = c[b.direction] || c.up; 400 e[f[1]] = f[0] + "=" + b.slideOffset, b.slideFade && d.css({opacity: 0}), d.show().animate(e, b.slideInSpeed, a) 401 }, function (b) { 402 var d = this.getConf(), e = d.slideOffset, f = d.slideFade ? {opacity: 0} : {}, g = c[d.direction] || c.up, h = "" + g[0]; 403 d.bounce && (h = h == "+" ? "-" : "+"), f[g[1]] = h + "=" + e, this.getTip().animate(f, d.slideOutSpeed, function () { 404 a(this).hide(), b.call() 405 }) 406 }) 407})(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.