// # Ghost jQuery Utils /*global window, document, $ */ (function () { "use strict"; // UTILS /** * Allows to check contents of each element exactly * @param obj * @param index * @param meta * @param stack * @returns {boolean} */ $.expr[":"].containsExact = function (obj, index, meta, stack) { return (obj.textContent || obj.innerText || $(obj).text() || "") === meta[3]; }; /** * Center an element to the window vertically and centrally * @returns {*} */ $.fn.center = function () { this.css({ 'position': 'fixed', 'left': '50%', 'top': '50%' }); this.css({ 'margin-left': -this.outerWidth() / 2 + 'px', 'margin-top': -this.outerHeight() / 2 + 'px' }); return this; }; $.fn.selectText = function () { var elem = this[0], range, selection; if (document.body.createTextRange) { range = document.body.createTextRange(); range.moveToElementText(elem); range.select(); } else if (window.getSelection) { selection = window.getSelection(); range = document.createRange(); range.selectNodeContents(elem); selection.removeAllRanges(); selection.addRange(range); } }; }());