1/* 2moo.fx, simple effects library built with prototype.js (http://prototype.conio.net). 3by Valerio Proietti (http://mad4milk.net) MIT-style LICENSE. 4for more info (http://moofx.mad4milk.net). 510/24/2005 6v(1.0.2) 7*/ 8 9//base 10var fx = new Object(); 11fx.Base = function(){}; 12fx.Base.prototype = { 13 setOptions: function(options) { 14 this.options = { 15 duration: 500, 16 onComplete: '' 17 } 18 Object.extend(this.options, options || {}); 19 }, 20 21 go: function() { 22 this.duration = this.options.duration; 23 this.startTime = (new Date).getTime(); 24 this.timer = setInterval (this.step.bind(this), 13); 25 }, 26 27 step: function() { 28 var time = (new Date).getTime(); 29 var Tpos = (time - this.startTime) / (this.duration); 30 if (time >= this.duration+this.startTime) { 31 this.now = this.to; 32 clearInterval (this.timer); 33 this.timer = null; 34 if (this.options.onComplete) setTimeout(this.options.onComplete.bind(this), 10); 35 } 36 else { 37 this.now = ((-Math.cos(Tpos*Math.PI)/2) + 0.5) * (this.to-this.from) + this.from; 38 //this time-position, sinoidal transition thing is from script.aculo.us 39 } 40 this.increase(); 41 }, 42 43 custom: function(from, to) { 44 if (this.timer != null) return; 45 this.from = from; 46 this.to = to; 47 this.go(); 48 }, 49 50 hide: function() { 51 this.now = 0; 52 this.increase(); 53 }, 54 55 clearTimer: function() { 56 clearInterval(this.timer); 57 this.timer = null; 58 } 59} 60 61//stretchers 62fx.Layout = Class.create(); 63fx.Layout.prototype = Object.extend(new fx.Base(), { 64 initialize: function(el, options) { 65 this.el = $(el); 66 this.el.style.overflow = "hidden"; 67 this.el.iniWidth = this.el.offsetWidth; 68 this.el.iniHeight = this.el.offsetHeight; 69 this.setOptions(options); 70 } 71}); 72 73fx.Height = Class.create(); 74Object.extend(Object.extend(fx.Height.prototype, fx.Layout.prototype), { 75 increase: function() { 76 this.el.style.height = this.now + "px"; 77 }, 78 79 toggle: function() { 80 if (this.el.offsetHeight > 0) this.custom(this.el.offsetHeight, 0); 81 else this.custom(0, this.el.scrollHeight); 82 } 83});
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.