PageSourceSearch

https://sdss.caiag.kg/sdss/javascript/colorpicker/js/utils.js

js caiag.kg collected 2026-10-02 05:45:23 UTC 7,135 bytes, 252 lines download raw bytes

1/**
2 *
3 * Utilities
4 * Author: Stefan Petre www.eyecon.ro
5 * 
6 */
7(function($) {
8EYE.extend({
9	getPosition : function(e, forceIt)
10	{
11		var x = 0;
12		var y = 0;
13		var es = e.style;
14		var restoreStyles = false;
15		if (forceIt && jQuery.curCSS(e,'display') == 'none') {
16			var oldVisibility = es.visibility;
17			var oldPosition = es.position;
18			restoreStyles = true;
19			es.visibility = 'hidden';
20			es.display = 'block';
21			es.position = 'absolute';
22		}
23		var el = e;
24		if (el.getBoundingClientRect) { // IE
25			var box = el.getBoundingClientRect();
26			x = box.left + Math.max(document.documentElement.scrollLeft, document.body.scrollLeft) - 2;
27			y = box.top + Math.max(document.documentElement.scrollTop, document.body.scrollTop) - 2;
28		} else {
29			x = el.offsetLeft;
30			y = el.offsetTop;
31			el = el.offsetParent;
32			if (e != el) {
33				while (el) {
34					x += el.offsetLeft;
35					y += el.offsetTop;
36					el = el.offsetParent;
37				}
38			}
39			if (jQuery.browser.safari && jQuery.curCSS(e, 'position') == 'absolute' ) {
40				x -= document.body.offsetLeft;
41				y -= document.body.offsetTop;
42			}
43			el = e.parentNode;
44			while (el && el.tagName.toUpperCase() != 'BODY' && el.tagName.toUpperCase() != 'HTML') 
45			{
46				if (jQuery.curCSS(el, 'display') != 'inline') {
47					x -= el.scrollLeft;
48					y -= el.scrollTop;
49				}
50				el = el.parentNode;
51			}
52		}
53		if (restoreStyles == true) {
54			es.display = 'none';
55			es.position = oldPosition;
56			es.visibility = oldVisibility;
57		}
58		return {x:x, y:y};
59	},
60	getSize : function(e)
61	{
62		var w = parseInt(jQuery.curCSS(e,'width'), 10);
63		var h = parseInt(jQuery.curCSS(e,'height'), 10);
64		var wb = 0;
65		var hb = 0;
66		if (jQuery.curCSS(e, 'display') != 'none') {
67			wb = e.offsetWidth;
68			hb = e.offsetHeight;
69		} else {
70			var es = e.style;
71			var oldVisibility = es.visibility;
72			var oldPosition = es.position;
73			es.visibility = 'hidden';
74			es.display = 'block';
75			es.position = 'absolute';
76			wb = e.offsetWidth;
77			hb = e.offsetHeight;
78			es.display = 'none';
79			es.position = oldPosition;
80			es.visibility = oldVisibility;
81		}
82		return {w:w, h:h, wb:wb, hb:hb};
83	},
84	getClient : function(e)
85	{
86		var h, w;
87		if (e) {
88			w = e.clientWidth;
89			h = e.clientHeight;
90		} else {
91			var de = document.documentElement;
92			w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
93			h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight;
94		}
95		return {w:w,h:h};
96	},
97	getScroll : function (e)
98	{
99		var t=0, l=0, w=0, h=0, iw=0, ih=0;
100		if (e && e.nodeName.toLowerCase() != 'body') {
101			t = e.scrollTop;
102			l = e.scrollLeft;
103			w = e.scrollWidth;
104			h = e.scrollHeight;
105		} else  {
106			if (document.documentElement) {
107				t = document.documentElement.scrollTop;
108				l = document.documentElement.scrollLeft;
109				w = document.documentElement.scrollWidth;
110				h = document.documentElement.scrollHeight;
111			} else if (document.body) {
112				t = document.body.scrollTop;
113				l = document.body.scrollLeft;
114				w = document.body.scrollWidth;
115				h = document.body.scrollHeight;
116			}
117			if (typeof pageYOffset != 'undefined') {
118				t = pageYOffset;
119				l = pageXOffset;
120			}
121			iw = self.innerWidth||document.documentElement.clientWidth||document.body.clientWidth||0;
122			ih = self.innerHeight||document.documentElement.clientHeight||document.body.clientHeight||0;
123		}
124		return { t: t, l: l, w: w, h: h, iw: iw, ih: ih };
125	},
126	getMargins : function(e, toInteger)
127	{
128		var t = jQuery.curCSS(e,'marginTop') || '';
129		var r = jQuery.curCSS(e,'marginRight') || '';
130		var b = jQuery.curCSS(e,'marginBottom') || '';
131		var l = jQuery.curCSS(e,'marginLeft') || '';
132		if (toInteger)
133			return {
134				t: parseInt(t, 10)||0,
135				r: parseInt(r, 10)||0,
136				b: parseInt(b, 10)||0,
137				l: parseInt(l, 10)
138			};
139		else
140			return {t: t, r: r,	b: b, l: l};
141	},
142	getPadding : function(e, toInteger)
143	{
144		var t = jQuery.curCSS(e,'paddingTop') || '';
145		var r = jQuery.curCSS(e,'paddingRight') || '';
146		var b = jQuery.curCSS(e,'paddingBottom') || '';
147		var l = jQuery.curCSS(e,'paddingLeft') || '';
148		if (toInteger)
149			return {
150				t: parseInt(t, 10)||0,
151				r: parseInt(r, 10)||0,
152				b: parseInt(b, 10)||0,
153				l: parseInt(l, 10)
154			};
155		else
156			return {t: t, r: r,	b: b, l: l};
157	},
158	getBorder : function(e, toInteger)
159	{
160		var t = jQuery.curCSS(e,'borderTopWidth') || '';
161		var r = jQuery.curCSS(e,'borderRightWidth') || '';
162		var b = jQuery.curCSS(e,'borderBottomWidth') || '';
163		var l = jQuery.curCSS(e,'borderLeftWidth') || '';
164		if (toInteger)
165			return {
166				t: parseInt(t, 10)||0,
167				r: parseInt(r, 10)||0,
168				b: parseInt(b, 10)||0,
169				l: parseInt(l, 10)||0
170			};
171		else
172			return {t: t, r: r,	b: b, l: l};
173	},
174	traverseDOM : function(nodeEl, func)
175	{
176		func(nodeEl);
177		nodeEl = nodeEl.firstChild;
178		while(nodeEl){
179			EYE.traverseDOM(nodeEl, func);
180			nodeEl = nodeEl.nextSibling;
181		}
182	},
183	getInnerWidth :  function(el, scroll) {
184		var offsetW = el.offsetWidth;
185		return scroll ? Math.max(el.scrollWidth,offsetW) - offsetW + el.clientWidth:el.clientWidth;
186	},
187	getInnerHeight : function(el, scroll) {
188		var offsetH = el.offsetHeight;
189		return scroll ? Math.max(el.scrollHeight,offsetH) - offsetH + el.clientHeight:el.clientHeight;
190	},
191	getExtraWidth : function(el) {
192		if($.boxModel)
193			return (parseInt($.curCSS(el, 'paddingLeft'))||0)
194				+ (parseInt($.curCSS(el, 'paddingRight'))||0)
195				+ (parseInt($.curCSS(el, 'borderLeftWidth'))||0)
196				+ (parseInt($.curCSS(el, 'borderRightWidth'))||0);
197		return 0;
198	},
199	getExtraHeight : function(el) {
200		if($.boxModel)
201			return (parseInt($.curCSS(el, 'paddingTop'))||0)
202				+ (parseInt($.curCSS(el, 'paddingBottom'))||0)
203				+ (parseInt($.curCSS(el, 'borderTopWidth'))||0)
204				+ (parseInt($.curCSS(el, 'borderBottomWidth'))||0);
205		return 0;
206	},
207	isChildOf: function(parentEl, el, container) {
208		if (parentEl == el) {
209			return true;
210		}
211		if (!el || !el.nodeType || el.nodeType != 1) {
212			return false;
213		}
214		if (parentEl.contains && !$.browser.safari) {
215			return parentEl.contains(el);
216		}
217		if ( parentEl.compareDocumentPosition ) {
218			return !!(parentEl.compareDocumentPosition(el) & 16);
219		}
220		var prEl = el.parentNode;
221		while(prEl && prEl != container) {
222			if (prEl == parentEl)
223				return true;
224			prEl = prEl.parentNode;
225		}
226		return false;
227	},
228	centerEl : function(el, axis)
229	{
230		var clientScroll = EYE.getScroll();
231		var size = EYE.getSize(el);
232		if (!axis || axis == 'vertically')
233			$(el).css(
234				{
235					top: clientScroll.t + ((Math.min(clientScroll.h,clientScroll.ih) - size.hb)/2) + 'px'
236				}
237			);
238		if (!axis || axis == 'horizontally')
239			$(el).css(
240				{
241					left: clientScroll.l + ((Math.min(clientScroll.w,clientScroll.iw) - size.wb)/2) + 'px'
242				}
243			);
244	}
245});
246if (!$.easing.easeout) {
247	$.easing.easeout = function(p, n, firstNum, delta, duration) {
248		return -delta * ((n=n/duration-1)*n*n*n - 1) + firstNum;
249	};
250}
251	
252})(jQuery);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.