/*! * jQuery Cookie Plugin * https://github.com/carhartl/jquery-cookie * * Copyright 2011, Klaus Hartl * Dual licensed under the MIT or GPL Version 2 licenses. * http://www.opensource.org/licenses/mit-license.php * http://www.opensource.org/licenses/GPL-2.0 */ (function ($) { $.cookie = function (key, value, options) { if (arguments.length > 1 && (!/Object/.test(Object.prototype.toString.call(value)) || value === null || value === undefined)) { options = $.extend({}, options); if (value === null || value === undefined) options.expires = -1; if (typeof options.expires === "number") { var days = options.expires, t = options.expires = new Date; t.setDate(t.getDate() + days) } value = String(value); return document.cookie = [encodeURIComponent(key), "=", options.raw ? value : encodeURIComponent(value), options.expires ? "; expires=" + options.expires.toUTCString() : "", options.path ? "; path=" + options.path : "", options.domain ? "; domain=" + options.domain : "", options.secure ? "; secure" : ""].join("") } options = value || {}; var decode = options.raw ? function (s) { return s } : decodeURIComponent; var pairs = document.cookie.split("; "); for (var i = 0, pair; pair = pairs[i] && pairs[i].split("="); i++) if (decode(pair[0]) === key) return decode(pair[1] || ""); return null } })(jQuery); /* json2.js 2011-10-19 Public Domain. NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK. See http://www.JSON.org/js.html */ var JSON; if (!JSON) JSON = {}; (function () { function f(n) { return n < 10 ? "0" + n : n } if (typeof Date.prototype.toJSON !== "function") { Date.prototype.toJSON = function (key) { return isFinite(this.valueOf()) ? this.getUTCFullYear() + "-" + f(this.getUTCMonth() + 1) + "-" + f(this.getUTCDate()) + "T" + f(this.getUTCHours()) + ":" + f(this.getUTCMinutes()) + ":" + f(this.getUTCSeconds()) + "Z" : null }; String.prototype.toJSON = Number.prototype.toJSON = Boolean.prototype.toJSON = function (key) { return this.valueOf() } } var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, gap, indent, meta = { "\u0008": "\\b", "\t": "\\t", "\n": "\\n", "\u000c": "\\f", "\r": "\\r", '"': '\\"', "\\": "\\\\" }, rep; function quote(string) { escapable.lastIndex = 0; return escapable.test(string) ? '"' + string.replace(escapable, function (a) { var c = meta[a]; return typeof c === "string" ? c : "\\u" + ("0000" + a.charCodeAt(0).toString(16)).slice(-4) }) + '"' : '"' + string + '"' } function str(key, holder) { var i, k, v, length, mind = gap, partial, value = holder[key]; if (value && typeof value === "object" && typeof value.toJSON === "function") value = value.toJSON(key); if (typeof rep === "function") value = rep.call(holder, key, value); switch (typeof value) { case "string": return quote(value); case "number": return isFinite(value) ? String(value) : "null"; case "boolean": case "null": return String(value); case "object": if (!value) return "null"; gap += indent; partial = []; if (Object.prototype.toString.apply(value) === "[object Array]") { length = value.length; for (i = 0; i < length; i += 1) partial[i] = str(i, value) || "null"; v = partial.length === 0 ? "[]" : gap ? "[\n" + gap + partial.join(",\n" + gap) + "\n" + mind + "]" : "[" + partial.join(",") + "]"; gap = mind; return v } if (rep && typeof rep === "object") { length = rep.length; for (i = 0; i < length; i += 1) if (typeof rep[i] === "string") { k = rep[i]; v = str(k, value); if (v) partial.push(quote(k) + (gap ? ": " : ":") + v) } } else for (k in value) if (Object.prototype.hasOwnProperty.call(value, k)) { v = str(k, value); if (v) partial.push(quote(k) + (gap ? ": " : ":") + v) } v = partial.length === 0 ? "{}" : gap ? "{\n" + gap + partial.join(",\n" + gap) + "\n" + mind + "}" : "{" + partial.join(",") + "}"; gap = mind; return v } } if (typeof JSON.stringify !== "function") JSON.stringify = function (value, replacer, space) { var i; gap = ""; indent = ""; if (typeof space === "number") for (i = 0; i < space; i += 1) indent += " "; else if (typeof space === "string") indent = space; rep = replacer; if (replacer && typeof replacer !== "function" && (typeof replacer !== "object" || typeof replacer.length !== "number")) throw new Error("JSON.stringify"); return str("", { "": value }) }; if (typeof JSON.parse !== "function") JSON.parse = function (text, reviver) { var j; function walk(holder, key) { var k, v, value = holder[key]; if (value && typeof value === "object") for (k in value) if (Object.prototype.hasOwnProperty.call(value, k)) { v = walk(value, k); if (v !== undefined) value[k] = v; else delete value[k] } return reviver.call(holder, key, value) } text = String(text); cx.lastIndex = 0; if (cx.test(text)) text = text.replace(cx, function (a) { return "\\u" + ("0000" + a.charCodeAt(0).toString(16)).slice(-4) }); if (/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]").replace(/(?:^|:|,)(?:\s*\[)+/g, ""))) { j = eval("(" + text + ")"); return typeof reviver === "function" ? walk({ "": j }, "") : j } throw new SyntaxError("JSON.parse"); } })(); /* * qTip2 - Pretty powerful tooltips * http://craigsworks.com/projects/qtip2/ * * Version: nightly * Copyright 2009-2010 Craig Michael Thompson - http://craigsworks.com * * Dual licensed under MIT or GPLv2 licenses * http://en.wikipedia.org/wiki/MIT_License * http://en.wikipedia.org/wiki/GNU_General_Public_License * * Date: Tue Apr 10 11:58:19.0000000000 2012 */ /*jslint browser: true, onevar: true, undef: true, nomen: true, bitwise: true, regexp: true, newcap: true, immed: true, strict: true */ /*global window: false, jQuery: false, console: false, define: false */ // Uses AMD or browser globals to create a jQuery plugin. (function (n) { typeof define == "function" && define.amd ? define(["jquery"], n) : n(jQuery) })(function (n) { "use strict"; function y() { if (y.history = y.history || [], y.history.push(arguments), "object" == typeof console) { var t = console[console.warn ? "warn" : "log"], n = Array.prototype.slice.call(arguments), i; typeof arguments[0] == "string" && (n[0] = "qTip2: " + n[0]); i = t.apply ? t.apply(console, n) : t(n) } } function b(i) { var f; return !i || "object" != typeof i ? t : ((i.metadata === r || "object" != typeof i.metadata) && (i.metadata = { type: i.metadata }), "content" in i && ((i.content === r || "object" != typeof i.content || i.content.jquery) && (i.content = { text: i.content }), f = i.content.text || t, n.isFunction(f) || (f || f.attr) && !(f.length < 1) && ("object" != typeof f || f.jquery) || (i.content.text = t), "title" in i.content && ((i.content.title === r || "object" != typeof i.content.title) && (i.content.title = { text: i.content.title }), f = i.content.title.text || t, n.isFunction(f) || (f || f.attr) && !(f.length < 1) && ("object" != typeof f || f.jquery) || (i.content.title.text = t))), "position" in i && (i.position === r || "object" != typeof i.position) && (i.position = { my: i.position, at: i.position }), "show" in i && (i.show === r || "object" != typeof i.show) && (i.show = i.show.jquery ? { target: i.show } : { event: i.show }), "hide" in i && (i.hide === r || "object" != typeof i.hide) && (i.hide = i.hide.jquery ? { target: i.hide } : { event: i.hide }), "style" in i && (i.style === r || "object" != typeof i.style) && (i.style = { classes: i.style }), n.each(u, function () { this.sanitize && this.sanitize(i) }), i) } function tt(a, y, tt, it) { function pt(n) { for (var r = 0, u, t = y, i = n.split(".") ; t = t[i[r++]];) r < i.length && (u = t); return [u || y, i.pop()] } function wt() { var n = y.style.widget; ut.toggleClass(d, n).toggleClass(g, y.style.def && !n); ft.content.toggleClass(d + "-content", n); ft.titlebar && ft.titlebar.toggleClass(d + "-header", n); ft.button && ft.button.toggleClass(f + "-icon", !n) } function lt(n) { ft.title && (ft.titlebar.remove(), ft.titlebar = ft.title = ft.button = r, n !== t && rt.reposition()) } function bt() { var i = y.content.title.button, u = typeof i == "string", r = u ? i : "Close tooltip"; ft.button && ft.button.remove(); ft.button = i.jquery ? i : n("", { "class": "ui-state-default ui-tooltip-close " + (y.style.widget ? "" : f + "-icon"), title: r, "aria-label": r }).prepend(n("", { "class": "ui-icon ui-icon-close", html: "×" })); ft.button.appendTo(ft.titlebar).attr("role", "button").click(function (n) { return ut.hasClass(h) || rt.hide(n), t }); rt.redraw() } function at() { var t = ct + "-title"; ft.titlebar && lt(); ft.titlebar = n("
", { "class": f + "-titlebar " + (y.style.widget ? "ui-widget-header" : "") }).append(ft.title = n("", { id: t, "class": f + "-title", "aria-atomic": i })).insertBefore(ft.content).delegate(".ui-tooltip-close", "mousedown keydown mouseup keyup mouseout", function (t) { n(this).toggleClass("ui-state-active ui-state-focus", t.type.substr(-4) === "down") }).delegate(".ui-tooltip-close", "mouseover mouseout", function (t) { n(this).toggleClass("ui-state-hover", t.type === "mouseover") }); y.content.title.button ? bt() : rt.rendered && rt.redraw() } function ni(n) { var i = ft.button, r = ft.title; if (!rt.rendered) return t; n ? (r || at(), bt()) : i.remove() } function vt(i, r) { var u = ft.title; if (!rt.rendered || !i) return t; if (n.isFunction(i) && (i = i.call(a, et.event, rt)), i !== t && (i || i === "")) i.jquery && i.length > 0 ? u.empty().append(i.css({ display: "block" })) : u.html(i); else return lt(t); rt.redraw(); r !== t && rt.rendered && ut[0].offsetWidth > 0 && rt.reposition(et.event) } function yt(i, r) { function f(i) { function e(u) { u && (delete f[u.src], clearTimeout(rt.timers.img[u.src]), n(u).unbind(ot)); n.isEmptyObject(f) && (rt.redraw(), r !== t && rt.reposition(et.event), i()) } var s, f = {}; if ((s = u.find("img[src]:not([height]):not([width])")).length === 0) return e(); s.each(function (t, i) { if (f[i.src] === o) { var r = 0, u = 3; (function s() { if (i.height || i.width || r > u) return e(i); r += 1; rt.timers.img[i.src] = setTimeout(s, 700) })(); n(i).bind("error" + ot + " load" + ot, function () { e(this) }); f[i.src] = i } }) } var u = ft.content; return !rt.rendered || !i ? t : (n.isFunction(i) && (i = i.call(a, et.event, rt) || ""), i.jquery && i.length > 0 ? u.empty().append(i.css({ display: "block" })) : u.html(i), rt.rendered < 0 ? ut.queue("fx", f) : (st = 0, f(n.noop)), rt) } function kt() { function o(n) { if (ut.hasClass(h)) return t; clearTimeout(rt.timers.show); clearTimeout(rt.timers.hide); var r = function () { rt.toggle(i, n) }; y.show.delay > 0 ? rt.timers.show = setTimeout(r, y.show.delay) : r() } function c(i) { if (ut.hasClass(h) || ht || st) return t; var f = n(i.relatedTarget || i.target), e = f.closest(v)[0] === ut[0], o = f[0] === r.show[0]; if (clearTimeout(rt.timers.show), clearTimeout(rt.timers.hide), u.target === "mouse" && e || y.hide.fixed && /mouse(out|leave|move)/.test(i.type) && (e || o)) { try { i.preventDefault(); i.stopImmediatePropagation() } catch (s) { } return } y.hide.delay > 0 ? rt.timers.hide = setTimeout(function () { rt.hide(i) }, y.hide.delay) : rt.hide(i) } function l(n) { if (ut.hasClass(h)) return t; clearTimeout(rt.timers.inactive); rt.timers.inactive = setTimeout(function () { rt.hide(n) }, y.hide.inactive) } function p(n) { rt.rendered && ut[0].offsetWidth > 0 && rt.reposition(n) } var u = y.position, r = { show: y.show.target, hide: y.hide.target, viewport: n(u.viewport), document: n(document), body: n(document.body), window: n(window) }, f = { show: n.trim("" + y.show.event).split(" "), hide: n.trim("" + y.hide.event).split(" ") }, w = n.browser.msie && parseInt(n.browser.version, 10) === 6; ut.bind("mouseenter" + ot + " mouseleave" + ot, function (n) { var t = n.type === "mouseenter"; t && rt.focus(n); ut.toggleClass(nt, t) }); y.hide.fixed && (r.hide = r.hide.add(ut), ut.bind("mouseover" + ot, function () { ut.hasClass(h) || clearTimeout(rt.timers.hide) })); /mouse(out|leave)/i.test(y.hide.event) ? y.hide.leave === "window" && r.window.bind("mouseout" + ot + " blur" + ot, function (n) { /select|option/.test(n.target) && !n.relatedTarget && rt.hide(n) }) : /mouse(over|enter)/i.test(y.show.event) && r.hide.bind("mouseleave" + ot, function () { clearTimeout(rt.timers.show) }); ("" + y.hide.event).indexOf("unfocus") > -1 && u.container.closest("html").bind("mousedown" + ot, function (t) { var i = n(t.target), u = rt.rendered && !ut.hasClass(h) && ut[0].offsetWidth > 0, r = i.parents(v).filter(ut[0]).length > 0; i[0] === a[0] || i[0] === ut[0] || r || a.has(i[0]).length || i.attr("disabled") || rt.hide(t) }); "number" == typeof y.hide.inactive && (r.show.bind("qtip-" + tt + "-inactive", l), n.each(e.inactiveEvents, function (n, t) { r.hide.add(ft.tooltip).bind(t + ot + "-inactive", l) })); n.each(f.hide, function (t, i) { var u = n.inArray(i, f.show), e = n(r.hide); u > -1 && e.add(r.show).length === e.length || i === "unfocus" ? (r.show.bind(i + ot, function (n) { ut[0].offsetWidth > 0 ? c(n) : o(n) }), delete f.show[u]) : r.hide.bind(i + ot, c) }); n.each(f.show, function (n, t) { r.show.bind(t + ot, o) }); "number" == typeof y.hide.distance && r.show.add(ut).bind("mousemove" + ot, function (n) { var t = et.origin || {}, i = y.hide.distance, r = Math.abs; (r(n.pageX - t.pageX) >= i || r(n.pageY - t.pageY) >= i) && rt.hide(n) }); u.target === "mouse" && (r.show.bind("mousemove" + ot, function (n) { s = { pageX: n.pageX, pageY: n.pageY, type: "mousemove" } }), u.adjust.mouse && (y.hide.event && (ut.bind("mouseleave" + ot, function (n) { (n.relatedTarget || n.target) !== r.show[0] && rt.hide(n) }), ft.target.bind("mouseenter" + ot + " mouseleave" + ot, function (n) { et.onTarget = n.type === "mouseenter" })), r.document.bind("mousemove" + ot, function (n) { rt.rendered && et.onTarget && !ut.hasClass(h) && ut[0].offsetWidth > 0 && rt.reposition(n || s) }))); (u.adjust.resize || r.viewport.length) && (n.event.special.resize ? r.viewport : r.window).bind("resize" + ot, p); (r.viewport.length || w && ut.css("position") === "fixed") && r.viewport.bind("scroll" + ot, p) } function dt() { var t = [y.show.target[0], y.hide.target[0], rt.rendered && ft.tooltip[0], y.position.container[0], y.position.viewport[0], window, document]; rt.rendered ? n([]).pushStack(n.grep(t, function (n) { return typeof n == "object" })).unbind(ot) : y.show.target.unbind(ot + "-create") } var rt = this, gt = document.body, ct = f + "-" + tt, ht = 0, st = 0, ut = n(), ot = ".qtip-" + tt, ft, et; rt.id = tt; rt.rendered = t; rt.elements = ft = { target: a }; rt.timers = { img: {} }; rt.options = y; rt.checks = {}; rt.plugins = {}; rt.cache = et = { event: {}, target: n(), disabled: t, attr: it, onTarget: t }; rt.checks.builtin = { "^id$": function (r, u, o) { var h = o === i ? e.nextid : o, s = f + "-" + h; h !== t && h.length > 0 && !n("#" + s).length && (ut[0].id = s, ft.content[0].id = s + "-content", ft.title[0].id = s + "-title") }, "^content.text$": function (n, t, i) { yt(i) }, "^content.title.text$": function (n, t, i) { if (!i) return lt(); !ft.title && i && at(); vt(i) }, "^content.title.button$": function (n, t, i) { ni(i) }, "^position.(my|at)$": function (n, t, i) { "string" == typeof i && (n[t] = new u.Corner(i)) }, "^position.container$": function (n, t, i) { rt.rendered && ut.appendTo(i) }, "^show.ready$": function () { rt.rendered ? rt.toggle(i) : rt.render(1) }, "^style.classes$": function (n, t, i) { ut.attr("class", f + " qtip ui-helper-reset " + i) }, "^style.widget|content.title": wt, "^events.(render|show|move|hide|focus|blur)$": function (t, i, r) { ut[(n.isFunction(r) ? "" : "un") + "bind"]("tooltip" + i, r) }, "^(show|hide|position).(event|target|fixed|inactive|leave|distance|viewport|adjust)": function () { var n = y.position; ut.attr("tracking", n.target === "mouse" && n.adjust.mouse); dt(); kt() } }; n.extend(rt, { render: function (r) { if (rt.rendered) return rt; var o = y.content.text, e = y.content.title.text, s = y.position, c = n.Event("tooltiprender"); return n.attr(a[0], "aria-describedby", ct), ut = ft.tooltip = n("", { id: ct, "class": f + " qtip ui-helper-reset " + g + " " + y.style.classes + " " + f + "-pos-" + y.position.my.abbrev(), width: y.style.width || "", height: y.style.height || "", tracking: s.target === "mouse" && s.adjust.mouse, role: "alert", "aria-live": "polite", "aria-atomic": t, "aria-describedby": ct + "-content", "aria-hidden": i }).toggleClass(h, et.disabled).data("qtip", rt).appendTo(y.position.container).append(ft.content = n("", { "class": f + "-content", id: ct + "-content", "aria-atomic": i })), rt.rendered = -1, st = 1, ht = 1, e && (at(), n.isFunction(e) || vt(e, t)), n.isFunction(o) || yt(o, t), rt.rendered = i, wt(), n.each(y.events, function (t, i) { n.isFunction(i) && ut.bind(t === "toggle" ? "tooltipshow tooltiphide" : "tooltip" + t, i) }), n.each(u, function () { this.initialize === "render" && this(rt) }), kt(), ut.queue("fx", function (n) { c.originalEvent = et.event; ut.trigger(c, [rt]); st = 0; ht = 0; rt.redraw(); (y.show.ready || r) && rt.toggle(i, et.event, t); n() }), rt }, get: function (n) { var t, i; switch (n.toLowerCase()) { case "dimensions": t = { height: ut.outerHeight(), width: ut.outerWidth() }; break; case "offset": t = u.offset(ut, y.position.container); break; default: i = pt(n.toLowerCase()); t = i[0][i[1]]; t = t.precedance ? t.string() : t } return t }, set: function (u, f) { function a(n, t) { var i, r, u; for (i in s) for (r in s[i]) (u = new RegExp(r, "i").exec(n)) && (t.push(u), s[i][r].apply(rt, t)) } var c = /^position\.(my|at|adjust|target|container)|style|content|show\.ready/i, l = /^content\.(title|attr)|style/i, e = t, o = t, s = rt.checks, h; return "string" == typeof u ? (h = u, u = {}, u[h] = f) : u = n.extend(i, {}, u), n.each(u, function (t, i) { var r = pt(t.toLowerCase()), f; f = r[0][r[1]]; r[0][r[1]] = "object" == typeof i && i.nodeType ? n(i) : i; u[t] = [r[0], r[1], i, f]; e = c.test(t) || e; o = l.test(t) || o }), b(y), ht = st = 1, n.each(u, a), ht = st = 0, rt.rendered && ut[0].offsetWidth > 0 && (e && rt.reposition(y.position.target === "mouse" ? r : et.event), o && rt.redraw()), rt }, toggle: function (u, f) { function l() { u ? (n.browser.msie && ut[0].style.removeAttribute("filter"), ut.css("overflow", ""), "string" == typeof e.autofocus && n(e.autofocus, ut).focus(), e.target.trigger("qtip-" + tt + "-inactive")) : ut.css({ display: "", visibility: "", opacity: "", left: "", top: "" }); o = n.Event("tooltip" + (u ? "visible" : "hidden")); o.originalEvent = f ? et.event : r; ut.trigger(o, [rt]) } if (!rt.rendered) return u ? rt.render(1) : rt; var c = u ? "show" : "hide", e = y[c], d = y[u ? "hide" : "show"], a = y.position, h = y.content, p = ut[0].offsetWidth > 0, b = u || e.target.length === 1, k = !f || e.target.length < 2 || et.target[0] === f.target, o; if ((typeof u).search("boolean|number") && (u = !p), !ut.is(":animated") && p === u && k) return rt; if (f) { if (/over|enter/.test(f.type) && /out|leave/.test(et.event.type) && y.show.target.add(f.target).length === y.show.target.length && ut.has(f.relatedTarget).length) return rt; et.event = n.extend({}, f) } return (o = n.Event("tooltip" + c), o.originalEvent = f ? et.event : r, ut.trigger(o, [rt, 90]), o.isDefaultPrevented()) ? rt : (n.attr(ut[0], "aria-hidden", !!!u), u ? (et.origin = n.extend({}, s), rt.focus(f), n.isFunction(h.text) && yt(h.text, t), n.isFunction(h.title.text) && vt(h.title.text, t), !w && a.target === "mouse" && a.adjust.mouse && (n(document).bind("mousemove.qtip", function (n) { s = { pageX: n.pageX, pageY: n.pageY, type: "mousemove" } }), w = i), rt.reposition(f, arguments[2]), (o.solo = !!e.solo) && n(v, e.solo).not(ut).qtip("hide", o)) : (clearTimeout(rt.timers.show), delete et.origin, w && !n(v + '[tracking="true"]:visible', e.solo).not(ut).length && (n(document).unbind("mousemove.qtip"), w = t), rt.blur(f)), e.effect === t || b === t ? (ut[c](), l.call(ut)) : n.isFunction(e.effect) ? (ut.stop(1, 1), e.effect.call(ut, rt), ut.queue("fx", function (n) { l(); n() })) : ut.fadeTo(90, u ? 1 : 0, l), u && e.target.trigger("qtip-" + tt + "-inactive"), rt) }, show: function (n) { return rt.toggle(i, n) }, hide: function (n) { return rt.toggle(t, n) }, focus: function (t) { if (!rt.rendered) return rt; var r = n(v), f = parseInt(ut[0].style.zIndex, 10), u = e.zindex + r.length, o = n.extend({}, t), i; return ut.hasClass(p) || (i = n.Event("tooltipfocus"), i.originalEvent = o, ut.trigger(i, [rt, u]), i.isDefaultPrevented() || (f !== u && (r.each(function () { this.style.zIndex > f && (this.style.zIndex = this.style.zIndex - 1) }), r.filter("." + p).qtip("blur", o)), ut.addClass(p)[0].style.zIndex = u)), rt }, blur: function (t) { var r = n.extend({}, t), i; return ut.removeClass(p), i = n.Event("tooltipblur"), i.originalEvent = r, ut.trigger(i, [rt]), rt }, reposition: function (i, r) { if (!rt.rendered || ht) return rt; ht = 1; var o = y.position.target, b = y.position, c = b.my, a = b.at, k = b.adjust, tt = k.method.split(" "), g = ut.outerWidth(), nt = ut.outerHeight(), p = 0, w = 0, ot = n.Event("tooltipmove"), st = ut.css("position") === "fixed", h = b.viewport, e = { left: 0, top: 0 }, v = b.container, it = t, l = rt.plugins.tip, lt = ut[0].offsetWidth > 0, d = { horizontal: tt[0], vertical: tt[1] = tt[1] || tt[0], enabled: h.jquery && o[0] !== window && o[0] !== gt && k.method !== "none", left: function (n) { var o = d.horizontal === "shift", f = -v.offset.left + h.offset.left + h.scrollLeft, s = c.x === "left" ? g : c.x === "right" ? -g : -g / 2, b = a.x === "left" ? p : a.x === "right" ? -p : -p / 2, y = l && l.size ? l.size.width || 0 : 0, i = l && l.corner && l.corner.precedance === "x" && !o ? y : 0, u = f - n + i, r = n + g - h.width - f + i, t = s - (c.precedance === "x" || c.x === c.y ? b : 0) - (a.x === "center" ? p / 2 : 0), w = c.x === "center"; return o ? (i = l && l.corner && l.corner.precedance === "y" ? y : 0, t = (c.x === "left" ? 1 : -1) * s - i, e.left += u > 0 ? u : r > 0 ? -r : 0, e.left = Math.max(-v.offset.left + h.offset.left + (i && l.corner.x === "center" ? l.offset : 0), n - t, Math.min(Math.max(-v.offset.left + h.offset.left + h.width, n + t), e.left))) : (u > 0 && (c.x !== "left" || r > 0) ? e.left -= t : r > 0 && (c.x !== "right" || u > 0) && (e.left -= w ? -t : t), e.left !== n && w && (e.left -= k.x), e.left < f && -e.left > r && (e.left = n)), e.left - n }, top: function (n) { var f = d.vertical === "shift", o = -v.offset.top + h.offset.top + h.scrollTop, s = c.y === "top" ? nt : c.y === "bottom" ? -nt : -nt / 2, b = a.y === "top" ? w : a.y === "bottom" ? -w : -w / 2, y = l && l.size ? l.size.height || 0 : 0, i = l && l.corner && l.corner.precedance === "y" && !f ? y : 0, u = o - n + i, r = n + nt - h.height - o + i, t = s - (c.precedance === "y" || c.x === c.y ? b : 0) - (a.y === "center" ? w / 2 : 0), p = c.y === "center"; return f ? (i = l && l.corner && l.corner.precedance === "x" ? y : 0, t = (c.y === "top" ? 1 : -1) * s - i, e.top += u > 0 ? u : r > 0 ? -r : 0, e.top = Math.max(-v.offset.top + h.offset.top + (i && l.corner.x === "center" ? l.offset : 0), n - t, Math.min(Math.max(-v.offset.top + h.offset.top + h.height, n + t), e.top))) : (u > 0 && (c.y !== "top" || r > 0) ? e.top -= t : r > 0 && (c.y !== "bottom" || u > 0) && (e.top -= p ? -t : t), e.top !== n && p && (e.top -= k.y), e.top < 0 && -e.top > r && (e.top = n)), e.top - n } }, ct; if (n.isArray(o) && o.length === 2) a = { x: "left", y: "top" }, e = { left: o[0], top: o[1] }; else if (o === "mouse" && (i && i.pageX || et.event.pageX)) a = { x: "left", y: "top" }, i = (i && (i.type === "resize" || i.type === "scroll") ? et.event : i && i.pageX && i.type === "mousemove" ? i : s && s.pageX && (k.mouse || !i || !i.pageX) ? { pageX: s.pageX, pageY: s.pageY } : !k.mouse && et.origin && et.origin.pageX && y.show.distance ? et.origin : i) || i || et.event || s || {}, e = { top: i.pageY, left: i.pageX }; else { if (o = o === "event" ? i && i.target && i.type !== "scroll" && i.type !== "resize" ? et.target = n(i.target) : et.target : et.target = n(o.jquery ? o : ft.target), o = n(o).eq(0), o.length === 0) return rt; o[0] === document || o[0] === window ? (p = u.iOS ? window.innerWidth : o.width(), w = u.iOS ? window.innerHeight : o.height(), o[0] === window && (e = { top: (h || o).scrollTop(), left: (h || o).scrollLeft() })) : o.is("area") && u.imagemap ? e = u.imagemap(o, a, d.enabled ? tt : t) : o[0].namespaceURI === "http://www.w3.org/2000/svg" && u.svg ? e = u.svg(o, a) : (p = o.outerWidth(), w = o.outerHeight(), e = u.offset(o, v)); e.offset && (p = e.width, w = e.height, it = e.flipoffset, e = e.offset); (u.iOS < 4.1 && u.iOS > 3.1 || u.iOS == 4.3 || !u.iOS && st) && (ct = n(window), e.left -= ct.scrollLeft(), e.top -= ct.scrollTop()); e.left += a.x === "right" ? p : a.x === "center" ? p / 2 : 0; e.top += a.y === "bottom" ? w : a.y === "center" ? w / 2 : 0 } return (e.left += k.x + (c.x === "right" ? -g : c.x === "center" ? -g / 2 : 0), e.top += k.y + (c.y === "bottom" ? -nt : c.y === "center" ? -nt / 2 : 0), d.enabled ? (h = { elem: h, height: h[(h[0] === window ? "h" : "outerH") + "eight"](), width: h[(h[0] === window ? "w" : "outerW") + "idth"](), scrollLeft: st ? 0 : h.scrollLeft(), scrollTop: st ? 0 : h.scrollTop(), offset: h.offset() || { left: 0, top: 0 } }, v = { elem: v, scrollLeft: v.scrollLeft(), scrollTop: v.scrollTop(), offset: v.offset() || { left: 0, top: 0 } }, e.adjusted = { left: d.horizontal !== "none" ? d.left(e.left) : 0, top: d.vertical !== "none" ? d.top(e.top) : 0 }, e.adjusted.left + e.adjusted.top && ut.attr("class", ut[0].className.replace(/ui-tooltip-pos-\w+/i, f + "-pos-" + c.abbrev())), it && e.adjusted.left && (e.left += it.left), it && e.adjusted.top && (e.top += it.top)) : e.adjusted = { left: 0, top: 0 }, ot.originalEvent = n.extend({}, i), ut.trigger(ot, [rt, e, h.elem || h]), ot.isDefaultPrevented()) ? rt : (delete e.adjusted, r === t || !lt || isNaN(e.left) || isNaN(e.top) || o === "mouse" || !n.isFunction(b.effect) ? ut.css(e) : n.isFunction(b.effect) && (b.effect.call(ut, rt, n.extend({}, e)), ut.queue(function (t) { n(this).css({ opacity: "", height: "" }); n.browser.msie && this.style.removeAttribute("filter"); t() })), ht = 0, rt) }, redraw: function () { if (rt.rendered < 1 || st) return rt; var u = y.position.container, r, i, n, t; return st = 1, y.style.height && ut.css("height", y.style.height), y.style.width ? ut.css("width", y.style.width) : (ut.css("width", "").addClass(l), i = ut.width() + 1, n = ut.css("max-width") || "", t = ut.css("min-width") || "", r = (n + t).indexOf("%") > -1 ? u.width() / 100 : 0, n = (n.indexOf("%") > -1 ? r : 1) * parseInt(n, 10) || i, t = (t.indexOf("%") > -1 ? r : 1) * parseInt(t, 10) || 0, i = n + t ? Math.min(Math.max(i, t), n) : i, ut.css("width", Math.round(i)).removeClass(l)), st = 0, rt }, disable: function (t) { return "boolean" != typeof t && (t = !(ut.hasClass(h) || et.disabled)), rt.rendered ? (ut.toggleClass(h, t), n.attr(ut[0], "aria-disabled", t)) : et.disabled = !!t, rt }, enable: function () { return rt.disable(t) }, destroy: function () { var t = a[0], i = n.attr(t, c), r = a.data("qtip"); return rt.rendered && (ut.stop(1, 0).remove(), n.each(rt.plugins, function () { this.destroy && this.destroy() })), clearTimeout(rt.timers.show), clearTimeout(rt.timers.hide), dt(), r && rt !== r || (n.removeData(t, "qtip"), y.suppress && i && (n.attr(t, "title", i), a.removeAttr(c)), a.removeAttr("aria-describedby")), a.unbind(".qtip-" + tt), delete k[rt.id], a } }) } function it(f, o) { var v, h, p, s, d, l = n(this), g = n(document.body), w = this === document ? g : l, k = l.metadata ? l.metadata(o.metadata) : r, nt = o.metadata.type === "html5" && k ? k[o.metadata.name] : r, a = l.data(o.metadata.name || "qtipopts"); try { a = typeof a == "string" ? new Function("return " + a)() : a } catch (it) { y("Unable to parse HTML5 attribute data: " + a) } if (s = n.extend(i, {}, e.defaults, o, typeof a == "object" ? b(a) : r, b(nt || k)), h = s.position, s.id = f, "boolean" == typeof s.content.text) if (p = l.attr(s.content.attr), s.content.attr !== t && p) s.content.text = p; else return y("Unable to locate content for tooltip! Aborting render of tooltip on element: ", l), t; if (h.container.length || (h.container = g), h.target === t && (h.target = w), s.show.target === t && (s.show.target = w), s.show.solo === i && (s.show.solo = h.container.closest("body")), s.hide.target === t && (s.hide.target = w), s.position.viewport === i && (s.position.viewport = h.container), h.container = h.container.eq(0), h.at = new u.Corner(h.at), h.my = new u.Corner(h.my), n.data(this, "qtip")) if (s.overwrite) l.qtip("destroy"); else if (s.overwrite === t) return t; return s.suppress && (d = n.attr(this, "title")) && n(this).removeAttr("title").attr(c, d), v = new tt(l, s, f, !!p), n.data(this, "qtip", v), l.bind("remove.qtip-" + f + " removeqtip.qtip-" + f, function () { v.destroy() }), v } function rt(n, t, i) { var u = Math.ceil(t / 2), f = Math.ceil(i / 2), r = { bottomright: [[0, 0], [t, i], [t, 0]], bottomleft: [[0, 0], [t, 0], [0, i]], topright: [[0, i], [t, 0], [t, i]], topleft: [[0, 0], [0, i], [t, i]], topcenter: [[0, i], [u, 0], [t, i]], bottomcenter: [[0, 0], [t, 0], [u, i]], rightcenter: [[0, 0], [t, f], [0, i]], leftcenter: [[t, 0], [t, i], [0, f]] }; return r.lefttop = r.bottomright, r.righttop = r.bottomleft, r.leftbottom = r.topright, r.rightbottom = r.topleft, r[n.string()] } function ut(f) { function g(n, r, u) { if (s.tip) { var c = e.corner.clone(), l = u.adjusted, d = f.options.position.adjust.method.split(" "), b = d[0], k = d[1] || d[0], v = { left: t, top: t, x: 0, y: 0 }, h, w = {}, y; e.corner.fixed !== i && (b === "shift" && c.precedance === "x" && l.left && c.y !== "center" ? c.precedance = c.precedance === "x" ? "y" : "x" : b === "flip" && l.left && (c.x = c.x === "center" ? l.left > 0 ? "left" : "right" : c.x === "left" ? "right" : "left"), k === "shift" && c.precedance === "y" && l.top && c.x !== "center" ? c.precedance = c.precedance === "y" ? "x" : "y" : k === "flip" && l.top && (c.y = c.y === "center" ? l.top > 0 ? "top" : "bottom" : c.y === "top" ? "bottom" : "top"), c.string() !== p.corner.string() && (p.top !== l.top || p.left !== l.left) && e.update(c, t)); h = e.position(c, l); h.right !== o && (h.left = -h.right); h.bottom !== o && (h.top = -h.bottom); h.user = Math.max(0, a.offset); (v.left = b === "shift" && !!l.left) && (c.x === "center" ? w["margin-left"] = v.x = h["margin-left"] - l.left : (y = h.right !== o ? [l.left, -h.left] : [-l.left, h.left], (v.x = Math.max(y[0], y[1])) > y[0] && (u.left -= l.left, v.left = t), w[h.right !== o ? "right" : "left"] = v.x)); (v.top = k === "shift" && !!l.top) && (c.y === "center" ? w["margin-top"] = v.y = h["margin-top"] - l.top : (y = h.bottom !== o ? [l.top, -h.top] : [-l.top, h.top], (v.y = Math.max(y[0], y[1])) > y[0] && (u.top -= l.top, v.top = t), w[h.bottom !== o ? "bottom" : "top"] = v.y)); s.tip.css(w).toggle(!(v.x && v.y || c.x === "center" && v.y || c.y === "center" && v.x)); u.left -= h.left.charAt ? h.user : b !== "shift" || v.top || !v.left && !v.top ? h.left : 0; u.top -= h.top.charAt ? h.user : k !== "shift" || v.left || !v.left && !v.top ? h.top : 0; p.left = l.left; p.top = l.top; p.corner = c.clone() } } function k(n, t, i) { t = t ? t : n[n.precedance]; var f = v.hasClass(l), e = s.titlebar && n.y === "top", o = e ? s.titlebar : s.content, u = "border-" + t + "-width", r; return v.addClass(l), r = parseInt(o.css(u), 10), r = (i ? r || parseInt(v.css(u), 10) : r) || 0, v.toggleClass(l, f), r } function nt(t) { var f = s.titlebar && t.y === "top", e = f ? s.titlebar : s.content, i = n.browser.mozilla, o = i ? "-moz-" : n.browser.webkit ? "-webkit-" : "", r = t.y + (i ? "" : "-") + t.x, u = o + (i ? "border-radius-" + r : "border-" + r + "-radius"); return parseInt(e.css(u), 10) || parseInt(v.css(u), 10) || 0 } function d(n) { var r = n.precedance === "y", s = y[r ? "width" : "height"], f = y[r ? "height" : "width"], c = n.string().indexOf("center") > -1, l = s * (c ? .5 : 1), i = Math.pow, a = Math.round, v, e, o, u = Math.sqrt(i(l, 2) + i(f, 2)), t = [h / l * u, h / f * u]; return t[2] = Math.sqrt(i(t[0], 2) - i(h, 2)), t[3] = Math.sqrt(i(t[1], 2) - i(h, 2)), v = u + t[2] + t[3] + (c ? 0 : t[0]), e = v / u, o = [a(e * f), a(e * s)], { height: o[r ? 0 : 1], width: o[r ? 1 : 0] } } var e = this, a = f.options.style.tip, s = f.elements, v = s.tooltip, p = { top: 0, left: 0 }, y = { width: a.width, height: a.height }, c = {}, h = a.border || 0, w = ".qtip-tip", b = !!(n("")[0] || {}).getContext && !(window.external && window.external.IsInnovasysDesigner); e.corner = r; e.mimic = r; e.border = h; e.offset = a.offset; e.size = y; f.checks.tip = { "^position.my|style.tip.(corner|mimic|border)$": function () { e.init() || e.destroy(); f.reposition() }, "^style.tip.(height|width)$": function () { y = { width: a.width, height: a.height }; e.create(); e.update(); f.reposition() }, "^content.title.text|style.(classes|widget)$": function () { s.tip && e.update() } }; n.extend(e, { init: function () { var t = e.detectCorner() && (b || n.browser.msie); return t && (e.create(), e.update(), v.unbind(w).bind("tooltipmove" + w, g)), t }, detectCorner: function () { var n = a.corner, r = f.options.position, s = r.at, o = r.my.string ? r.my.string() : r.my; return n === t || o === t && s === t ? t : (n === i ? e.corner = new u.Corner(o) : n.string || (e.corner = new u.Corner(n), e.corner.fixed = i), p.corner = new u.Corner(e.corner.string()), e.corner.string() !== "centercenter") }, detectColours: function (t) { var u, r, i = s.tip.css("cssText", ""), o = t || e.corner, w = o[o.precedance], b = "border-" + w + "-color", nt = "border" + w.charAt(0) + w.substr(1) + "Color", h = /rgba?\(0, 0, 0(, 0)?\)|transparent|#123456/i, p = "background-color", k = "transparent", d = " !important", tt = n(document.body).css("color"), rt = f.elements.content.css("color"), it = s.titlebar && (o.y === "top" || o.y === "center" && i.position().top + y.height / 2 + a.offset < s.titlebar.outerHeight(1)), g = it ? s.titlebar : s.content; v.addClass(l); c.fill = u = i.css(p); c.border = r = i[0].style[nt] || i.css(b) || v.css(b); (!u || h.test(u)) && (c.fill = g.css(p) || k, h.test(c.fill) && (c.fill = v.css(p) || u)); (!r || h.test(r) || r === tt) && (c.border = g.css(b) || k, h.test(c.border) && (c.border = r)); n("*", i).add(i).css("cssText", p + ":" + k + d + ";border:0" + d + ";"); v.removeClass(l) }, create: function () { var i = y.width, r = y.height, t; s.tip && s.tip.remove(); s.tip = n("", { "class": "ui-tooltip-tip" }).css({ width: i, height: r }).prependTo(v); b ? n("").appendTo(s.tip)[0].getContext("2d").save() : (t = '