--- a/client/player/res/js/tooltip.js Tue Sep 14 13:38:47 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,329 +0,0 @@
-/**
- * @license
- * jQuery Tools 1.2.4 Tooltip - UI essentials
- *
- * NO COPYRIGHTS OR LICENSES. DO WHAT YOU LIKE.
- *
- * http://flowplayer.org/tools/tooltip/
- *
- * Since: November 2008
- * Date: Sun Aug 15 08:16:31 2010 +0000
- */
-(function($) {
- // static constructs
- $.tools = $.tools || {version: '1.2.4'};
-
- $.tools.tooltip = {
-
- conf: {
-
- // default effect variables
- effect: 'toggle',
- fadeOutSpeed: "fast",
- predelay: 0,
- delay: 30,
- opacity: 1,
- tip: 0,
-
- // 'top', 'bottom', 'right', 'left', 'center'
- position: ['top', 'center'],
- offset: [0, 0],
- relative: false,
- cancelDefault: true,
-
- // type to event mapping
- events: {
- def: "mouseenter,mouseleave",
- input: "focus,blur",
- widget: "focus mouseenter,blur mouseleave",
- tooltip: "mouseenter,mouseleave"
- },
-
- // 1.2
- layout: '<div/>',
- tipClass: 'tooltip'
- },
-
- addEffect: function(name, loadFn, hideFn) {
- effects[name] = [loadFn, hideFn];
- }
- };
-
-
- var effects = {
- toggle: [
- function(done) {
- var conf = this.getConf(), tip = this.getTip(), o = conf.opacity;
- if (o < 1) { tip.css({opacity: o}); }
- tip.show();
- done.call();
- },
-
- function(done) {
- this.getTip().hide();
- done.call();
- }
- ],
-
- fade: [
- function(done) {
- var conf = this.getConf();
- this.getTip().fadeTo(conf.fadeInSpeed, conf.opacity, done);
- },
- function(done) {
- this.getTip().fadeOut(this.getConf().fadeOutSpeed, done);
- }
- ]
- };
-
-
- /* calculate tip position relative to the trigger */
- function getPosition(trigger, tip, conf) {
-
-
- // get origin top/left position
- var top = conf.relative ? trigger.position().top : trigger.offset().top,
- left = conf.relative ? trigger.position().left : trigger.offset().left,
- pos = conf.position[0];
-
- top -= tip.outerHeight() - conf.offset[0];
- left += trigger.outerWidth() + conf.offset[1];
-
- // adjust Y
- var height = tip.outerHeight() + trigger.outerHeight();
- if (pos == 'center') { top += height / 2; }
- if (pos == 'bottom') { top += height; }
-
-
- // adjust X
- pos = conf.position[1];
- var width = tip.outerWidth() + trigger.outerWidth();
- if (pos == 'center') { left -= width / 2; }
- if (pos == 'left') { left -= width; }
-
- return {top: top, left: left};
- }
-
-
-
- function Tooltip(trigger, conf) {
-
- var self = this,
- fire = trigger.add(self),
- tip,
- timer = 0,
- pretimer = 0,
- title = trigger.attr("title"),
- tipAttr = trigger.attr("data-tooltip"),
- effect = effects[conf.effect],
- shown,
-
- // get show/hide configuration
- isInput = trigger.is(":input"),
- isWidget = isInput && trigger.is(":checkbox, :radio, select, :button, :submit"),
- type = trigger.attr("type"),
- evt = conf.events[type] || conf.events[isInput ? (isWidget ? 'widget' : 'input') : 'def'];
-
-
- // check that configuration is sane
- if (!effect) { throw "Nonexistent effect \"" + conf.effect + "\""; }
-
- evt = evt.split(/,\s*/);
- if (evt.length != 2) { throw "Tooltip: bad events configuration for " + type; }
-
-
- // trigger --> show
- trigger.bind(evt[0], function(e) {
-
- clearTimeout(timer);
- if (conf.predelay) {
- pretimer = setTimeout(function() { self.show(e); }, conf.predelay);
-
- } else {
- self.show(e);
- }
-
- // trigger --> hide
- }).bind(evt[1], function(e) {
- clearTimeout(pretimer);
- if (conf.delay) {
- timer = setTimeout(function() { self.hide(e); }, conf.delay);
-
- } else {
- self.hide(e);
- }
-
- });
-
-
- // remove default title
- if (title && conf.cancelDefault) {
- trigger.removeAttr("title");
- trigger.data("title", title);
- }
-
- $.extend(self, {
-
- show: function(e) {
-
- // tip not initialized yet
- if (!tip) {
-
- // data-tooltip
- if (tipAttr) {
- tip = $(tipAttr);
-
- // autogenerated tooltip
- } else if (title) {
- tip = $(conf.layout).addClass(conf.tipClass).appendTo(document.body)
- .hide().append(title);
-
- // single tip element for all
- } else if (conf.tip) {
- tip = $(conf.tip).eq(0);
-
- // manual tooltip
- } else {
- tip = trigger.next();
- if (!tip.length) { tip = trigger.parent().next(); }
- }
-
- if (!tip.length) { throw "Cannot find tooltip for " + trigger; }
- }
-
- if (self.isShown()) { return self; }
-
- // stop previous animation
- tip.stop(true, true);
-
- // get position
- var pos = getPosition(trigger, tip, conf);
-
-
- // onBeforeShow
- e = e || $.Event();
- e.type = "onBeforeShow";
- fire.trigger(e, [pos]);
- if (e.isDefaultPrevented()) { return self; }
-
-
- // onBeforeShow may have altered the configuration
- pos = getPosition(trigger, tip, conf);
-
- // set position
- tip.css({position:'absolute', top: pos.top, left: pos.left});
-
- shown = true;
-
- // invoke effect
- effect[0].call(self, function() {
- e.type = "onShow";
- shown = 'full';
- fire.trigger(e);
- });
-
-
- // tooltip events
- var event = conf.events.tooltip.split(/,\s*/);
-
- tip.bind(event[0], function() {
- clearTimeout(timer);
- clearTimeout(pretimer);
- });
-
- if (event[1] && !trigger.is("input:not(:checkbox, :radio), textarea")) {
- tip.bind(event[1], function(e) {
-
- // being moved to the trigger element
- if (e.relatedTarget != trigger[0]) {
- trigger.trigger(evt[1].split(" ")[0]);
- }
- });
- }
-
- return self;
- },
-
- hide: function(e) {
-
- if (!tip || !self.isShown()) { return self; }
-
- // onBeforeHide
- e = e || $.Event();
- e.type = "onBeforeHide";
- fire.trigger(e);
- if (e.isDefaultPrevented()) { return; }
-
- shown = false;
-
- effects[conf.effect][1].call(self, function() {
- e.type = "onHide";
- fire.trigger(e);
- });
-
- return self;
- },
-
- isShown: function(fully) {
- return fully ? shown == 'full' : shown;
- },
-
- getConf: function() {
- return conf;
- },
-
- getTip: function() {
- return tip;
- },
-
- getTrigger: function() {
- return trigger;
- }
-
- });
-
- // callbacks
- $.each("onHide,onBeforeShow,onShow,onBeforeHide".split(","), function(i, name) {
-
- // configuration
- if ($.isFunction(conf[name])) {
- $(self).bind(name, conf[name]);
- }
-
- // API
- self[name] = function(fn) {
- $(self).bind(name, fn);
- return self;
- };
- });
-
- }
-
-
- // jQuery plugin implementation
- $.fn.tooltip = function(conf) {
-
- // return existing instance
- var api = this.data("tooltip");
- if (api) { return api; }
-
- conf = $.extend(true, {}, $.tools.tooltip.conf, conf);
-
- // position can also be given as string
- if (typeof conf.position == 'string') {
- conf.position = conf.position.split(/,?\s/);
- }
-
- // install tooltip for each entry in jQuery object
- this.each(function() {
- api = new Tooltip($(this), conf);
- $(this).data("tooltip", api);
- });
-
- return conf.api ? api: this;
- };
-
-}) ();
-
-
-