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.