Server : Apache/2.4.43 (Win64) OpenSSL/1.1.1g PHP/7.4.6
System : Windows NT USER-PC 6.1 build 7601 (Windows 7 Professional Edition Service Pack 1) AMD64
User : User ( 0)
PHP Version : 7.4.6
Disable Function : NONE
Directory :  C:/Users/User/AppData/Local/Temp/HouseCall32/interface/lib/
Upload File :
Current Directory [ Writeable ] Root Directory [ Writeable ]


Current File : C:/Users/User/AppData/Local/Temp/HouseCall32/interface/lib/jquery.text-overflow.js
/*!
 * jQuery Text Overflow v0.7
 *
 * Licensed under the new BSD License.
 * Copyright 2009-2010, Bram Stein
 * All rights reserved.
 */
/*global jQuery, document, setInterval*/
(function ($) {
	var style = document.documentElement.style,
        hasTextOverflow = ('textOverflow' in style || 'OTextOverflow' in style),

		domSplit = function (root, maxIndex) {
			var index = 0, result = [],
				domSplitAux = function (nodes) {
					var i = 0, tmp;

					if (index > maxIndex) {
						return;
					}

					for (i = 0; i < nodes.length; i += 1) {
						if (nodes[i].nodeType === 1) {
							tmp = nodes[i].cloneNode(false);
							result[result.length - 1].appendChild(tmp);
							result.push(tmp);
							domSplitAux(nodes[i].childNodes);
							result.pop();
						} else if (nodes[i].nodeType === 3) {
							if (index + nodes[i].length < maxIndex) {
								result[result.length - 1].appendChild(nodes[i].cloneNode(false));
							} else {
								tmp = nodes[i].cloneNode(false);
								tmp.textContent = $.trim(tmp.textContent.substring(0, maxIndex - index));
								result[result.length - 1].appendChild(tmp);	
							}
							index += nodes[i].length;
						} else {
							result.appendChild(nodes[i].cloneNode(false));
						}
					}
				};
			result.push(root.cloneNode(false));
			domSplitAux(root.childNodes);
			return $(result.pop().childNodes);
		};

	$.extend($.fn, {
        textOverflow: function (str, autoUpdate) {
            var more = str || '&#x2026;';
            
            if (!hasTextOverflow) {
                return this.each(function () {
                    var element = $(this),

                        // the clone element we modify to measure the width 
                        clone = element.clone(),

                        // we save a copy so we can restore it if necessary
                        originalElement = element.clone(),
                        originalText = element.text(),
                        originalWidth = element.width(),
                        low = 0, mid = 0,
                        high = originalText.length,
                        reflow = function () {
                            if (originalWidth !== element.width()) {
                                element.replaceWith(originalElement);
                                element = originalElement;
                                originalElement = element.clone();
                                element.textOverflow(str, false);
                                originalWidth = element.width();								
                            }
                        };

                    element.after(clone.hide().css({
						'position': 'absolute',
						'width': 'auto',
						'overflow': 'visible',
						'max-width': 'inherit'
					}));	

                    if (clone.width() > originalWidth) {
                        while (low < high) {
                            mid = Math.floor(low + ((high - low) / 2));
							clone.empty().append(domSplit(originalElement.get(0), mid)).append(more);
                            if (clone.width() < originalWidth) {
                                low = mid + 1;
                            } else {
                                high = mid;
                            }
                        }

                        if (low < originalText.length) {
							element.empty().append(domSplit(originalElement.get(0), low - 1)).append(more);
                        }
                    }
                    clone.remove();
                    
                    if (autoUpdate) {    
                        setInterval(reflow, 200);
                    }
                });
            } else {
                return this;
            }
        }
	});
})(jQuery);