/*
 * jquery.qtip. The jQuery tooltip plugin
 *
 * Copyright (c) 2009 Craig Thompson
 * http://craigsworks.com
 *
 * Licensed under MIT
 * http://www.opensource.org/licenses/mit-license.php
 *
 * Launch  : February 2009
 * Version : 1.0.0-rc3
 * Released: Tuesday 12th May, 2009 - 00:00
 * Debug: jquery.qtip.debug.js
 */
(function(f) {
	f.fn.qtip = function(B, u) {
		var y, t, A, s, x, w, v, z;
		if (typeof B == "string") {
			if (typeof f(this).data("qtip") !== "object") {
				f.fn.qtip.log.error.call(self, 1, f.fn.qtip.constants.NO_TOOLTIP_PRESENT, false)
			}
			if (B == "api") {
				return f(this).data("qtip").interfaces[f(this).data("qtip").current]
			} else {
				if (B == "interfaces") {
					return f(this).data("qtip").interfaces
				}
			}
		} else {
			if (!B) {
				B = {}
			}
			if (typeof B.content !== "object" || (B.content.jquery && B.content.length > 0)) {
				B.content = {
					text: B.content
				}
			}
			if (typeof B.content.title !== "object") {
				B.content.title = {
					text: B.content.title
				}
			}
			if (typeof B.position !== "object") {
				B.position = {
					corner: B.position
				}
			}
			if (typeof B.position.corner !== "object") {
				B.position.corner = {
					target: B.position.corner,
					tooltip: B.position.corner
				}
			}
			if (typeof B.show !== "object") {
				B.show = {
					when: B.show
				}
			}
			if (typeof B.show.when !== "object") {
				B.show.when = {
					event: B.show.when
				}
			}
			if (typeof B.show.effect !== "object") {
				B.show.effect = {
					type: B.show.effect
				}
			}
			if (typeof B.hide !== "object") {
				B.hide = {
					when: B.hide
				}
			}
			if (typeof B.hide.when !== "object") {
				B.hide.when = {
					event: B.hide.when
				}
			}
			if (typeof B.hide.effect !== "object") {
				B.hide.effect = {
					type: B.hide.effect
				}
			}
			if (typeof B.style !== "object") {
				B.style = {
					name: B.style
				}
			}
			B.style = c(B.style);
			s = f.extend(true, {},
			f.fn.qtip.defaults, B);
			s.style = a.call({
				options: s
			},
			s.style);
			s.user = f.extend(true, {},
			B)
		}
		return f(this).each(function() {
			if (typeof B == "string") {
				w = B.toLowerCase();
				A = f(this).qtip("interfaces");
				if (typeof A == "object") {
					if (u === true && w == "destroy") {
						while (A.length > 0) {
							A[A.length - 1].destroy()
						}
					} else {
						if (u !== true) {
							A = [f(this).qtip("api")]
						}
						for (y = 0; y < A.length; y++) {
							if (w == "destroy") {
								A[y].destroy()
							} else {
								if (A[y].status.rendered === true) {
									if (w == "show") {
										A[y].show()
									} else {
										if (w == "hide") {
											A[y].hide()
										} else {
											if (w == "focus") {
												A[y].focus()
											} else {
												if (w == "disable") {
													A[y].disable(true)
												} else {
													if (w == "enable") {
														A[y].disable(false)
													}
												}
											}
										}
									}
								}
							}
						}
					}
				}
			} else {
				v = f.extend(true, {},
				s);
				v.hide.effect.length = s.hide.effect.length;
				v.show.effect.length = s.show.effect.length;
				if (v.position.container === false) {
					v.position.container = f(document.body)
				}
				if (v.position.target === false) {
					v.position.target = f(this)
				}
				if (v.show.when.target === false) {
					v.show.when.target = f(this)
				}
				if (v.hide.when.target === false) {
					v.hide.when.target = f(this)
				}
				t = f.fn.qtip.interfaces.length;
				for (y = 0; y < t; y++) {
					if (typeof f.fn.qtip.interfaces[y] == "undefined") {
						t = y;
						break
					}
				}
				x = new d(f(this), v, t);
				f.fn.qtip.interfaces[t] = x;
				if (typeof f(this).data("qtip") == "object") {
					if (typeof f(this).attr("qtip") === "undefined") {
						f(this).data("qtip").current = f(this).data("qtip").interfaces.length
					}
					f(this).data("qtip").interfaces.push(x)
				} else {
					f(this).data("qtip", {
						current: 0,
						interfaces: [x]
					})
				}
				if (v.content.prerender === false && v.show.when.event !== false && v.show.ready !== true) {
					v.show.when.target.bind(v.show.when.event + ".qtip-" + t + "-create", {
						qtip: t
					},
					function(C) {
						z = f.fn.qtip.interfaces[C.data.qtip];
						z.options.show.when.target.unbind(z.options.show.when.event + ".qtip-" + C.data.qtip + "-create");
						z.cache.mouse = {
							x: C.pageX,
							y: C.pageY
						};
						p.call(z);
						z.options.show.when.target.trigger(z.options.show.when.event)
					})
				} else {
					x.cache.mouse = {
						x: v.show.when.target.offset().left,
						y: v.show.when.target.offset().top
					};
					p.call(x)
				}
			}
		})
	};
	function d(u, t, v) {
		var s = this;
		s.id = v;
		s.options = t;
		s.status = {
			animated: false,
			rendered: false,
			disabled: false,
			focused: false
		};
		s.elements = {
			target: u.addClass(s.options.style.classes.target),
			tooltip: null,
			wrapper: null,
			content: null,
			contentWrapper: null,
			title: null,
			button: null,
			tip: null,
			bgiframe: null
		};
		s.cache = {
			mouse: {},
			position: {},
			toggle: 0
		};
		s.timers = {};
		f.extend(s, s.options.api, {
			show: function(y) {
				var x, z;
				if (!s.status.rendered) {
					return f.fn.qtip.log.error.call(s, 2, f.fn.qtip.constants.TOOLTIP_NOT_RENDERED, "show")
				}
				if (s.elements.tooltip.css("display") !== "none") {
					return s
				}
				s.elements.tooltip.stop(true, false);
				x = s.beforeShow.call(s, y);
				if (x === false) {
					return s
				}
				function w() {
					if (s.options.position.type !== "static") {
						s.focus()
					}
					s.onShow.call(s, y);
					if (f.browser.msie) {
						s.elements.tooltip.get(0).style.removeAttribute("filter")
					}
				}
				s.cache.toggle = 1;
				if (s.options.position.type !== "static") {
					s.updatePosition(y, (s.options.show.effect.length > 0))
				}
				if (typeof s.options.show.solo == "object") {
					z = f(s.options.show.solo)
				} else {
					if (s.options.show.solo === true) {
						z = f("div.qtip").not(s.elements.tooltip)
					}
				}
				if (z) {
					z.each(function() {
						if (f(this).qtip("api").status.rendered === true) {
							f(this).qtip("api").hide()
						}
					})
				}
				if (typeof s.options.show.effect.type == "function") {
					s.options.show.effect.type.call(s.elements.tooltip, s.options.show.effect.length);
					s.elements.tooltip.queue(function() {
						w();
						f(this).dequeue()
					})
				} else {
					switch (s.options.show.effect.type.toLowerCase()) {
					case "fade":
						s.elements.tooltip.fadeIn(s.options.show.effect.length, w);
						break;
					case "slide":
						s.elements.tooltip.slideDown(s.options.show.effect.length,
						function() {
							w();
							if (s.options.position.type !== "static") {
								s.updatePosition(y, true)
							}
						});
						break;
					case "grow":
						s.elements.tooltip.show(s.options.show.effect.length, w);
						break;
					default:
						s.elements.tooltip.show(null, w);
						break
					}
					s.elements.tooltip.addClass(s.options.style.classes.active)
				}
				return f.fn.qtip.log.error.call(s, 1, f.fn.qtip.constants.EVENT_SHOWN, "show")
			},
			hide: function(y) {
				var x;
				if (!s.status.rendered) {
					return f.fn.qtip.log.error.call(s, 2, f.fn.qtip.constants.TOOLTIP_NOT_RENDERED, "hide")
				} else {
					if (s.elements.tooltip.css("display") === "none") {
						return s
					}
				}
				clearTimeout(s.timers.show);
				s.elements.tooltip.stop(true, false);
				x = s.beforeHide.call(s, y);
				if (x === false) {
					return s
				}
				function w() {
					s.onHide.call(s, y)
				}
				s.cache.toggle = 0;
				if (typeof s.options.hide.effect.type == "function") {
					s.options.hide.effect.type.call(s.elements.tooltip, s.options.hide.effect.length);
					s.elements.tooltip.queue(function() {
						w();
						f(this).dequeue()
					})
				} else {
					switch (s.options.hide.effect.type.toLowerCase()) {
					case "fade":
						s.elements.tooltip.fadeOut(s.options.hide.effect.length, w);
						break;
					case "slide":
						s.elements.tooltip.slideUp(s.options.hide.effect.length, w);
						break;
					case "grow":
						s.elements.tooltip.hide(s.options.hide.effect.length, w);
						break;
					default:
						s.elements.tooltip.hide(null, w);
						break
					}
					s.elements.tooltip.removeClass(s.options.style.classes.active)
				}
				return f.fn.qtip.log.error.call(s, 1, f.fn.qtip.constants.EVENT_HIDDEN, "hide")
			},
			updatePosition: function(w, x) {
				var C, G, L, J, H, E, y, I, B, D, K, A, F, z;
				if (!s.status.rendered) {
					return f.fn.qtip.log.error.call(s, 2, f.fn.qtip.constants.TOOLTIP_NOT_RENDERED, "updatePosition")
				} else {
					if (s.options.position.type == "static") {
						return f.fn.qtip.log.error.call(s, 1, f.fn.qtip.constants.CANNOT_POSITION_STATIC, "updatePosition")
					}
				}
				G = {
					position: {
						left: 0,
						top: 0
					},
					dimensions: {
						height: 0,
						width: 0
					},
					corner: s.options.position.corner.target
				};
				L = {
					position: s.getPosition(),
					dimensions: s.getDimensions(),
					corner: s.options.position.corner.tooltip
				};
				if (s.options.position.target !== "mouse") {
					if (s.options.position.target.get(0).nodeName.toLowerCase() == "area") {
						J = s.options.position.target.attr("coords").split(",");
						for (C = 0; C < J.length; C++) {
							J[C] = parseInt(J[C])
						}
						H = s.options.position.target.parent("map").attr("name");
						E = f('img[usemap="#' + H + '"]:first').offset();
						G.position = {
							left: Math.floor(E.left + J[0]),
							top: Math.floor(E.top + J[1])
						};
						switch (s.options.position.target.attr("shape").toLowerCase()) {
						case "rect":
							G.dimensions = {
								width: Math.ceil(Math.abs(J[2] - J[0])),
								height: Math.ceil(Math.abs(J[3] - J[1]))
							};
							break;
						case "circle":
							G.dimensions = {
								width: J[2] + 1,
								height: J[2] + 1
							};
							break;
						case "poly":
							G.dimensions = {
								width: J[0],
								height: J[1]
							};
							for (C = 0; C < J.length; C++) {
								if (C % 2 == 0) {
									if (J[C] > G.dimensions.width) {
										G.dimensions.width = J[C]
									}
									if (J[C] < J[0]) {
										G.position.left = Math.floor(E.left + J[C])
									}
								} else {
									if (J[C] > G.dimensions.height) {
										G.dimensions.height = J[C]
									}
									if (J[C] < J[1]) {
										G.position.top = Math.floor(E.top + J[C])
									}
								}
							}
							G.dimensions.width = G.dimensions.width - (G.position.left - E.left);
							G.dimensions.height = G.dimensions.height - (G.position.top - E.top);
							break;
						default:
							return f.fn.qtip.log.error.call(s, 4, f.fn.qtip.constants.INVALID_AREA_SHAPE, "updatePosition");
							break
						}
						G.dimensions.width -= 2;
						G.dimensions.height -= 2
					} else {
						if (s.options.position.target.add(document.body).length === 1) {
							G.position = {
								left: f(document).scrollLeft(),
								top: f(document).scrollTop()
							};
							G.dimensions = {
								height: f(window).height(),
								width: f(window).width()
							}
						} else {
							if (typeof s.options.position.target.attr("qtip") !== "undefined") {
								G.position = s.options.position.target.qtip("api").cache.position
							} else {
								G.position = s.options.position.target.offset()
							}
							G.dimensions = {
								height: s.options.position.target.outerHeight(),
								width: s.options.position.target.outerWidth()
							}
						}
					}
					y = f.extend({},
					G.position);
					if (G.corner.search(/right/i) !== -1) {
						y.left += G.dimensions.width
					}
					if (G.corner.search(/bottom/i) !== -1) {
						y.top += G.dimensions.height
					}
					if (G.corner.search(/((top|bottom)Middle)|center/) !== -1) {
						y.left += (G.dimensions.width / 2)
					}
					if (G.corner.search(/((left|right)Middle)|center/) !== -1) {
						y.top += (G.dimensions.height / 2)
					}
				} else {
					G.position = y = {
						left: s.cache.mouse.x,
						top: s.cache.mouse.y
					};
					G.dimensions = {
						height: 1,
						width: 1
					}
				}
				if (L.corner.search(/right/i) !== -1) {
					y.left -= L.dimensions.width
				}
				if (L.corner.search(/bottom/i) !== -1) {
					y.top -= L.dimensions.height
				}
				if (L.corner.search(/((top|bottom)Middle)|center/) !== -1) {
					y.left -= (L.dimensions.width / 2)
				}
				if (L.corner.search(/((left|right)Middle)|center/) !== -1) {
					y.top -= (L.dimensions.height / 2)
				}
				I = (f.browser.msie) ? 1 : 0;
				B = (f.browser.msie && parseInt(f.browser.version.charAt(0)) === 6) ? 1 : 0;
				if (s.options.style.border.radius > 0) {
					if (L.corner.search(/Left/) !== -1) {
						y.left -= s.options.style.border.radius
					} else {
						if (L.corner.search(/Right/) !== -1) {
							y.left += s.options.style.border.radius
						}
					}
					if (L.corner.search(/Top/) !== -1) {
						y.top -= s.options.style.border.radius
					} else {
						if (L.corner.search(/Bottom/) !== -1) {
							y.top += s.options.style.border.radius
						}
					}
				}
				if (I) {
					if (L.corner.search(/top/) !== -1) {
						y.top -= I
					} else {
						if (L.corner.search(/bottom/) !== -1) {
							y.top += I
						}
					}
					if (L.corner.search(/left/) !== -1) {
						y.left -= I
					} else {
						if (L.corner.search(/right/) !== -1) {
							y.left += I
						}
					}
					if (L.corner.search(/leftMiddle|rightMiddle/) !== -1) {
						y.top -= 1
					}
				}
				if (s.options.position.adjust.screen === true) {
					y = o.call(s, y, G, L)
				}
				if (s.options.position.target === "mouse" && s.options.position.adjust.mouse === true) {
					if (s.options.position.adjust.screen === true && s.elements.tip) {
						K = s.elements.tip.attr("rel")
					} else {
						K = s.options.position.corner.tooltip
					}
					y.left += (K.search(/right/i) !== -1) ? -6 : 6;
					y.top += (K.search(/bottom/i) !== -1) ? -6 : 6
				}
				if (!s.elements.bgiframe && f.browser.msie && parseInt(f.browser.version.charAt(0)) == 6) {
					f("select, object").each(function() {
						A = f(this).offset();
						A.bottom = A.top + f(this).height();
						A.right = A.left + f(this).width();
						if (y.top + L.dimensions.height >= A.top && y.left + L.dimensions.width >= A.left) {
							k.call(s)
						}
					})
				}
				y.left += s.options.position.adjust.x;
				y.top += s.options.position.adjust.y;
				F = s.getPosition();
				if (y.left != F.left || y.top != F.top) {
					z = s.beforePositionUpdate.call(s, w);
					if (z === false) {
						return s
					}
					s.cache.position = y;
					if (x === true) {
						s.status.animated = true;
						s.elements.tooltip.animate(y, 200, "swing",
						function() {
							s.status.animated = false
						})
					} else {
						s.elements.tooltip.css(y)
					}
					s.onPositionUpdate.call(s, w);
					if (typeof w !== "undefined" && w.type && w.type !== "mousemove") {
						f.fn.qtip.log.error.call(s, 1, f.fn.qtip.constants.EVENT_POSITION_UPDATED, "updatePosition")
					}
				}
				return s
			},
			updateWidth: function(w) {
				var x;
				if (!s.status.rendered) {
					return f.fn.qtip.log.error.call(s, 2, f.fn.qtip.constants.TOOLTIP_NOT_RENDERED, "updateWidth")
				} else {
					if (w && typeof w !== "number") {
						return f.fn.qtip.log.error.call(s, 2, "newWidth must be of type number", "updateWidth")
					}
				}
				x = s.elements.contentWrapper.siblings().add(s.elements.tip).add(s.elements.button);
				if (!w) {
					if (typeof s.options.style.width.value == "number") {
						w = s.options.style.width.value
					} else {
						s.elements.tooltip.css({
							width: "auto"
						});
						x.hide();
						if (f.browser.msie) {
							s.elements.wrapper.add(s.elements.contentWrapper.children()).css({
								zoom: "normal"
							})
						}
						w = s.getDimensions().width + 1;
						if (!s.options.style.width.value) {
							if (w > s.options.style.width.max) {
								w = s.options.style.width.max
							}
							if (w < s.options.style.width.min) {
								w = s.options.style.width.min
							}
						}
					}
				}
				if (w % 2 !== 0) {
					w -= 1
				}
				s.elements.tooltip.width(w);
				x.show();
				if (s.options.style.border.radius) {
					s.elements.tooltip.find(".qtip-betweenCorners").each(function(y) {
						f(this).width(w - (s.options.style.border.radius * 2))
					})
				}
				if (f.browser.msie) {
					s.elements.wrapper.add(s.elements.contentWrapper.children()).css({
						zoom: "1"
					});
					s.elements.wrapper.width(w);
					if (s.elements.bgiframe) {
						s.elements.bgiframe.width(w).height(s.getDimensions.height)
					}
				}
				return f.fn.qtip.log.error.call(s, 1, f.fn.qtip.constants.EVENT_WIDTH_UPDATED, "updateWidth")
			},
			updateStyle: function(w) {
				var z, A, x, y, B;
				if (!s.status.rendered) {
					return f.fn.qtip.log.error.call(s, 2, f.fn.qtip.constants.TOOLTIP_NOT_RENDERED, "updateStyle")
				} else {
					if (typeof w !== "string" || !f.fn.qtip.styles[w]) {
						return f.fn.qtip.log.error.call(s, 2, f.fn.qtip.constants.STYLE_NOT_DEFINED, "updateStyle")
					}
				}
				s.options.style = a.call(s, f.fn.qtip.styles[w], s.options.user.style);
				s.elements.content.css(q(s.options.style));
				if (s.options.content.title.text !== false) {
					s.elements.title.css(q(s.options.style.title, true))
				}
				s.elements.contentWrapper.css({
					borderColor: s.options.style.border.color
				});
				if (s.options.style.tip.corner !== false) {
					if (f("<canvas>").get(0).getContext) {
						z = s.elements.tooltip.find(".qtip-tip canvas:first");
						x = z.get(0).getContext("2d");
						x.clearRect(0, 0, 300, 300);
						y = z.parent("div[rel]:first").attr("rel");
						B = b(y, s.options.style.tip.size.width, s.options.style.tip.size.height);
						h.call(s, z, B, s.options.style.tip.color || s.options.style.border.color)
					} else {
						if (f.browser.msie) {
							z = s.elements.tooltip.find('.qtip-tip [nodeName="shape"]');
							z.attr("fillcolor", s.options.style.tip.color || s.options.style.border.color)
						}
					}
				}
				if (s.options.style.border.radius > 0) {
					s.elements.tooltip.find(".qtip-betweenCorners").css({
						backgroundColor: s.options.style.border.color
					});
					if (f("<canvas>").get(0).getContext) {
						A = g(s.options.style.border.radius);
						s.elements.tooltip.find(".qtip-wrapper canvas").each(function() {
							x = f(this).get(0).getContext("2d");
							x.clearRect(0, 0, 300, 300);
							y = f(this).parent("div[rel]:first").attr("rel");
							r.call(s, f(this), A[y], s.options.style.border.radius, s.options.style.border.color)
						})
					} else {
						if (f.browser.msie) {
							s.elements.tooltip.find('.qtip-wrapper [nodeName="arc"]').each(function() {
								f(this).attr("fillcolor", s.options.style.border.color)
							})
						}
					}
				}
				return f.fn.qtip.log.error.call(s, 1, f.fn.qtip.constants.EVENT_STYLE_UPDATED, "updateStyle")
			},
			updateContent: function(A, y) {
				var z, x, w;
				if (!s.status.rendered) {
					return f.fn.qtip.log.error.call(s, 2, f.fn.qtip.constants.TOOLTIP_NOT_RENDERED, "updateContent")
				} else {
					if (!A) {
						return f.fn.qtip.log.error.call(s, 2, f.fn.qtip.constants.NO_CONTENT_PROVIDED, "updateContent")
					}
				}
				z = s.beforeContentUpdate.call(s, A);
				if (typeof z == "string") {
					A = z
				} else {
					if (z === false) {
						return
					}
				}
				if (f.browser.msie) {
					s.elements.contentWrapper.children().css({
						zoom: "normal"
					})
				}
				if (A.jquery && A.length > 0) {
					A.clone(true).appendTo(s.elements.content).show()
				} else {
					s.elements.content.html(A)
				}
				x = s.elements.content.find("img[complete=false]");
				if (x.length > 0) {
					w = 0;
					x.each(function(C) {
						f('<img src="' + f(this).attr("src") + '" />').load(function() {
							if (++w == x.length) {
								B()
							}
						})
					})
				} else {
					B()
				}
				function B() {
					s.updateWidth();
					if (y !== false) {
						if (s.options.position.type !== "static") {
							s.updatePosition(s.elements.tooltip.is(":visible"), true)
						}
						if (s.options.style.tip.corner !== false) {
							n.call(s)
						}
					}
				}
				s.onContentUpdate.call(s);
				return f.fn.qtip.log.error.call(s, 1, f.fn.qtip.constants.EVENT_CONTENT_UPDATED, "loadContent")
			},
			loadContent: function(w, z, A) {
				var y;
				if (!s.status.rendered) {
					return f.fn.qtip.log.error.call(s, 2, f.fn.qtip.constants.TOOLTIP_NOT_RENDERED, "loadContent")
				}
				y = s.beforeContentLoad.call(s);
				if (y === false) {
					return s
				}
				if (A == "post") {
					f.post(w, z, x)
				} else {
					f.get(w, z, x)
				}
				function x(B) {
					s.onContentLoad.call(s);
					f.fn.qtip.log.error.call(s, 1, f.fn.qtip.constants.EVENT_CONTENT_LOADED, "loadContent");
					s.updateContent(B)
				}
				return s
			},
			updateTitle: function(w) {
				if (!s.status.rendered) {
					return f.fn.qtip.log.error.call(s, 2, f.fn.qtip.constants.TOOLTIP_NOT_RENDERED, "updateTitle")
				} else {
					if (!w) {
						return f.fn.qtip.log.error.call(s, 2, f.fn.qtip.constants.NO_CONTENT_PROVIDED, "updateTitle")
					}
				}
				returned = s.beforeTitleUpdate.call(s);
				if (returned === false) {
					return s
				}
				if (s.elements.button) {
					s.elements.button = s.elements.button.clone(true)
				}
				s.elements.title.html(w);
				if (s.elements.button) {
					s.elements.title.prepend(s.elements.button)
				}
				s.onTitleUpdate.call(s);
				return f.fn.qtip.log.error.call(s, 1, f.fn.qtip.constants.EVENT_TITLE_UPDATED, "updateTitle")
			},
			focus: function(A) {
				var y, x, w, z;
				if (!s.status.rendered) {
					return f.fn.qtip.log.error.call(s, 2, f.fn.qtip.constants.TOOLTIP_NOT_RENDERED, "focus")
				} else {
					if (s.options.position.type == "static") {
						return f.fn.qtip.log.error.call(s, 1, f.fn.qtip.constants.CANNOT_FOCUS_STATIC, "focus")
					}
				}
				y = parseInt(s.elements.tooltip.css("z-index"));
				x = 6000 + f("div.qtip[qtip]").length - 1;
				if (!s.status.focused && y !== x) {
					z = s.beforeFocus.call(s, A);
					if (z === false) {
						return s
					}
					f("div.qtip[qtip]").not(s.elements.tooltip).each(function() {
						if (f(this).qtip("api").status.rendered === true) {
							w = parseInt(f(this).css("z-index"));
							if (typeof w == "number" && w > -1) {
								f(this).css({
									zIndex: parseInt(f(this).css("z-index")) - 1
								})
							}
							f(this).qtip("api").status.focused = false
						}
					});
					s.elements.tooltip.css({
						zIndex: x
					});
					s.status.focused = true;
					s.onFocus.call(s, A);
					f.fn.qtip.log.error.call(s, 1, f.fn.qtip.constants.EVENT_FOCUSED, "focus")
				}
				return s
			},
			disable: function(w) {
				if (!s.status.rendered) {
					return f.fn.qtip.log.error.call(s, 2, f.fn.qtip.constants.TOOLTIP_NOT_RENDERED, "disable")
				}
				if (w) {
					if (!s.status.disabled) {
						s.status.disabled = true;
						f.fn.qtip.log.error.call(s, 1, f.fn.qtip.constants.EVENT_DISABLED, "disable")
					} else {
						f.fn.qtip.log.error.call(s, 1, f.fn.qtip.constants.TOOLTIP_ALREADY_DISABLED, "disable")
					}
				} else {
					if (s.status.disabled) {
						s.status.disabled = false;
						f.fn.qtip.log.error.call(s, 1, f.fn.qtip.constants.EVENT_ENABLED, "disable")
					} else {
						f.fn.qtip.log.error.call(s, 1, f.fn.qtip.constants.TOOLTIP_ALREADY_ENABLED, "disable")
					}
				}
				return s
			},
			destroy: function() {
				var w, x, y;
				x = s.beforeDestroy.call(s);
				if (x === false) {
					return s
				}
				if (s.status.rendered) {
					s.options.show.when.target.unbind("mousemove.qtip", s.updatePosition);
					s.options.show.when.target.unbind("mouseout.qtip", s.hide);
					s.options.show.when.target.unbind(s.options.show.when.event + ".qtip");
					s.options.hide.when.target.unbind(s.options.hide.when.event + ".qtip");
					s.elements.tooltip.unbind(s.options.hide.when.event + ".qtip");
					s.elements.tooltip.unbind("mouseover.qtip", s.focus);
					s.elements.tooltip.remove()
				} else {
					s.options.show.when.target.unbind(s.options.show.when.event + ".qtip-create")
				}
				if (typeof s.elements.target.data("qtip") == "object") {
					y = s.elements.target.data("qtip").interfaces;
					if (typeof y == "object" && y.length > 0) {
						for (w = 0; w < y.length - 1; w++) {
							if (y[w].id == s.id) {
								y.splice(w, 1)
							}
						}
					}
				}
				delete f.fn.qtip.interfaces[s.id];
				if (typeof y == "object" && y.length > 0) {
					s.elements.target.data("qtip").current = y.length - 1
				} else {
					s.elements.target.removeData("qtip")
				}
				s.onDestroy.call(s);
				f.fn.qtip.log.error.call(s, 1, f.fn.qtip.constants.EVENT_DESTROYED, "destroy");
				return s.elements.target
			},
			getPosition: function() {
				var w, x;
				if (!s.status.rendered) {
					return f.fn.qtip.log.error.call(s, 2, f.fn.qtip.constants.TOOLTIP_NOT_RENDERED, "getPosition")
				}
				w = (s.elements.tooltip.css("display") !== "none") ? false: true;
				if (w) {
					s.elements.tooltip.css({
						visiblity: "hidden"
					}).show()
				}
				x = s.elements.tooltip.offset();
				if (w) {
					s.elements.tooltip.css({
						visiblity: "visible"
					}).hide()
				}
				return x
			},
			getDimensions: function() {
				var w, x;
				if (!s.status.rendered) {
					return f.fn.qtip.log.error.call(s, 2, f.fn.qtip.constants.TOOLTIP_NOT_RENDERED, "getDimensions")
				}
				w = (!s.elements.tooltip.is(":visible")) ? true: false;
				if (w) {
					s.elements.tooltip.css({
						visiblity: "hidden"
					}).show()
				}
				x = {
					height: s.elements.tooltip.outerHeight(),
					width: s.elements.tooltip.outerWidth()
				};
				if (w) {
					s.elements.tooltip.css({
						visiblity: "visible"
					}).hide()
				}
				return x
			}
		})
	}
	function p() {
		var s, w, u, t, v, y, x;
		s = this;
		s.beforeRender.call(s);
		s.status.rendered = true;
		s.elements.tooltip = '<div qtip="' + s.id + '" class="qtip ' + (s.options.style.classes.tooltip || s.options.style) + '"style="display:none; -moz-border-radius:0; -webkit-border-radius:0; border-radius:0;position:' + s.options.position.type + ';">  <div class="qtip-wrapper" style="position:relative; overflow:hidden; text-align:left;">    <div class="qtip-contentWrapper" style="overflow:hidden;">       <div class="qtip-content ' + s.options.style.classes.content + '"></div></div></div></div>';
		s.elements.tooltip = f(s.elements.tooltip);
		s.elements.tooltip.appendTo(s.options.position.container);
		s.elements.tooltip.data("qtip", {
			current: 0,
			interfaces: [s]
		});
		s.elements.wrapper = s.elements.tooltip.children("div:first");
		s.elements.contentWrapper = s.elements.wrapper.children("div:first").css({
			background: s.options.style.background
		});
		s.elements.content = s.elements.contentWrapper.children("div:first").css(q(s.options.style));
		if (f.browser.msie) {
			s.elements.wrapper.add(s.elements.content).css({
				zoom: 1
			})
		}
		if (s.options.hide.when.event == "unfocus") {
			s.elements.tooltip.attr("unfocus", true)
		}
		if (typeof s.options.style.width.value == "number") {
			s.updateWidth()
		}
		if (f("<canvas>").get(0).getContext || f.browser.msie) {
			if (s.options.style.border.radius > 0) {
				m.call(s)
			} else {
				s.elements.contentWrapper.css({
					border: s.options.style.border.width + "px solid " + s.options.style.border.color
				})
			}
			if (s.options.style.tip.corner !== false) {
				e.call(s)
			}
		} else {
			s.elements.contentWrapper.css({
				border: s.options.style.border.width + "px solid " + s.options.style.border.color
			});
			s.options.style.border.radius = 0;
			s.options.style.tip.corner = false;
			f.fn.qtip.log.error.call(s, 2, f.fn.qtip.constants.CANVAS_VML_NOT_SUPPORTED, "render")
		}
		if ((typeof s.options.content.text == "string" && s.options.content.text.length > 0) || (s.options.content.text.jquery && s.options.content.text.length > 0)) {
			u = s.options.content.text
		} else {
			if (typeof s.elements.target.attr("title") == "string" && s.elements.target.attr("title").length > 0) {
				u = s.elements.target.attr("title").replace("\\n", "<br />");
				s.elements.target.attr("title", "")
			} else {
				if (typeof s.elements.target.attr("alt") == "string" && s.elements.target.attr("alt").length > 0) {
					u = s.elements.target.attr("alt").replace("\\n", "<br />");
					s.elements.target.attr("alt", "")
				} else {
					u = " ";
					f.fn.qtip.log.error.call(s, 1, f.fn.qtip.constants.NO_VALID_CONTENT, "render")
				}
			}
		}
		if (s.options.content.title.text !== false) {
			j.call(s)
		}
		s.updateContent(u);
		l.call(s);
		if (s.options.show.ready === true) {
			s.show()
		}
		if (s.options.content.url !== false) {
			t = s.options.content.url;
			v = s.options.content.data;
			y = s.options.content.method || "get";
			s.loadContent(t, v, y)
		}
		s.onRender.call(s);
		f.fn.qtip.log.error.call(s, 1, f.fn.qtip.constants.EVENT_RENDERED, "render")
	}
	function m() {
		var F, z, t, B, x, E, u, G, D, y, w, C, A, s, v;
		F = this;
		F.elements.wrapper.find(".qtip-borderBottom, .qtip-borderTop").remove();
		t = F.options.style.border.width;
		B = F.options.style.border.radius;
		x = F.options.style.border.color || F.options.style.tip.color;
		E = g(B);
		u = {};
		for (z in E) {
			u[z] = '<div rel="' + z + '" style="' + ((z.search(/Left/) !== -1) ? "left": "right") + ":0; position:absolute; height:" + B + "px; width:" + B + 'px; overflow:hidden; line-height:0.1px; font-size:1px">';
			if (f("<canvas>").get(0).getContext) {
				u[z] += '<canvas height="' + B + '" width="' + B + '" style="vertical-align: top"></canvas>'
			} else {
				if (f.browser.msie) {
					G = B * 2 + 3;
					u[z] += '<v:arc stroked="false" fillcolor="' + x + '" startangle="' + E[z][0] + '" endangle="' + E[z][1] + '" style="width:' + G + "px; height:" + G + "px; margin-top:" + ((z.search(/bottom/) !== -1) ? -2 : -1) + "px; margin-left:" + ((z.search(/Right/) !== -1) ? E[z][2] - 3.5 : -1) + 'px; vertical-align:top; display:inline-block; behavior:url(#default#VML)"></v:arc>'
				}
			}
			u[z] += "</div>"
		}
		D = F.getDimensions().width - (Math.max(t, B) * 2);
		y = '<div class="qtip-betweenCorners" style="height:' + B + "px; width:" + D + "px; overflow:hidden; background-color:" + x + '; line-height:0.1px; font-size:1px;">';
		w = '<div class="qtip-borderTop" dir="ltr" style="height:' + B + "px; margin-left:" + B + 'px; line-height:0.1px; font-size:1px; padding:0;">' + u.topLeft + u.topRight + y;
		F.elements.wrapper.prepend(w);
		C = '<div class="qtip-borderBottom" dir="ltr" style="height:' + B + "px; margin-left:" + B + 'px; line-height:0.1px; font-size:1px; padding:0;">' + u.bottomLeft + u.bottomRight + y;
		F.elements.wrapper.append(C);
		if (f("<canvas>").get(0).getContext) {
			F.elements.wrapper.find("canvas").each(function() {
				A = E[f(this).parent("[rel]:first").attr("rel")];
				r.call(F, f(this), A, B, x)
			})
		} else {
			if (f.browser.msie) {
				F.elements.tooltip.append('<v:image style="behavior:url(#default#VML);"></v:image>')
			}
		}
		s = Math.max(B, (B + (t - B)));
		v = Math.max(t - B, 0);
		F.elements.contentWrapper.css({
			border: "0px solid " + x,
			borderWidth: v + "px " + s + "px"
		})
	}
	function r(u, w, s, t) {
		var v = u.get(0).getContext("2d");
		v.fillStyle = t;
		v.beginPath();
		v.arc(w[0], w[1], s, 0, Math.PI * 2, false);
		v.fill()
	}
	function e(v) {
		var t, s, x, u, w;
		t = this;
		if (t.elements.tip !== null) {
			t.elements.tip.remove()
		}
		s = t.options.style.tip.color || t.options.style.border.color;
		if (t.options.style.tip.corner === false) {
			return
		} else {
			if (!v) {
				v = t.options.style.tip.corner
			}
		}
		x = b(v, t.options.style.tip.size.width, t.options.style.tip.size.height);
		t.elements.tip = '<div class="' + t.options.style.classes.tip + '" dir="ltr" rel="' + v + '" style="position:absolute; height:' + t.options.style.tip.size.height + "px; width:" + t.options.style.tip.size.width + 'px; margin:0 auto; line-height:0.1px; font-size:1px;">';
		if (f("<canvas>").get(0).getContext) {
			t.elements.tip += '<canvas height="' + t.options.style.tip.size.height + '" width="' + t.options.style.tip.size.width + '"></canvas>'
		} else {
			if (f.browser.msie) {
				u = t.options.style.tip.size.width + "," + t.options.style.tip.size.height;
				w = "m" + x[0][0] + "," + x[0][1];
				w += " l" + x[1][0] + "," + x[1][1];
				w += " " + x[2][0] + "," + x[2][1];
				w += " xe";
				t.elements.tip += '<v:shape fillcolor="' + s + '" stroked="false" filled="true" path="' + w + '" coordsize="' + u + '" style="width:' + t.options.style.tip.size.width + "px; height:" + t.options.style.tip.size.height + "px; line-height:0.1px; display:inline-block; behavior:url(#default#VML); vertical-align:" + ((v.search(/top/) !== -1) ? "bottom": "top") + '"></v:shape>';
				t.elements.tip += '<v:image style="behavior:url(#default#VML);"></v:image>';
				t.elements.contentWrapper.css("position", "relative")
			}
		}
		t.elements.tooltip.prepend(t.elements.tip + "</div>");
		t.elements.tip = t.elements.tooltip.find("." + t.options.style.classes.tip).eq(0);
		if (f("<canvas>").get(0).getContext) {
			h.call(t, t.elements.tip.find("canvas:first"), x, s)
		}
		if (v.search(/top/) !== -1 && f.browser.msie && parseInt(f.browser.version.charAt(0)) === 6) {
			t.elements.tip.css({
				marginTop: -4
			})
		}
		n.call(t, v)
	}
	function h(t, v, s) {
		var u = t.get(0).getContext("2d");
		u.fillStyle = s;
		u.beginPath();
		u.moveTo(v[0][0], v[0][1]);
		u.lineTo(v[1][0], v[1][1]);
		u.lineTo(v[2][0], v[2][1]);
		u.fill()
	}
	function n(u) {
		var t, w, s, x, v;
		t = this;
		if (t.options.style.tip.corner === false || !t.elements.tip) {
			return
		}
		if (!u) {
			u = t.elements.tip.attr("rel")
		}
		w = positionAdjust = (f.browser.msie) ? 1 : 0;
		t.elements.tip.css(u.match(/left|right|top|bottom/)[0], 0);
		if (u.search(/top|bottom/) !== -1) {
			if (f.browser.msie) {
				if (parseInt(f.browser.version.charAt(0)) === 6) {
					positionAdjust = (u.search(/top/) !== -1) ? -3 : 1
				} else {
					positionAdjust = (u.search(/top/) !== -1) ? 1 : 2
				}
			}
			if (u.search(/Middle/) !== -1) {
				t.elements.tip.css({
					left: "50%",
					marginLeft: -(t.options.style.tip.size.width / 2)
				})
			} else {
				if (u.search(/Left/) !== -1) {
					t.elements.tip.css({
						left: t.options.style.border.radius - w
					})
				} else {
					if (u.search(/Right/) !== -1) {
						t.elements.tip.css({
							right: t.options.style.border.radius + w
						})
					}
				}
			}
			if (u.search(/top/) !== -1) {
				t.elements.tip.css({
					top: -positionAdjust
				})
			} else {
				t.elements.tip.css({
					bottom: positionAdjust
				})
			}
		} else {
			if (u.search(/left|right/) !== -1) {
				if (f.browser.msie) {
					positionAdjust = (parseInt(f.browser.version.charAt(0)) === 6) ? 1 : ((u.search(/left/) !== -1) ? 1 : 2)
				}
				if (u.search(/Middle/) !== -1) {
					t.elements.tip.css({
						top: "50%",
						marginTop: -(t.options.style.tip.size.height / 2)
					})
				} else {
					if (u.search(/Top/) !== -1) {
						t.elements.tip.css({
							top: t.options.style.border.radius - w
						})
					} else {
						if (u.search(/Bottom/) !== -1) {
							t.elements.tip.css({
								bottom: t.options.style.border.radius + w
							})
						}
					}
				}
				if (u.search(/left/) !== -1) {
					t.elements.tip.css({
						left: -positionAdjust
					})
				} else {
					t.elements.tip.css({
						right: positionAdjust
					})
				}
			}
		}
		s = "padding-" + u.match(/left|right|top|bottom/)[0];
		x = t.options.style.tip.size[(s.search(/left|right/) !== -1) ? "width": "height"];
		t.elements.tooltip.css("padding", 0);
		t.elements.tooltip.css(s, x);
		if (f.browser.msie && parseInt(f.browser.version.charAt(0)) == 6) {
			v = parseInt(t.elements.tip.css("margin-top")) || 0;
			v += parseInt(t.elements.content.css("margin-top")) || 0;
			t.elements.tip.css({
				marginTop: v
			})
		}
	}
	function j() {
		var s = this;
		if (s.elements.title !== null) {
			s.elements.title.remove()
		}
		s.elements.title = f('<div class="' + s.options.style.classes.title + '">').css(q(s.options.style.title, true)).css({
			zoom: (f.browser.msie) ? 1 : 0
		}).prependTo(s.elements.contentWrapper);
		if (s.options.content.title.text) {
			s.updateTitle.call(s, s.options.content.title.text)
		}
		if (s.options.content.title.button !== false && typeof s.options.content.title.button == "string") {
			s.elements.button = f('<a class="' + s.options.style.classes.button + '" style="float:right; position: relative"></a>').css(q(s.options.style.button, true)).html(s.options.content.title.button).prependTo(s.elements.title).click(function(t) {
				if (!s.status.disabled) {
					s.hide(t)
				}
			})
		}
	}
	function l() {
		var t, v, u, s;
		t = this;
		v = t.options.show.when.target;
		u = t.options.hide.when.target;
		if (t.options.hide.fixed) {
			u = u.add(t.elements.tooltip)
		}
		if (t.options.hide.when.event == "inactive") {
			s = ["click", "dblclick", "mousedown", "mouseup", "mousemove", "mouseout", "mouseenter", "mouseleave", "mouseover"];
			function y(z) {
				if (t.status.disabled === true) {
					return
				}
				clearTimeout(t.timers.inactive);
				t.timers.inactive = setTimeout(function() {
					f(s).each(function() {
						u.unbind(this + ".qtip-inactive");
						t.elements.content.unbind(this + ".qtip-inactive")
					});
					t.hide(z)
				},
				t.options.hide.delay)
			}
		} else {
			if (t.options.hide.fixed === true) {
				t.elements.tooltip.bind("mouseover.qtip",
				function() {
					if (t.status.disabled === true) {
						return
					}
					clearTimeout(t.timers.hide)
				})
			}
		}
		function x(z) {
			if (t.status.disabled === true) {
				return
			}
			if (t.options.hide.when.event == "inactive") {
				f(s).each(function() {
					u.bind(this + ".qtip-inactive", y);
					t.elements.content.bind(this + ".qtip-inactive", y)
				});
				y()
			}
			clearTimeout(t.timers.show);
			clearTimeout(t.timers.hide);
			t.timers.show = setTimeout(function() {
				t.show(z)
			},
			t.options.show.delay)
		}
		function w(z) {
			if (t.status.disabled === true) {
				return
			}
			if (t.options.hide.fixed === true && t.options.hide.when.event.search(/mouse(out|leave)/i) !== -1 && f(z.relatedTarget).parents("div.qtip[qtip]").length > 0) {
				z.stopPropagation();
				z.preventDefault();
				clearTimeout(t.timers.hide);
				return false
			}
			clearTimeout(t.timers.show);
			clearTimeout(t.timers.hide);
			t.elements.tooltip.stop(true, true);
			t.timers.hide = setTimeout(function() {
				t.hide(z)
			},
			t.options.hide.delay)
		}
		if ((t.options.show.when.target.add(t.options.hide.when.target).length === 1 && t.options.show.when.event == t.options.hide.when.event && t.options.hide.when.event !== "inactive") || t.options.hide.when.event == "unfocus") {
			t.cache.toggle = 0;
			v.bind(t.options.show.when.event + ".qtip",
			function(z) {
				if (t.cache.toggle == 0) {
					x(z)
				} else {
					w(z)
				}
			})
		} else {
			v.bind(t.options.show.when.event + ".qtip", x);
			if (t.options.hide.when.event !== "inactive") {
				u.bind(t.options.hide.when.event + ".qtip", w)
			}
		}
		if (t.options.position.type.search(/(fixed|absolute)/) !== -1) {
			t.elements.tooltip.bind("mouseover.qtip", t.focus)
		}
		if (t.options.position.target === "mouse" && t.options.position.type !== "static") {
			v.bind("mousemove.qtip",
			function(z) {
				t.cache.mouse = {
					x: z.pageX,
					y: z.pageY
				};
				if (t.status.disabled === false && t.options.position.adjust.mouse === true && t.options.position.type !== "static" && t.elements.tooltip.css("display") !== "none") {
					t.updatePosition(z)
				}
			})
		}
	}
	function o(u, v, A) {
		var z, s, x, y, t, w;
		z = this;
		if (A.corner == "center") {
			return v.position
		}
		s = f.extend({},
		u);
		y = {
			x: false,
			y: false
		};
		t = {
			left: (s.left < f.fn.qtip.cache.screen.scroll.left),
			right: (s.left + A.dimensions.width + 2 >= f.fn.qtip.cache.screen.width + f.fn.qtip.cache.screen.scroll.left),
			top: (s.top < f.fn.qtip.cache.screen.scroll.top),
			bottom: (s.top + A.dimensions.height + 2 >= f.fn.qtip.cache.screen.height + f.fn.qtip.cache.screen.scroll.top)
		};
		x = {
			left: (t.left && (A.corner.search(/right/i) != -1 || (A.corner.search(/right/i) == -1 && !t.right))),
			right: (t.right && (A.corner.search(/left/i) != -1 || (A.corner.search(/left/i) == -1 && !t.left))),
			top: (t.top && A.corner.search(/top/i) == -1),
			bottom: (t.bottom && A.corner.search(/bottom/i) == -1)
		};
		if (x.left) {
			if (z.options.position.target !== "mouse") {
				s.left = v.position.left + v.dimensions.width
			} else {
				s.left = z.cache.mouse.x
			}
			y.x = "Left"
		} else {
			if (x.right) {
				if (z.options.position.target !== "mouse") {
					s.left = v.position.left - A.dimensions.width
				} else {
					s.left = z.cache.mouse.x - A.dimensions.width
				}
				y.x = "Right"
			}
		}
		if (x.top) {
			if (z.options.position.target !== "mouse") {
				s.top = v.position.top + v.dimensions.height
			} else {
				s.top = z.cache.mouse.y
			}
			y.y = "top"
		} else {
			if (x.bottom) {
				if (z.options.position.target !== "mouse") {
					s.top = v.position.top - A.dimensions.height
				} else {
					s.top = z.cache.mouse.y - A.dimensions.height
				}
				y.y = "bottom"
			}
		}
		if (s.left < 0) {
			s.left = u.left;
			y.x = false
		}
		if (s.top < 0) {
			s.top = u.top;
			y.y = false
		}
		if (z.options.style.tip.corner !== false) {
			s.corner = new String(A.corner);
			if (y.x !== false) {
				s.corner = s.corner.replace(/Left|Right|Middle/, y.x)
			}
			if (y.y !== false) {
				s.corner = s.corner.replace(/top|bottom/, y.y)
			}
			if (s.corner !== z.elements.tip.attr("rel")) {
				e.call(z, s.corner)
			}
		}
		return s
	}
	function q(u, t) {
		var v, s;
		v = f.extend(true, {},
		u);
		for (s in v) {
			if (t === true && s.search(/(tip|classes)/i) !== -1) {
				delete v[s]
			} else {
				if (!t && s.search(/(width|border|tip|title|classes|user)/i) !== -1) {
					delete v[s]
				}
			}
		}
		return v
	}
	function c(s) {
		if (typeof s.tip !== "object") {
			s.tip = {
				corner: s.tip
			}
		}
		if (typeof s.tip.size !== "object") {
			s.tip.size = {
				width: s.tip.size,
				height: s.tip.size
			}
		}
		if (typeof s.border !== "object") {
			s.border = {
				width: s.border
			}
		}
		if (typeof s.width !== "object") {
			s.width = {
				value: s.width
			}
		}
		if (typeof s.width.max == "string") {
			s.width.max = parseInt(s.width.max.replace(/([0-9]+)/i, "$1"))
		}
		if (typeof s.width.min == "string") {
			s.width.min = parseInt(s.width.min.replace(/([0-9]+)/i, "$1"))
		}
		if (typeof s.tip.size.x == "number") {
			s.tip.size.width = s.tip.size.x;
			delete s.tip.size.x
		}
		if (typeof s.tip.size.y == "number") {
			s.tip.size.height = s.tip.size.y;
			delete s.tip.size.y
		}
		return s
	}
	function a() {
		var s, t, u, x, v, w;
		s = this;
		u = [true, {}];
		for (t = 0; t < arguments.length; t++) {
			u.push(arguments[t])
		}
		x = [f.extend.apply(f, u)];
		while (typeof x[0].name == "string") {
			x.unshift(c(f.fn.qtip.styles[x[0].name]))
		}
		x.unshift(true, {
			classes: {
				tooltip: "qtip-" + (arguments[0].name || "defaults")
			}
		},
		f.fn.qtip.styles.defaults);
		v = f.extend.apply(f, x);
		w = (f.browser.msie) ? 1 : 0;
		v.tip.size.width += w;
		v.tip.size.height += w;
		if (v.tip.size.width % 2 > 0) {
			v.tip.size.width += 1
		}
		if (v.tip.size.height % 2 > 0) {
			v.tip.size.height += 1
		}
		if (v.tip.corner === true) {
			v.tip.corner = (s.options.position.corner.tooltip === "center") ? false: s.options.position.corner.tooltip
		}
		return v
	}
	function b(v, u, t) {
		var s = {
			bottomRight: [[0, 0], [u, t], [u, 0]],
			bottomLeft: [[0, 0], [u, 0], [0, t]],
			topRight: [[0, t], [u, 0], [u, t]],
			topLeft: [[0, 0], [0, t], [u, t]],
			topMiddle: [[0, t], [u / 2, 0], [u, t]],
			bottomMiddle: [[0, 0], [u, 0], [u / 2, t]],
			rightMiddle: [[0, 0], [u, t / 2], [0, t]],
			leftMiddle: [[u, 0], [u, t], [0, t / 2]]
		};
		s.leftTop = s.bottomRight;
		s.rightTop = s.bottomLeft;
		s.leftBottom = s.topRight;
		s.rightBottom = s.topLeft;
		return s[v]
	}
	function g(s) {
		var t;
		if (f("<canvas>").get(0).getContext) {
			t = {
				topLeft: [s, s],
				topRight: [0, s],
				bottomLeft: [s, 0],
				bottomRight: [0, 0]
			}
		} else {
			if (f.browser.msie) {
				t = {
					topLeft: [ - 90, 90, 0],
					topRight: [ - 90, 90, -s],
					bottomLeft: [90, 270, 0],
					bottomRight: [90, 270, -s]
				}
			}
		}
		return t
	}
	function k() {
		var s, t, u;
		s = this;
		u = s.getDimensions();
		t = '<iframe class="qtip-bgiframe" frameborder="0" tabindex="-1" src="javascript:false" style="display:block; position:absolute; z-index:-1; filter:alpha(opacity=\'0\'); border: 1px solid red; height:' + u.height + "px; width:" + u.width + 'px" />';
		s.elements.bgiframe = s.elements.wrapper.prepend(t).children(".qtip-bgiframe:first")
	}
	f(document).ready(function() {
		f.fn.qtip.cache = {
			screen: {
				scroll: {
					left: f(window).scrollLeft(),
					top: f(window).scrollTop()
				},
				width: f(window).width(),
				height: f(window).height()
			}
		};
		var s;
		f(window).bind("resize scroll",
		function(t) {
			clearTimeout(s);
			s = setTimeout(function() {
				if (t.type === "scroll") {
					f.fn.qtip.cache.screen.scroll = {
						left: f(window).scrollLeft(),
						top: f(window).scrollTop()
					}
				} else {
					f.fn.qtip.cache.screen.width = f(window).width();
					f.fn.qtip.cache.screen.height = f(window).height()
				}
				for (i = 0; i < f.fn.qtip.interfaces.length; i++) {
					var u = f.fn.qtip.interfaces[i];
					if (u.status.rendered === true && (u.options.position.type !== "static" || u.options.position.adjust.scroll && t.type === "scroll" || u.options.position.adjust.resize && t.type === "resize")) {
						u.updatePosition(t, true)
					}
				}
			},
			100)
		});
		f(document).bind("mousedown.qtip",
		function(t) {
			if (f(t.target).parents("div.qtip").length === 0) {
				f(".qtip[unfocus]").each(function() {
					var u = f(this).qtip("api");
					if (f(this).is(":visible") && !u.status.disabled && f(t.target).add(u.elements.target).length > 1) {
						u.hide(t)
					}
				})
			}
		})
	});
	f.fn.qtip.interfaces = [];
	f.fn.qtip.log = {
		error: function() {
			return this
		}
	};
	f.fn.qtip.constants = {};
	f.fn.qtip.defaults = {
		content: {
			prerender: false,
			text: false,
			url: false,
			data: null,
			title: {
				text: false,
				button: false
			}
		},
		position: {
			target: false,
			corner: {
				target: "bottomRight",
				tooltip: "topLeft"
			},
			adjust: {
				x: 0,
				y: 0,
				mouse: true,
				screen: false,
				scroll: true,
				resize: true
			},
			type: "absolute",
			container: false
		},
		show: {
			when: {
				target: false,
				event: "mouseover"
			},
			effect: {
				type: "fade",
				length: 100
			},
			delay: 140,
			solo: false,
			ready: false
		},
		hide: {
			when: {
				target: false,
				event: "mouseout"
			},
			effect: {
				type: "fade",
				length: 100
			},
			delay: 0,
			fixed: false
		},
		api: {
			beforeRender: function() {},
			onRender: function() {},
			beforePositionUpdate: function() {},
			onPositionUpdate: function() {},
			beforeShow: function() {},
			onShow: function() {},
			beforeHide: function() {},
			onHide: function() {},
			beforeContentUpdate: function() {},
			onContentUpdate: function() {},
			beforeContentLoad: function() {},
			onContentLoad: function() {},
			beforeTitleUpdate: function() {},
			onTitleUpdate: function() {},
			beforeDestroy: function() {},
			onDestroy: function() {},
			beforeFocus: function() {},
			onFocus: function() {}
		}
	};
	f.fn.qtip.styles = {
		defaults: {
			background: "white",
			color: "#111",
			overflow: "hidden",
			textAlign: "left",
			width: {
				min: 0,
				max: 250
			},
			padding: "5px 9px",
			border: {
				width: 1,
				radius: 0,
				color: "#d3d3d3"
			},
			tip: {
				corner: false,
				color: false,
				size: {
					width: 13,
					height: 13
				},
				opacity: 1
			},
			title: {
				background: "#e1e1e1",
				fontWeight: "bold",
				padding: "7px 12px"
			},
			button: {
				cursor: "pointer"
			},
			classes: {
				target: "",
				tip: "qtip-tip",
				title: "qtip-title",
				button: "qtip-button",
				content: "qtip-content",
				active: "qtip-active"
			}
		},
		cream: {
			border: {
				width: 3,
				radius: 0,
				color: "#F9E98E"
			},
			title: {
				background: "#F0DE7D",
				color: "#A27D35"
			},
			background: "#FBF7AA",
			color: "#A27D35",
			classes: {
				tooltip: "qtip-cream"
			}
		},
		light: {
			border: {
				width: 3,
				radius: 0,
				color: "#E2E2E2"
			},
			title: {
				background: "#f1f1f1",
				color: "#454545"
			},
			background: "white",
			color: "#454545",
			classes: {
				tooltip: "qtip-light"
			}
		},
		dark: {
			border: {
				width: 3,
				radius: 0,
				color: "#303030"
			},
			title: {
				background: "#404040",
				color: "#f3f3f3"
			},
			background: "#505050",
			color: "#f3f3f3",
			classes: {
				tooltip: "qtip-dark"
			}
		},
		red: {
			border: {
				width: 3,
				radius: 0,
				color: "#CE6F6F"
			},
			title: {
				background: "#f28279",
				color: "#9C2F2F"
			},
			background: "#F79992",
			color: "#9C2F2F",
			classes: {
				tooltip: "qtip-red"
			}
		},
		green: {
			border: {
				width: 3,
				radius: 0,
				color: "#A9DB66"
			},
			title: {
				background: "#b9db8c",
				color: "#58792E"
			},
			background: "#CDE6AC",
			color: "#58792E",
			classes: {
				tooltip: "qtip-green"
			}
		},
		blue: {
			border: {
				width: 3,
				radius: 0,
				color: "#ADD9ED"
			},
			title: {
				background: "#D0E9F5",
				color: "#5E99BD"
			},
			background: "#E5F6FE",
			color: "#4D9FBF",
			classes: {
				tooltip: "qtip-blue"
			}
		}
	}
})(jQuery);
