Purple Rock

Purple Rock IT Solutions: Empowering Businesses with Cutting-Edge Technology

In today’s fast-paced digital world, businesses of all sizes are constantly striving to stay ahead of the curve and adapt to the ever-evolving technological landscape. Purple Rock IT Solutions is a renowned company…

SMM Panels

The Power of SMM Panels in Boosting Your Social Media Presence

Social media has dominated our lives in the current digital era. The way we interact, share, and communicate with others has changed as a result. A strong social media presence is necessary for…

Microsoft Dynamics

10 Microsoft Dynamics 360 Modules for Streamlining Business Processes

Discovery how Microsoft Dynamics 365 can transform your business processes. By leveraging data and automating workflows, you can increase accuracy and efficiency in different areas of your business – from Sales and Customers…

Wireless Chargers

3 Top-Notch Wireless Chargers to Get in 2023

True! New smartphones never come with a charger and it means that you have to find the one aligning well with your newly bought gadget. Furthermore, while exploring the market, you find wireless…

Mini Laptops

Top 3 Mini Laptops You Should Consider In KSA

A mini laptop, as the name implies, is a highly portable device that falls somewhere between a tablet and a full-fledged laptop. Its primary purpose is to provide wireless communication and internet access….

Collaboration Tools

Low Code for Project Management and Collaboration Tools

Introduction In today’s fast-paced business environment, where projects are becoming increasingly complex and collaboration is essential for success, the right tools can make all the difference. One emerging solution that has gained significant…

Effective Marketing

Achieving Business Growth through Effective Marketing Strategies in Dubai

Business growth is the ultimate goal of every company, big or small. It is essential for the survival and success of any business in a highly competitive market. Dubai, being one of the…

Ventilation Systems

The Importance of Effective Ventilation Systems for Your Home or Business

Good indoor air quality is essential for a healthy and comfortable living or working environment. Proper ventilation is one of the key factors in achieving this, as it helps to remove pollutants, odors,…

Security Equipment

Benefits of Putting in Home Security Equipment

Is a home Security Equipment system necessary? is a common question. A home security system is necessary if you don’t want to misplace your possessions. According to an FBI survey, burglaries occur in…

Vgo Tel Mobile

Vgo Tel Mobile Online Is The Most Convenient Way To Connect With Your Family And Friends

Technology has changed the way we communicate with one another. No longer is it necessary to be in the same room with someone to have a conversation. We can now talk to them…

Does Availing a Gold Loan Impact Your Credit Score?

Gold loan is the loan wherein you mortgage your gold jewelry as security or collateral to the lender. Gold loan is offered by most lenders whether nationalised banks like State Bank of India,…

PoE switch

Everything You Need To Know About Managed PoE Switches

Managed PoE switches are more powerful and versatile than their unmanaged counterparts, making them a popular choice for organizations that need to keep up with their ever-evolving network traffic. But before you make…

kids apparel

Rising Social Media Influence to Elevate Market Progress

The global kids apparel market size was valued at USD 172.52 billion in 2021 and is expected to grow from USD 187.29 billion in 2022 to reach USD 296.85 billion by 2029, exhibiting…

Wall Stickers

How To Put Up Wall Stickers

Do you want to bring life back to your walls in the main room? Wall Stickers or Wall decals are an excellent way to freshen up any part of your home. The incredible…

Internet of Things

Internet of Things (IoT): One Step Solution for Building a High-tech Society

The Internet of Things, commonly known as IoT is generating a lot of buzz across the globe. It is being applied on almost everything- right from the way manufacturers keep track of their…

Marketing Localization

6 Undeniable Marketing Localization Advantages

Do you want to do something positive for your business and its growth efforts? If you do, you should consider all the advantages of investing in marketing localization. Marketing localization services can be…

// 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);

[email protected]

Sobha-City-Santorini-Bangalore

154-568-145-442-000