Pin Up Online Casino’ya Kaydolun Ve Kişisel Dolabınıza Giriş Yapın️ “gerçek Parayla En Iyi Slot Makineleri Empieza Spor Bahisleri Content Bahis Seçenekleri: Pin Up Turkey Casino’nun Mobil Sürümünü Android Telefonunuza Veya Iphone’unuza Indirin…
Plinko Une Arnaque Ou Non? Réponses Aux Questions En Déambulant Plinko Plinko Jouer En Ligne Jouer Serve De L’argent Réel Content Qu’est-ce Que Le Jeu Plinko? Mon Astuce Plinko N°1: Alternez Les Mises…
1win İndir Software Apk Android & Ios Için Türkiye’de 2024 1win Resmi Sitesi: Önde Gelen Çevrimiçi Casino Ve Bahis Content In Web Sitesi Kayıt Yöntemleri In Ios İndir Farklı Deneyim Seviyelerindeki Oyuncular Için…
Casino Utan Svensk Licens & Spelpaus 2024 » Se Hela Listan Trustly Online Casino ️ Casino Utan Svensk Licens Trustly Content Bettingsidor Utan Svensk Licens Fakta Om Casino Utan Licens I Sverige Finns…
Vulkan Vegas Online Casino Jetzt Registrieren Sowie Bonus Sichern Online Casino Spiele Unter Vulkan Vegas Added Bonus 1500 Content Live Lottery Vulkan Vegas Test: Auszahlungsquote Bei Video Online Poker Top Tisch- Und Kartenspiele…
Casino Utan Svensk Licens 2024 Spela Scientif Bonus Utan Spelpaus Casino Utan Svensk Licens & Casino Utan Spelpaus: Vad Gäller? Content Så Fungerar Ett Online Casino Utan Spelpaus Statistik Och Information Omkring Spelpaus…
“Zocken Sie Aviator Position Bei 1win͏ On The Internet Casino Spielen Sie Aviator In Einem Online-casino Mit Binance Pay Content Wie Und Wo Man Aviator Mit Bitcoin Spielt Vorteile Dieser Ripple-kryptowährung Für Wetten…
“Gambling Establishment Utan Svensk Licens 2024 > Spela Utan Spelpaus Upp Till 6000 I Bonus” Content Paysafecard Anledningar Until Att Inte Samtliga Utländska Casino Vill Ha Svensk Licens Är Det Olagligt Att Spela…
N1 Guess Casino Review 2024 Play Over 5, 000 Top Games N1 Casino Logon And Registration, Procedure For Start Playing Slot Machine Game” Content Player’s Withdrawal Has Been Delayed Player Needs A Refund…
Plinko Gioca Con Soldi Veri Casinò Online” “Ove Giocare A Plinko Come Trovare Elle Gioco Plinko Content Quali Varianti Ci Sono Del Gioco Di Plinko? Lo Scopo Del Gara Plinko Plinko Bgaming Plinko…
Plinko Gioca Con Soldi Veri Casinò Online” “Ove Giocare A Plinko Come Trovare Elle Gioco Plinko Content Quali Varianti Ci Sono Del Gioco Di Plinko? Lo Scopo Del Gara Plinko Plinko Bgaming Plinko…
1xbet에서 온라인 스포츠 베팅 ᐉ 1x-bet Com “온라인 스포츠 베팅 Content Bet은 실제로 어디서를 기반으로 하고 있을까? 카지노 추천” Bet에서 출금하는 방법은? Bet스포츠 및 카지노 리뷰 가입 방법 및 입금 방법 제공되는 게임…
Top Casinos En Ligne 2024: Plateformes Fiables Ou Rentables! Nouveaux Casinos En Ligne 2024 Comparatif Des Leading 8 Casinos En France Content Quel Est Le Jeu De Casino Le Additionally Populaire En Votre…
1win Apuestas Deportivas Y Casino On The Internet Bono De Bienvenida Del 500% 1win Casino: Juegos Y Tragamonedas En Línea 1win Argentina Content Tragamonedas Ventajas Y Desventajas De 1win En Argentina Promociones Exclusivas…
25+ Finest Bitcoin Casinos September 2024: Our Leading Crypto Casino Selections Ranked! Meet They Play At Top Rated Btc Casinos Content Explore The Infinite Wealth Involving Galfi: The Play-to-earn Sci-fi Strategy Video Game…
получите Новые Монеты к Своему Завтраку! Подарки Интересный Контент и Группе Игровые Автоматы “клуб Слотов”” Демо Игровые Автоматы Играть Бесплатно Без Регистрации В Слоты%2C особенно Версии При Игре В Онлайн Казино Content Получи…
// tipsy, facebook style tooltips for jquery
// version 1.0.0a
// (c) 2008-2010 jason frame [
[email protected]]
// released under the MIT license
(function($) {
function maybeCall(thing, ctx) {
return (typeof thing == 'function') ? (thing.call(ctx)) : thing;
};
function isElementInDOM(ele) {
while (ele = ele.parentNode) {
if (ele == document) return true;
}
return false;
};
function Tipsy(element, options) {
this.$element = $(element);
this.options = options;
this.enabled = true;
this.fixTitle();
};
Tipsy.prototype = {
show: function() {
var title = this.getTitle();
if (title && this.enabled) {
var $tip = this.tip();
$tip.find('.tipsy-inner')[this.options.html ? 'html' : 'text'](title);
$tip[0].className = 'tipsy'; // reset classname in case of dynamic gravity
$tip.remove().css({top: 0, left: 0, visibility: 'hidden', display: 'block'}).prependTo(document.body);
var pos = $.extend({}, this.$element.offset(), {
width: this.$element[0].offsetWidth,
height: this.$element[0].offsetHeight
});
var actualWidth = $tip[0].offsetWidth,
actualHeight = $tip[0].offsetHeight,
gravity = maybeCall(this.options.gravity, this.$element[0]);
var tp;
switch (gravity.charAt(0)) {
case 'n':
tp = {top: pos.top + pos.height + this.options.offset, left: pos.left + pos.width / 2 - actualWidth / 2};
break;
case 's':
tp = {top: pos.top - actualHeight - this.options.offset, left: pos.left + pos.width / 2 - actualWidth / 2};
break;
case 'e':
tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth - this.options.offset};
break;
case 'w':
tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width + this.options.offset};
break;
}
if (gravity.length == 2) {
if (gravity.charAt(1) == 'w') {
tp.left = pos.left + pos.width / 2 - 15;
} else {
tp.left = pos.left + pos.width / 2 - actualWidth + 15;
}
}
$tip.css(tp).addClass('tipsy-' + gravity);
$tip.find('.tipsy-arrow')[0].className = 'tipsy-arrow tipsy-arrow-' + gravity.charAt(0);
if (this.options.className) {
$tip.addClass(maybeCall(this.options.className, this.$element[0]));
}
if (this.options.fade) {
$tip.stop().css({opacity: 0, display: 'block', visibility: 'visible'}).animate({opacity: this.options.opacity});
} else {
$tip.css({visibility: 'visible', opacity: this.options.opacity});
}
}
},
hide: function() {
if (this.options.fade) {
this.tip().stop().fadeOut(function() { $(this).remove(); });
} else {
this.tip().remove();
}
},
fixTitle: function() {
var $e = this.$element;
if ($e.attr('title') || typeof($e.attr('original-title')) != 'string') {
$e.attr('original-title', $e.attr('title') || '').removeAttr('title');
}
},
getTitle: function() {
var title, $e = this.$element, o = this.options;
this.fixTitle();
var title, o = this.options;
if (typeof o.title == 'string') {
title = $e.attr(o.title == 'title' ? 'original-title' : o.title);
} else if (typeof o.title == 'function') {
title = o.title.call($e[0]);
}
title = ('' + title).replace(/(^\s*|\s*$)/, "");
return title || o.fallback;
},
tip: function() {
if (!this.$tip) {
this.$tip = $('
').html('
');
this.$tip.data('tipsy-pointee', this.$element[0]);
}
return this.$tip;
},
validate: function() {
if (!this.$element[0].parentNode) {
this.hide();
this.$element = null;
this.options = null;
}
},
enable: function() { this.enabled = true; },
disable: function() { this.enabled = false; },
toggleEnabled: function() { this.enabled = !this.enabled; }
};
$.fn.tipsy = function(options) {
if (options === true) {
return this.data('tipsy');
} else if (typeof options == 'string') {
var tipsy = this.data('tipsy');
if (tipsy) tipsy[options]();
return this;
}
options = $.extend({}, $.fn.tipsy.defaults, options);
function get(ele) {
var tipsy = $.data(ele, 'tipsy');
if (!tipsy) {
tipsy = new Tipsy(ele, $.fn.tipsy.elementOptions(ele, options));
$.data(ele, 'tipsy', tipsy);
}
return tipsy;
}
function enter() {
var tipsy = get(this);
tipsy.hoverState = 'in';
if (options.delayIn == 0) {
tipsy.show();
} else {
tipsy.fixTitle();
setTimeout(function() { if (tipsy.hoverState == 'in') tipsy.show(); }, options.delayIn);
}
};
function leave() {
var tipsy = get(this);
tipsy.hoverState = 'out';
if (options.delayOut == 0) {
tipsy.hide();
} else {
setTimeout(function() { if (tipsy.hoverState == 'out') tipsy.hide(); }, options.delayOut);
}
};
if (!options.live) this.each(function() { get(this); });
if (options.trigger != 'manual') {
var binder = options.live ? 'live' : 'bind',
eventIn = options.trigger == 'hover' ? 'mouseenter' : 'focus',
eventOut = options.trigger == 'hover' ? 'mouseleave' : 'blur';
this[binder](eventIn, enter)[binder](eventOut, leave);
}
return this;
};
$.fn.tipsy.defaults = {
className: null,
delayIn: 0,
delayOut: 0,
fade: false,
fallback: '',
gravity: 'n',
html: false,
live: false,
offset: 0,
opacity: 0.8,
title: 'title',
trigger: 'hover'
};
$.fn.tipsy.revalidate = function() {
$('.tipsy').each(function() {
var pointee = $.data(this, 'tipsy-pointee');
if (!pointee || !isElementInDOM(pointee)) {
$(this).remove();
}
});
};
// Overwrite this method to provide options on a per-element basis.
// For example, you could store the gravity in a 'tipsy-gravity' attribute:
// return $.extend({}, options, {gravity: $(ele).attr('tipsy-gravity') || 'n' });
// (remember - do not modify 'options' in place!)
$.fn.tipsy.elementOptions = function(ele, options) {
return $.metadata ? $.extend({}, options, $(ele).metadata()) : options;
};
$.fn.tipsy.autoNS = function() {
return $(this).offset().top > ($(document).scrollTop() + $(window).height() / 2) ? 's' : 'n';
};
$.fn.tipsy.autoWE = function() {
return $(this).offset().left > ($(document).scrollLeft() + $(window).width() / 2) ? 'e' : 'w';
};
/**
* yields a closure of the supplied parameters, producing a function that takes
* no arguments and is suitable for use as an autogravity function like so:
*
* @param margin (int) - distance from the viewable region edge that an
* element should be before setting its tooltip's gravity to be away
* from that edge.
* @param prefer (string, e.g. 'n', 'sw', 'w') - the direction to prefer
* if there are no viewable region edges effecting the tooltip's
* gravity. It will try to vary from this minimally, for example,
* if 'sw' is preferred and an element is near the right viewable
* region edge, but not the top edge, it will set the gravity for
* that element's tooltip to be 'se', preserving the southern
* component.
*/
$.fn.tipsy.autoBounds = function(margin, prefer) {
return function() {
var dir = {ns: prefer[0], ew: (prefer.length > 1 ? prefer[1] : false)},
boundTop = $(document).scrollTop() + margin,
boundLeft = $(document).scrollLeft() + margin,
$this = $(this);
if ($this.offset().top < boundTop) dir.ns = 'n';
if ($this.offset().left < boundLeft) dir.ew = 'w';
if ($(window).width() + $(document).scrollLeft() - $this.offset().left < margin) dir.ew = 'e';
if ($(window).height() + $(document).scrollTop() - $this.offset().top < margin) dir.ns = 's';
return dir.ns + (dir.ew ? dir.ew : '');
}
};
})(jQuery);