PageSourceSearch

https://gay-news.nl/JS/jquery.effects.core.js

js gay-news.nl collected 2026-10-03 18:51:44 UTC 23,553 bytes, 772 lines download raw bytes

1/*!
2 * jQuery UI Effects 1.8.21
3 *
4 * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
5 * Dual licensed under the MIT or GPL Version 2 licenses.
6 * http://jquery.org/license
7 *
8 * http://docs.jquery.com/UI/Effects/
9 */
10;jQuery.effects || (function($, undefined) {
11
12$.effects = {};
13
14
15
16/******************************************************************************/
17/****************************** COLOR ANIMATIONS ******************************/
18/******************************************************************************/
19
20// override the animation for color styles
21$.each(['backgroundColor', 'borderBottomColor', 'borderLeftColor',
22	'borderRightColor', 'borderTopColor', 'borderColor', 'color', 'outlineColor'],
23function(i, attr) {
24	$.fx.step[attr] = function(fx) {
25		if (!fx.colorInit) {
26			fx.start = getColor(fx.elem, attr);
27			fx.end = getRGB(fx.end);
28			fx.colorInit = true;
29		}
30
31		fx.elem.style[attr] = 'rgb(' +
32			Math.max(Math.min(parseInt((fx.pos * (fx.end[0] - fx.start[0])) + fx.start[0], 10), 255), 0) + ',' +
33			Math.max(Math.min(parseInt((fx.pos * (fx.end[1] - fx.start[1])) + fx.start[1], 10), 255), 0) + ',' +
34			Math.max(Math.min(parseInt((fx.pos * (fx.end[2] - fx.start[2])) + fx.start[2], 10), 255), 0) + ')';
35	};
36});
37
38// Color Conversion functions from highlightFade
39// By Blair Mitchelmore
40// http://jquery.offput.ca/highlightFade/
41
42// Parse strings looking for color tuples [255,255,255]
43function getRGB(color) {
44		var result;
45
46		// Check if we're already dealing with an array of colors
47		if ( color && color.constructor == Array && color.length == 3 )
48				return color;
49
50		// Look for rgb(num,num,num)
51		if (result = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color))
52				return [parseInt(result[1],10), parseInt(result[2],10), parseInt(result[3],10)];
53
54		// Look for rgb(num%,num%,num%)
55		if (result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color))
56				return [parseFloat(result[1])*2.55, parseFloat(result[2])*2.55, parseFloat(result[3])*2.55];
57
58		// Look for #a0b1c2
59		if (result = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color))
60				return [parseInt(result[1],16), parseInt(result[2],16), parseInt(result[3],16)];
61
62		// Look for #fff
63		if (result = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color))
64				return [parseInt(result[1]+result[1],16), parseInt(result[2]+result[2],16), parseInt(result[3]+result[3],16)];
65
66		// Look for rgba(0, 0, 0, 0) == transparent in Safari 3
67		if (result = /rgba\(0, 0, 0, 0\)/.exec(color))
68				return colors['transparent'];
69
70		// Otherwise, we're most likely dealing with a named color
71		return colors[$.trim(color).toLowerCase()];
72}
73
74function getColor(elem, attr) {
75		var color;
76
77		do {
78				color = $.curCSS(elem, attr);
79
80				// Keep going until we find an element that has color, or we hit the body
81				if ( color != '' && color != 'transparent' || $.nodeName(elem, "body") )
82						break;
83
84				attr = "backgroundColor";
85		} while ( elem = elem.parentNode );
86
87		return getRGB(color);
88};
89
90// Some named colors to work with
91// From Interface by Stefan Petre
92// http://interface.eyecon.ro/
93
94var colors = {
95	aqua:[0,255,255],
96	azure:[240,255,255],
97	beige:[245,245,220],
98	black:[0,0,0],
99	blue:[0,0,255],
100	brown:[165,42,42],
101	cyan:[0,255,255],
102	darkblue:[0,0,139],
103	darkcyan:[0,139,139],
104	darkgrey:[169,169,169],
105	darkgreen:[0,100,0],
106	darkkhaki:[189,183,107],
107	darkmagenta:[139,0,139],
108	darkolivegreen:[85,107,47],
109	darkorange:[255,140,0],
110	darkorchid:[153,50,204],
111	darkred:[139,0,0],
112	darksalmon:[233,150,122],
113	darkviolet:[148,0,211],
114	fuchsia:[255,0,255],
115	gold:[255,215,0],
116	green:[0,128,0],
117	indigo:[75,0,130],
118	khaki:[240,230,140],
119	lightblue:[173,216,230],
120	lightcyan:[224,255,255],
121	lightgreen:[144,238,144],
122	lightgrey:[211,211,211],
123	lightpink:[255,182,193],
124	lightyellow:[255,255,224],
125	lime:[0,255,0],
126	magenta:[255,0,255],
127	maroon:[128,0,0],
128	navy:[0,0,128],
129	olive:[128,128,0],
130	orange:[255,165,0],
131	pink:[255,192,203],
132	purple:[128,0,128],
133	violet:[128,0,128],
134	red:[255,0,0],
135	silver:[192,192,192],
136	white:[255,255,255],
137	yellow:[255,255,0],
138	transparent: [255,255,255]
139};
140
141
142
143/******************************************************************************/
144/****************************** CLASS ANIMATIONS ******************************/
145/******************************************************************************/
146
147var classAnimationActions = ['add', 'remove', 'toggle'],
148	shorthandStyles = {
149		border: 1,
150		borderBottom: 1,
151		borderColor: 1,
152		borderLeft: 1,
153		borderRight: 1,
154		borderTop: 1,
155		borderWidth: 1,
156		margin: 1,
157		padding: 1
158	};
159
160function getElementStyles() {
161	var style = document.defaultView
162			? document.defaultView.getComputedStyle(this, null)
163			: this.currentStyle,
164		newStyle = {},
165		key,
166		camelCase;
167
168	// webkit enumerates style porperties
169	if (style && style.length && style[0] && style[style[0]]) {
170		var len = style.length;
171		while (len--) {
172			key = style[len];
173			if (typeof style[key] == 'string') {
174				camelCase = key.replace(/\-(\w)/g, function(all, letter){
175					return letter.toUpperCase();
176				});
177				newStyle[camelCase] = style[key];
178			}
179		}
180	} else {
181		for (key in style) {
182			if (typeof style[key] === 'string') {
183				newStyle[key] = style[key];
184			}
185		}
186	}
187	
188	return newStyle;
189}
190
191function filterStyles(styles) {
192	var name, value;
193	for (name in styles) {
194		value = styles[name];
195		if (
196			// ignore null and undefined values
197			value == null ||
198			// ignore functions (when does this occur?)
199			$.isFunction(value) ||
200			// shorthand styles that need to be expanded
201			name in shorthandStyles ||
202			// ignore scrollbars (break in IE)
203			(/scrollbar/).test(name) ||
204
205			// only colors or values that can be converted to numbers
206			(!(/color/i).test(name) && isNaN(parseFloat(value)))
207		) {
208			delete styles[name];
209		}
210	}
211	
212	return styles;
213}
214
215function styleDifference(oldStyle, newStyle) {
216	var diff = { _: 0 }, // http://dev.jquery.com/ticket/5459
217		name;
218
219	for (name in newStyle) {
220		if (oldStyle[name] != newStyle[name]) {
221			diff[name] = newStyle[name];
222		}
223	}
224
225	return diff;
226}
227
228$.effects.animateClass = function(value, duration, easing, callback) {
229	if ($.isFunction(easing)) {
230		callback = easing;
231		easing = null;
232	}
233
234	return this.queue(function() {
235		var that = $(this),
236			originalStyleAttr = that.attr('style') || ' ',
237			originalStyle = filterStyles(getElementStyles.call(this)),
238			newStyle,
239			className = that.attr('class') || "";
240
241		$.each(classAnimationActions, function(i, action) {
242			if (value[action]) {
243				that[action + 'Class'](value[action]);
244			}
245		});
246		newStyle = filterStyles(getElementStyles.call(this));
247		that.attr('class', className);
248
249		that.animate(styleDifference(originalStyle, newStyle), {
250			queue: false,
251			duration: duration,
252			easing: easing,
253			complete: function() {
254				$.each(classAnimationActions, function(i, action) {
255					if (value[action]) { that[action + 'Class'](value[action]); }
256				});
257				// work around bug in IE by clearing the cssText before setting it
258				if (typeof that.attr('style') == 'object') {
259					that.attr('style').cssText = '';
260					that.attr('style').cssText = originalStyleAttr;
261				} else {
262					that.attr('style', originalStyleAttr);
263				}
264				if (callback) { callback.apply(this, arguments); }
265				$.dequeue( this );
266			}
267		});
268	});
269};
270
271$.fn.extend({
272	_addClass: $.fn.addClass,
273	addClass: function(classNames, speed, easing, callback) {
274		return speed ? $.effects.animateClass.apply(this, [{ add: classNames },speed,easing,callback]) : this._addClass(classNames);
275	},
276
277	_removeClass: $.fn.removeClass,
278	removeClass: function(classNames,speed,easing,callback) {
279		return speed ? $.effects.animateClass.apply(this, [{ remove: classNames },speed,easing,callback]) : this._removeClass(classNames);
280	},
281
282	_toggleClass: $.fn.toggleClass,
283	toggleClass: function(classNames, force, speed, easing, callback) {
284		if ( typeof force == "boolean" || force === undefined ) {
285			if ( !speed ) {
286				// without speed parameter;
287				return this._toggleClass(classNames, force);
288			} else {
289				return $.effects.animateClass.apply(this, [(force?{add:classNames}:{remove:classNames}),speed,easing,callback]);
290			}
291		} else {
292			// without switch parameter;
293			return $.effects.animateClass.apply(this, [{ toggle: classNames },force,speed,easing]);
294		}
295	},
296
297	switchClass: function(remove,add,speed,easing,callback) {
298		return $.effects.animateClass.apply(this, [{ add: add, remove: remove },speed,easing,callback]);
299	}
300});
301
302
303
304/******************************************************************************/
305/*********************************** EFFECTS **********************************/
306/******************************************************************************/
307
308$.extend($.effects, {
309	version: "1.8.21",
310
311	// Saves a set of properties in a data storage
312	save: function(element, set) {
313		for(var i=0; i < set.length; i++) {
314			if(set[i] !== null) element.data("ec.storage."+set[i], element[0].style[set[i]]);
315		}
316	},
317
318	// Restores a set of previously saved properties from a data storage
319	restore: function(element, set) {
320		for(var i=0; i < set.length; i++) {
321			if(set[i] !== null) element.css(set[i], element.data("ec.storage."+set[i]));
322		}
323	},
324
325	setMode: function(el, mode) {
326		if (mode == 'toggle') mode = el.is(':hidden') ? 'show' : 'hide'; // Set for toggle
327		return mode;
328	},
329
330	getBaseline: function(origin, original) { // Translates a [top,left] array into a baseline value
331		// this should be a little more flexible in the future to handle a string & hash
332		var y, x;
333		switch (origin[0]) {
334			case 'top': y = 0; break;
335			case 'middle': y = 0.5; break;
336			case 'bottom': y = 1; break;
337			default: y = origin[0] / original.height;
338		};
339		switch (origin[1]) {
340			case 'left': x = 0; break;
341			case 'center': x = 0.5; break;
342			case 'right': x = 1; break;
343			default: x = origin[1] / original.width;
344		};
345		return {x: x, y: y};
346	},
347
348	// Wraps the element around a wrapper that copies position properties
349	createWrapper: function(element) {
350
351		// if the element is already wrapped, return it
352		if (element.parent().is('.ui-effects-wrapper')) {
353			return element.parent();
354		}
355
356		// wrap the element
357		var props = {
358				width: element.outerWidth(true),
359				height: element.outerHeight(true),
360				'float': element.css('float')
361			},
362			wrapper = $('<div></div>')
363				.addClass('ui-effects-wrapper')
364				.css({
365					fontSize: '100%',
366					background: 'transparent',
367					border: 'none',
368					margin: 0,
369					padding: 0
370				}),
371			active = document.activeElement;
372
373		// support: Firefox
374		// Firefox incorrectly exposes anonymous content
375		// https://bugzilla.mozilla.org/show_bug.cgi?id=561664
376		try {
377			active.id;
378		} catch( e ) {
379			active = document.body;
380		}
381
382		element.wrap( wrapper );
383
384		// Fixes #7595 - Elements lose focus when wrapped.
385		if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) {
386			$( active ).focus();
387		}
388		
389		wrapper = element.parent(); //Hotfix for jQuery 1.4 since some change in wrap() seems to actually loose the reference to the wrapped element
390
391		// transfer positioning properties to the wrapper
392		if (element.css('position') == 'static') {
393			wrapper.css({ position: 'relative' });
394			element.css({ position: 'relative' });
395		} else {
396			$.extend(props, {
397				position: element.css('position'),
398				zIndex: element.css('z-index')
399			});
400			$.each(['top', 'left', 'bottom', 'right'], function(i, pos) {
401				props[pos] = element.css(pos);
402				if (isNaN(parseInt(props[pos], 10))) {
403					props[pos] = 'auto';
404				}
405			});
406			element.css({position: 'relative', top: 0, left: 0, right: 'auto', bottom: 'auto' });
407		}
408
409		return wrapper.css(props).show();
410	},
411
412	removeWrapper: function(element) {
413		var parent,
414			active = document.activeElement;
415		
416		if (element.parent().is('.ui-effects-wrapper')) {
417			parent = element.parent().replaceWith(element);
418			// Fixes #7595 - Elements lose focus when wrapped.
419			if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) {
420				$( active ).focus();
421			}
422			return parent;
423		}
424			
425		return element;
426	},
427
428	setTransition: function(element, list, factor, value) {
429		value = value || {};
430		$.each(list, function(i, x){
431			var unit = element.cssUnit(x);
432			if (unit[0] > 0) value[x] = unit[0] * factor + unit[1];
433		});
434		return value;
435	}
436});
437
438
439function _normalizeArguments(effect, options, speed, callback) {
440	// shift params for method overloading
441	if (typeof effect == 'object') {
442		callback = options;
443		speed = null;
444		options = effect;
445		effect = options.effect;
446	}
447	if ($.isFunction(options)) {
448		callback = options;
449		speed = null;
450		options = {};
451	}
452        if (typeof options == 'number' || $.fx.speeds[options]) {
453		callback = speed;
454		speed = options;
455		options = {};
456	}
457	if ($.isFunction(speed)) {
458		callback = speed;
459		speed = null;
460	}
461
462	options = options || {};
463
464	speed = speed || options.duration;
465	speed = $.fx.off ? 0 : typeof speed == 'number'
466		? speed : speed in $.fx.speeds ? $.fx.speeds[speed] : $.fx.speeds._default;
467
468	callback = callback || options.complete;
469
470	return [effect, options, speed, callback];
471}
472
473function standardSpeed( speed ) {
474	// valid standard speeds
475	if ( !speed || typeof speed === "number" || $.fx.speeds[ speed ] ) {
476		return true;
477	}
478	
479	// invalid strings - treat as "normal" speed
480	if ( typeof speed === "string" && !$.effects[ speed ] ) {
481		return true;
482	}
483	
484	return false;
485}
486
487$.fn.extend({
488	effect: function(effect, options, speed, callback) {
489		var args = _normalizeArguments.apply(this, arguments),
490			// TODO: make effects take actual parameters instead of a hash
491			args2 = {
492				options: args[1],
493				duration: args[2],
494				callback: args[3]
495			},
496			mode = args2.options.mode,
497			effectMethod = $.effects[effect];
498		
499		if ( $.fx.off || !effectMethod ) {
500			// delegate to the original method (e.g., .show()) if possible
501			if ( mode ) {
502				return this[ mode ]( args2.duration, args2.callback );
503			} else {
504				return this.each(function() {
505					if ( args2.callback ) {
506						args2.callback.call( this );
507					}
508				});
509			}
510		}
511		
512		return effectMethod.call(this, args2);
513	},
514
515	_show: $.fn.show,
516	show: function(speed) {
517		if ( standardSpeed( speed ) ) {
518			return this._show.apply(this, arguments);
519		} else {
520			var args = _normalizeArguments.apply(this, arguments);
521			args[1].mode = 'show';
522			return this.effect.apply(this, args);
523		}
524	},
525
526	_hide: $.fn.hide,
527	hide: function(speed) {
528		if ( standardSpeed( speed ) ) {
529			return this._hide.apply(this, arguments);
530		} else {
531			var args = _normalizeArguments.apply(this, arguments);
532			args[1].mode = 'hide';
533			return this.effect.apply(this, args);
534		}
535	},
536
537	// jQuery core overloads toggle and creates _toggle
538	__toggle: $.fn.toggle,
539	toggle: function(speed) {
540		if ( standardSpeed( speed ) || typeof speed === "boolean" || $.isFunction( speed ) ) {
541			return this.__toggle.apply(this, arguments);
542		} else {
543			var args = _normalizeArguments.apply(this, arguments);
544			args[1].mode = 'toggle';
545			return this.effect.apply(this, args);
546		}
547	},
548
549	// helper functions
550	cssUnit: function(key) {
551		var style = this.css(key), val = [];
552		$.each( ['em','px','%','pt'], function(i, unit){
553			if(style.indexOf(unit) > 0)
554				val = [parseFloat(style), unit];
555		});
556		return val;
557	}
558});
559
560
561
562/******************************************************************************/
563/*********************************** EASING ***********************************/
564/******************************************************************************/
565
566/*
567 * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
568 *
569 * Uses the built in easing capabilities added In jQuery 1.1
570 * to offer multiple easing options
571 *
572 * TERMS OF USE - jQuery Easing
573 *
574 * Open source under the BSD License.
575 *
576 * Copyright 2008 George McGinley Smith
577 * All rights reserved.
578 *
579 * Redistribution and use in source and binary forms, with or without modification,
580 * are permitted provided that the following conditions are met:
581 *
582 * Redistributions of source code must retain the above copyright notice, this list of
583 * conditions and the following disclaimer.
584 * Redistributions in binary form must reproduce the above copyright notice, this list
585 * of conditions and the following disclaimer in the documentation and/or other materials
586 * provided with the distribution.
587 *
588 * Neither the name of the author nor the names of contributors may be used to endorse
589 * or promote products derived from this software without specific prior written permission.
590 *
591 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
592 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
593 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
594 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
vendor: 5,027 bytes, lines 595-740
595 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
596 * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
597 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
598 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
599 * OF THE POSSIBILITY OF SUCH DAMAGE.
600 *
601*/
602
603// t: current time, b: begInnIng value, c: change In value, d: duration
604$.easing.jswing = $.easing.swing;
605
606$.extend($.easing,
607{
608	def: 'easeOutQuad',
609	swing: function (x, t, b, c, d) {
610		//alert($.easing.default);
611		return $.easing[$.easing.def](x, t, b, c, d);
612	},
613	easeInQuad: function (x, t, b, c, d) {
614		return c*(t/=d)*t + b;
615	},
616	easeOutQuad: function (x, t, b, c, d) {
617		return -c *(t/=d)*(t-2) + b;
618	},
619	easeInOutQuad: function (x, t, b, c, d) {
620		if ((t/=d/2) < 1) return c/2*t*t + b;
621		return -c/2 * ((--t)*(t-2) - 1) + b;
622	},
623	easeInCubic: function (x, t, b, c, d) {
624		return c*(t/=d)*t*t + b;
625	},
626	easeOutCubic: function (x, t, b, c, d) {
627		return c*((t=t/d-1)*t*t + 1) + b;
628	},
629	easeInOutCubic: function (x, t, b, c, d) {
630		if ((t/=d/2) < 1) return c/2*t*t*t + b;
631		return c/2*((t-=2)*t*t + 2) + b;
632	},
633	easeInQuart: function (x, t, b, c, d) {
634		return c*(t/=d)*t*t*t + b;
635	},
636	easeOutQuart: function (x, t, b, c, d) {
637		return -c * ((t=t/d-1)*t*t*t - 1) + b;
638	},
639	easeInOutQuart: function (x, t, b, c, d) {
640		if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
641		return -c/2 * ((t-=2)*t*t*t - 2) + b;
642	},
643	easeInQuint: function (x, t, b, c, d) {
644		return c*(t/=d)*t*t*t*t + b;
645	},
646	easeOutQuint: function (x, t, b, c, d) {
647		return c*((t=t/d-1)*t*t*t*t + 1) + b;
648	},
649	easeInOutQuint: function (x, t, b, c, d) {
650		if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
651		return c/2*((t-=2)*t*t*t*t + 2) + b;
652	},
653	easeInSine: function (x, t, b, c, d) {
654		return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
655	},
656	easeOutSine: function (x, t, b, c, d) {
657		return c * Math.sin(t/d * (Math.PI/2)) + b;
658	},
659	easeInOutSine: function (x, t, b, c, d) {
660		return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
661	},
662	easeInExpo: function (x, t, b, c, d) {
663		return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
664	},
665	easeOutExpo: function (x, t, b, c, d) {
666		return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
667	},
668	easeInOutExpo: function (x, t, b, c, d) {
669		if (t==0) return b;
670		if (t==d) return b+c;
671		if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
672		return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
673	},
674	easeInCirc: function (x, t, b, c, d) {
675		return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
676	},
677	easeOutCirc: function (x, t, b, c, d) {
678		return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
679	},
680	easeInOutCirc: function (x, t, b, c, d) {
681		if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
682		return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
683	},
684	easeInElastic: function (x, t, b, c, d) {
685		var s=1.70158;var p=0;var a=c;
686		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
687		if (a < Math.abs(c)) { a=c; var s=p/4; }
688		else var s = p/(2*Math.PI) * Math.asin (c/a);
689		return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
690	},
691	easeOutElastic: function (x, t, b, c, d) {
692		var s=1.70158;var p=0;var a=c;
693		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
694		if (a < Math.abs(c)) { a=c; var s=p/4; }
695		else var s = p/(2*Math.PI) * Math.asin (c/a);
696		return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
697	},
698	easeInOutElastic: function (x, t, b, c, d) {
699		var s=1.70158;var p=0;var a=c;
700		if (t==0) return b;  if ((t/=d/2)==2) return b+c;  if (!p) p=d*(.3*1.5);
701		if (a < Math.abs(c)) { a=c; var s=p/4; }
702		else var s = p/(2*Math.PI) * Math.asin (c/a);
703		if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
704		return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
705	},
706	easeInBack: function (x, t, b, c, d, s) {
707		if (s == undefined) s = 1.70158;
708		return c*(t/=d)*t*((s+1)*t - s) + b;
709	},
710	easeOutBack: function (x, t, b, c, d, s) {
711		if (s == undefined) s = 1.70158;
712		return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
713	},
714	easeInOutBack: function (x, t, b, c, d, s) {
715		if (s == undefined) s = 1.70158;
716		if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
717		return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
718	},
719	easeInBounce: function (x, t, b, c, d) {
720		return c - $.easing.easeOutBounce (x, d-t, 0, c, d) + b;
721	},
722	easeOutBounce: function (x, t, b, c, d) {
723		if ((t/=d) < (1/2.75)) {
724			return c*(7.5625*t*t) + b;
725		} else if (t < (2/2.75)) {
726			return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
727		} else if (t < (2.5/2.75)) {
728			return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
729		} else {
730			return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
731		}
732	},
733	easeInOutBounce: function (x, t, b, c, d) {
734		if (t < d/2) return $.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;
735		return $.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;
736	}
737});
738
739/*
740 *
741 * TERMS OF USE - EASING EQUATIONS
742 *
743 * Open source under the BSD License.
744 *
745 * Copyright 2001 Robert Penner
746 * All rights reserved.
747 *
748 * Redistribution and use in source and binary forms, with or without modification,
749 * are permitted provided that the following conditions are met:
750 *
751 * Redistributions of source code must retain the above copyright notice, this list of
752 * conditions and the following disclaimer.
753 * Redistributions in binary form must reproduce the above copyright notice, this list
754 * of conditions and the following disclaimer in the documentation and/or other materials
755 * provided with the distribution.
756 *
757 * Neither the name of the author nor the names of contributors may be used to endorse
758 * or promote products derived from this software without specific prior written permission.
759 *
760 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
761 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
762 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
763 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
764 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
765 * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
766 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
767 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
768 * OF THE POSSIBILITY OF SUCH DAMAGE.
769 *
770 */
771
772})(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.