apphunk 0.1.1 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.rdoc +5 -6
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/apphunk.gemspec +35 -3
- data/doc/apple-touch-icon.png +0 -0
- data/doc/classes/Apphunk/Config.html +159 -0
- data/doc/classes/Apphunk/Logger.html +105 -0
- data/doc/classes/Apphunk/Proxy.html +196 -0
- data/doc/classes/Apphunk/Remote/Result.html +125 -0
- data/doc/classes/Apphunk/Remote.html +117 -0
- data/doc/classes/Apphunk.html +294 -0
- data/doc/created.rid +1 -0
- data/doc/css/main.css +263 -0
- data/doc/css/panel.css +383 -0
- data/doc/css/reset.css +53 -0
- data/doc/favicon.ico +0 -0
- data/doc/files/LICENSE.html +81 -0
- data/doc/files/README_rdoc.html +87 -0
- data/doc/files/lib/apphunk/config_rb.html +59 -0
- data/doc/files/lib/apphunk/logger_rb.html +59 -0
- data/doc/files/lib/apphunk/proxy_rb.html +68 -0
- data/doc/files/lib/apphunk/remote/result_rb.html +59 -0
- data/doc/files/lib/apphunk/remote_rb.html +70 -0
- data/doc/files/lib/apphunk_rb.html +66 -0
- data/doc/i/arrows.png +0 -0
- data/doc/i/results_bg.png +0 -0
- data/doc/i/tree_bg.png +0 -0
- data/doc/index.html +14 -0
- data/doc/js/jquery-1.3.2.min.js +19 -0
- data/doc/js/jquery-effect.js +593 -0
- data/doc/js/main.js +22 -0
- data/doc/js/searchdoc.js +628 -0
- data/doc/panel/index.html +71 -0
- data/doc/panel/search_index.js +1 -0
- data/doc/panel/tree.js +1 -0
- data/lib/apphunk/config.rb +54 -0
- data/lib/apphunk/logger.rb +12 -4
- data/lib/apphunk/proxy.rb +6 -2
- data/lib/apphunk.rb +57 -0
- data/rails/init.rb +3 -0
- data/spec/apphunk/proxy_spec.rb +11 -5
- metadata +35 -3
@@ -0,0 +1,593 @@
|
|
1
|
+
/*
|
2
|
+
* jQuery UI Effects 1.6rc6
|
3
|
+
*
|
4
|
+
* Copyright (c) 2009 AUTHORS.txt (http://ui.jquery.com/about)
|
5
|
+
* Dual licensed under the MIT (MIT-LICENSE.txt)
|
6
|
+
* and GPL (GPL-LICENSE.txt) licenses.
|
7
|
+
*
|
8
|
+
* http://docs.jquery.com/UI/Effects/
|
9
|
+
*/
|
10
|
+
;(function($) {
|
11
|
+
|
12
|
+
$.effects = $.effects || {}; //Add the 'effects' scope
|
13
|
+
|
14
|
+
$.extend($.effects, {
|
15
|
+
version: "1.6rc6",
|
16
|
+
|
17
|
+
// Saves a set of properties in a data storage
|
18
|
+
save: function(element, set) {
|
19
|
+
for(var i=0; i < set.length; i++) {
|
20
|
+
if(set[i] !== null) element.data("ec.storage."+set[i], element[0].style[set[i]]);
|
21
|
+
}
|
22
|
+
},
|
23
|
+
|
24
|
+
// Restores a set of previously saved properties from a data storage
|
25
|
+
restore: function(element, set) {
|
26
|
+
for(var i=0; i < set.length; i++) {
|
27
|
+
if(set[i] !== null) element.css(set[i], element.data("ec.storage."+set[i]));
|
28
|
+
}
|
29
|
+
},
|
30
|
+
|
31
|
+
setMode: function(el, mode) {
|
32
|
+
if (mode == 'toggle') mode = el.is(':hidden') ? 'show' : 'hide'; // Set for toggle
|
33
|
+
return mode;
|
34
|
+
},
|
35
|
+
|
36
|
+
getBaseline: function(origin, original) { // Translates a [top,left] array into a baseline value
|
37
|
+
// this should be a little more flexible in the future to handle a string & hash
|
38
|
+
var y, x;
|
39
|
+
switch (origin[0]) {
|
40
|
+
case 'top': y = 0; break;
|
41
|
+
case 'middle': y = 0.5; break;
|
42
|
+
case 'bottom': y = 1; break;
|
43
|
+
default: y = origin[0] / original.height;
|
44
|
+
};
|
45
|
+
switch (origin[1]) {
|
46
|
+
case 'left': x = 0; break;
|
47
|
+
case 'center': x = 0.5; break;
|
48
|
+
case 'right': x = 1; break;
|
49
|
+
default: x = origin[1] / original.width;
|
50
|
+
};
|
51
|
+
return {x: x, y: y};
|
52
|
+
},
|
53
|
+
|
54
|
+
// Wraps the element around a wrapper that copies position properties
|
55
|
+
createWrapper: function(element) {
|
56
|
+
|
57
|
+
//if the element is already wrapped, return it
|
58
|
+
if (element.parent().is('.ui-effects-wrapper'))
|
59
|
+
return element.parent();
|
60
|
+
|
61
|
+
//Cache width,height and float properties of the element, and create a wrapper around it
|
62
|
+
var props = { width: element.outerWidth(true), height: element.outerHeight(true), 'float': element.css('float') };
|
63
|
+
element.wrap('<div class="ui-effects-wrapper" style="font-size:100%;background:transparent;border:none;margin:0;padding:0"></div>');
|
64
|
+
var wrapper = element.parent();
|
65
|
+
|
66
|
+
//Transfer the positioning of the element to the wrapper
|
67
|
+
if (element.css('position') == 'static') {
|
68
|
+
wrapper.css({ position: 'relative' });
|
69
|
+
element.css({ position: 'relative'} );
|
70
|
+
} else {
|
71
|
+
var top = element.css('top'); if(isNaN(parseInt(top,10))) top = 'auto';
|
72
|
+
var left = element.css('left'); if(isNaN(parseInt(left,10))) left = 'auto';
|
73
|
+
wrapper.css({ position: element.css('position'), top: top, left: left, zIndex: element.css('z-index') }).show();
|
74
|
+
element.css({position: 'relative', top: 0, left: 0 });
|
75
|
+
}
|
76
|
+
|
77
|
+
wrapper.css(props);
|
78
|
+
return wrapper;
|
79
|
+
},
|
80
|
+
|
81
|
+
removeWrapper: function(element) {
|
82
|
+
if (element.parent().is('.ui-effects-wrapper'))
|
83
|
+
return element.parent().replaceWith(element);
|
84
|
+
return element;
|
85
|
+
},
|
86
|
+
|
87
|
+
setTransition: function(element, list, factor, value) {
|
88
|
+
value = value || {};
|
89
|
+
$.each(list, function(i, x){
|
90
|
+
unit = element.cssUnit(x);
|
91
|
+
if (unit[0] > 0) value[x] = unit[0] * factor + unit[1];
|
92
|
+
});
|
93
|
+
return value;
|
94
|
+
},
|
95
|
+
|
96
|
+
//Base function to animate from one class to another in a seamless transition
|
97
|
+
animateClass: function(value, duration, easing, callback) {
|
98
|
+
|
99
|
+
var cb = (typeof easing == "function" ? easing : (callback ? callback : null));
|
100
|
+
var ea = (typeof easing == "string" ? easing : null);
|
101
|
+
|
102
|
+
return this.each(function() {
|
103
|
+
|
104
|
+
var offset = {}; var that = $(this); var oldStyleAttr = that.attr("style") || '';
|
105
|
+
if(typeof oldStyleAttr == 'object') oldStyleAttr = oldStyleAttr["cssText"]; /* Stupidly in IE, style is a object.. */
|
106
|
+
if(value.toggle) { that.hasClass(value.toggle) ? value.remove = value.toggle : value.add = value.toggle; }
|
107
|
+
|
108
|
+
//Let's get a style offset
|
109
|
+
var oldStyle = $.extend({}, (document.defaultView ? document.defaultView.getComputedStyle(this,null) : this.currentStyle));
|
110
|
+
if(value.add) that.addClass(value.add); if(value.remove) that.removeClass(value.remove);
|
111
|
+
var newStyle = $.extend({}, (document.defaultView ? document.defaultView.getComputedStyle(this,null) : this.currentStyle));
|
112
|
+
if(value.add) that.removeClass(value.add); if(value.remove) that.addClass(value.remove);
|
113
|
+
|
114
|
+
// The main function to form the object for animation
|
115
|
+
for(var n in newStyle) {
|
116
|
+
if( typeof newStyle[n] != "function" && newStyle[n] /* No functions and null properties */
|
117
|
+
&& n.indexOf("Moz") == -1 && n.indexOf("length") == -1 /* No mozilla spezific render properties. */
|
118
|
+
&& newStyle[n] != oldStyle[n] /* Only values that have changed are used for the animation */
|
119
|
+
&& (n.match(/color/i) || (!n.match(/color/i) && !isNaN(parseInt(newStyle[n],10)))) /* Only things that can be parsed to integers or colors */
|
120
|
+
&& (oldStyle.position != "static" || (oldStyle.position == "static" && !n.match(/left|top|bottom|right/))) /* No need for positions when dealing with static positions */
|
121
|
+
) offset[n] = newStyle[n];
|
122
|
+
}
|
123
|
+
|
124
|
+
that.animate(offset, duration, ea, function() { // Animate the newly constructed offset object
|
125
|
+
// Change style attribute back to original. For stupid IE, we need to clear the damn object.
|
126
|
+
if(typeof $(this).attr("style") == 'object') { $(this).attr("style")["cssText"] = ""; $(this).attr("style")["cssText"] = oldStyleAttr; } else $(this).attr("style", oldStyleAttr);
|
127
|
+
if(value.add) $(this).addClass(value.add); if(value.remove) $(this).removeClass(value.remove);
|
128
|
+
if(cb) cb.apply(this, arguments);
|
129
|
+
});
|
130
|
+
|
131
|
+
});
|
132
|
+
}
|
133
|
+
});
|
134
|
+
|
135
|
+
|
136
|
+
function _normalizeArguments(a, m) {
|
137
|
+
|
138
|
+
var o = a[1] && a[1].constructor == Object ? a[1] : {}; if(m) o.mode = m;
|
139
|
+
var speed = a[1] && a[1].constructor != Object ? a[1] : o.duration; //either comes from options.duration or the second argument
|
140
|
+
speed = $.fx.off ? 0 : typeof speed === "number" ? speed : $.fx.speeds[speed] || $.fx.speeds._default;
|
141
|
+
var callback = o.callback || ( $.isFunction(a[2]) && a[2] ) || ( $.isFunction(a[3]) && a[3] );
|
142
|
+
|
143
|
+
return [a[0], o, speed, callback];
|
144
|
+
|
145
|
+
}
|
146
|
+
|
147
|
+
//Extend the methods of jQuery
|
148
|
+
$.fn.extend({
|
149
|
+
|
150
|
+
//Save old methods
|
151
|
+
_show: $.fn.show,
|
152
|
+
_hide: $.fn.hide,
|
153
|
+
__toggle: $.fn.toggle,
|
154
|
+
_addClass: $.fn.addClass,
|
155
|
+
_removeClass: $.fn.removeClass,
|
156
|
+
_toggleClass: $.fn.toggleClass,
|
157
|
+
|
158
|
+
// New effect methods
|
159
|
+
effect: function(fx, options, speed, callback) {
|
160
|
+
return $.effects[fx] ? $.effects[fx].call(this, {method: fx, options: options || {}, duration: speed, callback: callback }) : null;
|
161
|
+
},
|
162
|
+
|
163
|
+
show: function() {
|
164
|
+
if(!arguments[0] || (arguments[0].constructor == Number || (/(slow|normal|fast)/).test(arguments[0])))
|
165
|
+
return this._show.apply(this, arguments);
|
166
|
+
else {
|
167
|
+
return this.effect.apply(this, _normalizeArguments(arguments, 'show'));
|
168
|
+
}
|
169
|
+
},
|
170
|
+
|
171
|
+
hide: function() {
|
172
|
+
if(!arguments[0] || (arguments[0].constructor == Number || (/(slow|normal|fast)/).test(arguments[0])))
|
173
|
+
return this._hide.apply(this, arguments);
|
174
|
+
else {
|
175
|
+
return this.effect.apply(this, _normalizeArguments(arguments, 'hide'));
|
176
|
+
}
|
177
|
+
},
|
178
|
+
|
179
|
+
toggle: function(){
|
180
|
+
if(!arguments[0] || (arguments[0].constructor == Number || (/(slow|normal|fast)/).test(arguments[0])) || (arguments[0].constructor == Function))
|
181
|
+
return this.__toggle.apply(this, arguments);
|
182
|
+
else {
|
183
|
+
return this.effect.apply(this, _normalizeArguments(arguments, 'toggle'));
|
184
|
+
}
|
185
|
+
},
|
186
|
+
|
187
|
+
addClass: function(classNames, speed, easing, callback) {
|
188
|
+
return speed ? $.effects.animateClass.apply(this, [{ add: classNames },speed,easing,callback]) : this._addClass(classNames);
|
189
|
+
},
|
190
|
+
removeClass: function(classNames,speed,easing,callback) {
|
191
|
+
return speed ? $.effects.animateClass.apply(this, [{ remove: classNames },speed,easing,callback]) : this._removeClass(classNames);
|
192
|
+
},
|
193
|
+
toggleClass: function(classNames,speed,easing,callback) {
|
194
|
+
return ( (typeof speed !== "boolean") && speed ) ? $.effects.animateClass.apply(this, [{ toggle: classNames },speed,easing,callback]) : this._toggleClass(classNames, speed);
|
195
|
+
},
|
196
|
+
morph: function(remove,add,speed,easing,callback) {
|
197
|
+
return $.effects.animateClass.apply(this, [{ add: add, remove: remove },speed,easing,callback]);
|
198
|
+
},
|
199
|
+
switchClass: function() {
|
200
|
+
return this.morph.apply(this, arguments);
|
201
|
+
},
|
202
|
+
|
203
|
+
// helper functions
|
204
|
+
cssUnit: function(key) {
|
205
|
+
var style = this.css(key), val = [];
|
206
|
+
$.each( ['em','px','%','pt'], function(i, unit){
|
207
|
+
if(style.indexOf(unit) > 0)
|
208
|
+
val = [parseFloat(style), unit];
|
209
|
+
});
|
210
|
+
return val;
|
211
|
+
}
|
212
|
+
});
|
213
|
+
|
214
|
+
/*
|
215
|
+
* jQuery Color Animations
|
216
|
+
* Copyright 2007 John Resig
|
217
|
+
* Released under the MIT and GPL licenses.
|
218
|
+
*/
|
219
|
+
|
220
|
+
// We override the animation for all of these color styles
|
221
|
+
$.each(['backgroundColor', 'borderBottomColor', 'borderLeftColor', 'borderRightColor', 'borderTopColor', 'color', 'outlineColor'], function(i,attr){
|
222
|
+
$.fx.step[attr] = function(fx) {
|
223
|
+
if ( fx.state == 0 ) {
|
224
|
+
fx.start = getColor( fx.elem, attr );
|
225
|
+
fx.end = getRGB( fx.end );
|
226
|
+
}
|
227
|
+
|
228
|
+
fx.elem.style[attr] = "rgb(" + [
|
229
|
+
Math.max(Math.min( parseInt((fx.pos * (fx.end[0] - fx.start[0])) + fx.start[0],10), 255), 0),
|
230
|
+
Math.max(Math.min( parseInt((fx.pos * (fx.end[1] - fx.start[1])) + fx.start[1],10), 255), 0),
|
231
|
+
Math.max(Math.min( parseInt((fx.pos * (fx.end[2] - fx.start[2])) + fx.start[2],10), 255), 0)
|
232
|
+
].join(",") + ")";
|
233
|
+
};
|
234
|
+
});
|
235
|
+
|
236
|
+
// Color Conversion functions from highlightFade
|
237
|
+
// By Blair Mitchelmore
|
238
|
+
// http://jquery.offput.ca/highlightFade/
|
239
|
+
|
240
|
+
// Parse strings looking for color tuples [255,255,255]
|
241
|
+
function getRGB(color) {
|
242
|
+
var result;
|
243
|
+
|
244
|
+
// Check if we're already dealing with an array of colors
|
245
|
+
if ( color && color.constructor == Array && color.length == 3 )
|
246
|
+
return color;
|
247
|
+
|
248
|
+
// Look for rgb(num,num,num)
|
249
|
+
if (result = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color))
|
250
|
+
return [parseInt(result[1],10), parseInt(result[2],10), parseInt(result[3],10)];
|
251
|
+
|
252
|
+
// Look for rgb(num%,num%,num%)
|
253
|
+
if (result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color))
|
254
|
+
return [parseFloat(result[1])*2.55, parseFloat(result[2])*2.55, parseFloat(result[3])*2.55];
|
255
|
+
|
256
|
+
// Look for #a0b1c2
|
257
|
+
if (result = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color))
|
258
|
+
return [parseInt(result[1],16), parseInt(result[2],16), parseInt(result[3],16)];
|
259
|
+
|
260
|
+
// Look for #fff
|
261
|
+
if (result = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color))
|
262
|
+
return [parseInt(result[1]+result[1],16), parseInt(result[2]+result[2],16), parseInt(result[3]+result[3],16)];
|
263
|
+
|
264
|
+
// Look for rgba(0, 0, 0, 0) == transparent in Safari 3
|
265
|
+
if (result = /rgba\(0, 0, 0, 0\)/.exec(color))
|
266
|
+
return colors['transparent'];
|
267
|
+
|
268
|
+
// Otherwise, we're most likely dealing with a named color
|
269
|
+
return colors[$.trim(color).toLowerCase()];
|
270
|
+
}
|
271
|
+
|
272
|
+
function getColor(elem, attr) {
|
273
|
+
var color;
|
274
|
+
|
275
|
+
do {
|
276
|
+
color = $.curCSS(elem, attr);
|
277
|
+
|
278
|
+
// Keep going until we find an element that has color, or we hit the body
|
279
|
+
if ( color != '' && color != 'transparent' || $.nodeName(elem, "body") )
|
280
|
+
break;
|
281
|
+
|
282
|
+
attr = "backgroundColor";
|
283
|
+
} while ( elem = elem.parentNode );
|
284
|
+
|
285
|
+
return getRGB(color);
|
286
|
+
};
|
287
|
+
|
288
|
+
// Some named colors to work with
|
289
|
+
// From Interface by Stefan Petre
|
290
|
+
// http://interface.eyecon.ro/
|
291
|
+
|
292
|
+
var colors = {
|
293
|
+
aqua:[0,255,255],
|
294
|
+
azure:[240,255,255],
|
295
|
+
beige:[245,245,220],
|
296
|
+
black:[0,0,0],
|
297
|
+
blue:[0,0,255],
|
298
|
+
brown:[165,42,42],
|
299
|
+
cyan:[0,255,255],
|
300
|
+
darkblue:[0,0,139],
|
301
|
+
darkcyan:[0,139,139],
|
302
|
+
darkgrey:[169,169,169],
|
303
|
+
darkgreen:[0,100,0],
|
304
|
+
darkkhaki:[189,183,107],
|
305
|
+
darkmagenta:[139,0,139],
|
306
|
+
darkolivegreen:[85,107,47],
|
307
|
+
darkorange:[255,140,0],
|
308
|
+
darkorchid:[153,50,204],
|
309
|
+
darkred:[139,0,0],
|
310
|
+
darksalmon:[233,150,122],
|
311
|
+
darkviolet:[148,0,211],
|
312
|
+
fuchsia:[255,0,255],
|
313
|
+
gold:[255,215,0],
|
314
|
+
green:[0,128,0],
|
315
|
+
indigo:[75,0,130],
|
316
|
+
khaki:[240,230,140],
|
317
|
+
lightblue:[173,216,230],
|
318
|
+
lightcyan:[224,255,255],
|
319
|
+
lightgreen:[144,238,144],
|
320
|
+
lightgrey:[211,211,211],
|
321
|
+
lightpink:[255,182,193],
|
322
|
+
lightyellow:[255,255,224],
|
323
|
+
lime:[0,255,0],
|
324
|
+
magenta:[255,0,255],
|
325
|
+
maroon:[128,0,0],
|
326
|
+
navy:[0,0,128],
|
327
|
+
olive:[128,128,0],
|
328
|
+
orange:[255,165,0],
|
329
|
+
pink:[255,192,203],
|
330
|
+
purple:[128,0,128],
|
331
|
+
violet:[128,0,128],
|
332
|
+
red:[255,0,0],
|
333
|
+
silver:[192,192,192],
|
334
|
+
white:[255,255,255],
|
335
|
+
yellow:[255,255,0],
|
336
|
+
transparent: [255,255,255]
|
337
|
+
};
|
338
|
+
|
339
|
+
/*
|
340
|
+
* jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
|
341
|
+
*
|
342
|
+
* Uses the built in easing capabilities added In jQuery 1.1
|
343
|
+
* to offer multiple easing options
|
344
|
+
*
|
345
|
+
* TERMS OF USE - jQuery Easing
|
346
|
+
*
|
347
|
+
* Open source under the BSD License.
|
348
|
+
*
|
349
|
+
* Copyright 2008 George McGinley Smith
|
350
|
+
* All rights reserved.
|
351
|
+
*
|
352
|
+
* Redistribution and use in source and binary forms, with or without modification,
|
353
|
+
* are permitted provided that the following conditions are met:
|
354
|
+
*
|
355
|
+
* Redistributions of source code must retain the above copyright notice, this list of
|
356
|
+
* conditions and the following disclaimer.
|
357
|
+
* Redistributions in binary form must reproduce the above copyright notice, this list
|
358
|
+
* of conditions and the following disclaimer in the documentation and/or other materials
|
359
|
+
* provided with the distribution.
|
360
|
+
*
|
361
|
+
* Neither the name of the author nor the names of contributors may be used to endorse
|
362
|
+
* or promote products derived from this software without specific prior written permission.
|
363
|
+
*
|
364
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
365
|
+
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
366
|
+
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
367
|
+
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
368
|
+
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
369
|
+
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
370
|
+
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
371
|
+
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
372
|
+
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
373
|
+
*
|
374
|
+
*/
|
375
|
+
|
376
|
+
// t: current time, b: begInnIng value, c: change In value, d: duration
|
377
|
+
$.easing.jswing = $.easing.swing;
|
378
|
+
|
379
|
+
$.extend($.easing,
|
380
|
+
{
|
381
|
+
def: 'easeOutQuad',
|
382
|
+
swing: function (x, t, b, c, d) {
|
383
|
+
//alert($.easing.default);
|
384
|
+
return $.easing[$.easing.def](x, t, b, c, d);
|
385
|
+
},
|
386
|
+
easeInQuad: function (x, t, b, c, d) {
|
387
|
+
return c*(t/=d)*t + b;
|
388
|
+
},
|
389
|
+
easeOutQuad: function (x, t, b, c, d) {
|
390
|
+
return -c *(t/=d)*(t-2) + b;
|
391
|
+
},
|
392
|
+
easeInOutQuad: function (x, t, b, c, d) {
|
393
|
+
if ((t/=d/2) < 1) return c/2*t*t + b;
|
394
|
+
return -c/2 * ((--t)*(t-2) - 1) + b;
|
395
|
+
},
|
396
|
+
easeInCubic: function (x, t, b, c, d) {
|
397
|
+
return c*(t/=d)*t*t + b;
|
398
|
+
},
|
399
|
+
easeOutCubic: function (x, t, b, c, d) {
|
400
|
+
return c*((t=t/d-1)*t*t + 1) + b;
|
401
|
+
},
|
402
|
+
easeInOutCubic: function (x, t, b, c, d) {
|
403
|
+
if ((t/=d/2) < 1) return c/2*t*t*t + b;
|
404
|
+
return c/2*((t-=2)*t*t + 2) + b;
|
405
|
+
},
|
406
|
+
easeInQuart: function (x, t, b, c, d) {
|
407
|
+
return c*(t/=d)*t*t*t + b;
|
408
|
+
},
|
409
|
+
easeOutQuart: function (x, t, b, c, d) {
|
410
|
+
return -c * ((t=t/d-1)*t*t*t - 1) + b;
|
411
|
+
},
|
412
|
+
easeInOutQuart: function (x, t, b, c, d) {
|
413
|
+
if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
|
414
|
+
return -c/2 * ((t-=2)*t*t*t - 2) + b;
|
415
|
+
},
|
416
|
+
easeInQuint: function (x, t, b, c, d) {
|
417
|
+
return c*(t/=d)*t*t*t*t + b;
|
418
|
+
},
|
419
|
+
easeOutQuint: function (x, t, b, c, d) {
|
420
|
+
return c*((t=t/d-1)*t*t*t*t + 1) + b;
|
421
|
+
},
|
422
|
+
easeInOutQuint: function (x, t, b, c, d) {
|
423
|
+
if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
|
424
|
+
return c/2*((t-=2)*t*t*t*t + 2) + b;
|
425
|
+
},
|
426
|
+
easeInSine: function (x, t, b, c, d) {
|
427
|
+
return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
|
428
|
+
},
|
429
|
+
easeOutSine: function (x, t, b, c, d) {
|
430
|
+
return c * Math.sin(t/d * (Math.PI/2)) + b;
|
431
|
+
},
|
432
|
+
easeInOutSine: function (x, t, b, c, d) {
|
433
|
+
return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
|
434
|
+
},
|
435
|
+
easeInExpo: function (x, t, b, c, d) {
|
436
|
+
return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
|
437
|
+
},
|
438
|
+
easeOutExpo: function (x, t, b, c, d) {
|
439
|
+
return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
|
440
|
+
},
|
441
|
+
easeInOutExpo: function (x, t, b, c, d) {
|
442
|
+
if (t==0) return b;
|
443
|
+
if (t==d) return b+c;
|
444
|
+
if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
|
445
|
+
return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
|
446
|
+
},
|
447
|
+
easeInCirc: function (x, t, b, c, d) {
|
448
|
+
return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
|
449
|
+
},
|
450
|
+
easeOutCirc: function (x, t, b, c, d) {
|
451
|
+
return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
|
452
|
+
},
|
453
|
+
easeInOutCirc: function (x, t, b, c, d) {
|
454
|
+
if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
|
455
|
+
return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
|
456
|
+
},
|
457
|
+
easeInElastic: function (x, t, b, c, d) {
|
458
|
+
var s=1.70158;var p=0;var a=c;
|
459
|
+
if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
|
460
|
+
if (a < Math.abs(c)) { a=c; var s=p/4; }
|
461
|
+
else var s = p/(2*Math.PI) * Math.asin (c/a);
|
462
|
+
return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
|
463
|
+
},
|
464
|
+
easeOutElastic: function (x, t, b, c, d) {
|
465
|
+
var s=1.70158;var p=0;var a=c;
|
466
|
+
if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
|
467
|
+
if (a < Math.abs(c)) { a=c; var s=p/4; }
|
468
|
+
else var s = p/(2*Math.PI) * Math.asin (c/a);
|
469
|
+
return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
|
470
|
+
},
|
471
|
+
easeInOutElastic: function (x, t, b, c, d) {
|
472
|
+
var s=1.70158;var p=0;var a=c;
|
473
|
+
if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5);
|
474
|
+
if (a < Math.abs(c)) { a=c; var s=p/4; }
|
475
|
+
else var s = p/(2*Math.PI) * Math.asin (c/a);
|
476
|
+
if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
|
477
|
+
return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
|
478
|
+
},
|
479
|
+
easeInBack: function (x, t, b, c, d, s) {
|
480
|
+
if (s == undefined) s = 1.70158;
|
481
|
+
return c*(t/=d)*t*((s+1)*t - s) + b;
|
482
|
+
},
|
483
|
+
easeOutBack: function (x, t, b, c, d, s) {
|
484
|
+
if (s == undefined) s = 1.70158;
|
485
|
+
return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
|
486
|
+
},
|
487
|
+
easeInOutBack: function (x, t, b, c, d, s) {
|
488
|
+
if (s == undefined) s = 1.70158;
|
489
|
+
if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
|
490
|
+
return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
|
491
|
+
},
|
492
|
+
easeInBounce: function (x, t, b, c, d) {
|
493
|
+
return c - $.easing.easeOutBounce (x, d-t, 0, c, d) + b;
|
494
|
+
},
|
495
|
+
easeOutBounce: function (x, t, b, c, d) {
|
496
|
+
if ((t/=d) < (1/2.75)) {
|
497
|
+
return c*(7.5625*t*t) + b;
|
498
|
+
} else if (t < (2/2.75)) {
|
499
|
+
return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
|
500
|
+
} else if (t < (2.5/2.75)) {
|
501
|
+
return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
|
502
|
+
} else {
|
503
|
+
return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
|
504
|
+
}
|
505
|
+
},
|
506
|
+
easeInOutBounce: function (x, t, b, c, d) {
|
507
|
+
if (t < d/2) return $.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;
|
508
|
+
return $.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;
|
509
|
+
}
|
510
|
+
});
|
511
|
+
/*
|
512
|
+
*
|
513
|
+
* TERMS OF USE - EASING EQUATIONS
|
514
|
+
*
|
515
|
+
* Open source under the BSD License.
|
516
|
+
*
|
517
|
+
* Copyright 2001 Robert Penner
|
518
|
+
* All rights reserved.
|
519
|
+
*
|
520
|
+
* Redistribution and use in source and binary forms, with or without modification,
|
521
|
+
* are permitted provided that the following conditions are met:
|
522
|
+
*
|
523
|
+
* Redistributions of source code must retain the above copyright notice, this list of
|
524
|
+
* conditions and the following disclaimer.
|
525
|
+
* Redistributions in binary form must reproduce the above copyright notice, this list
|
526
|
+
* of conditions and the following disclaimer in the documentation and/or other materials
|
527
|
+
* provided with the distribution.
|
528
|
+
*
|
529
|
+
* Neither the name of the author nor the names of contributors may be used to endorse
|
530
|
+
* or promote products derived from this software without specific prior written permission.
|
531
|
+
*
|
532
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
533
|
+
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
534
|
+
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
535
|
+
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
536
|
+
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
537
|
+
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
538
|
+
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
539
|
+
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
540
|
+
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
541
|
+
*
|
542
|
+
*/
|
543
|
+
|
544
|
+
})(jQuery);
|
545
|
+
|
546
|
+
/*
|
547
|
+
* jQuery UI Effects Highlight 1.6rc6
|
548
|
+
*
|
549
|
+
* Copyright (c) 2009 AUTHORS.txt (http://ui.jquery.com/about)
|
550
|
+
* Dual licensed under the MIT (MIT-LICENSE.txt)
|
551
|
+
* and GPL (GPL-LICENSE.txt) licenses.
|
552
|
+
*
|
553
|
+
* http://docs.jquery.com/UI/Effects/Highlight
|
554
|
+
*
|
555
|
+
* Depends:
|
556
|
+
* effects.core.js
|
557
|
+
*/
|
558
|
+
(function($) {
|
559
|
+
|
560
|
+
$.effects.highlight = function(o) {
|
561
|
+
|
562
|
+
return this.queue(function() {
|
563
|
+
|
564
|
+
// Create element
|
565
|
+
var el = $(this), props = ['backgroundImage','backgroundColor','opacity'];
|
566
|
+
|
567
|
+
// Set options
|
568
|
+
var mode = $.effects.setMode(el, o.options.mode || 'show'); // Set Mode
|
569
|
+
var color = o.options.color || "#ffff99"; // Default highlight color
|
570
|
+
var oldColor = el.css("backgroundColor");
|
571
|
+
|
572
|
+
// Adjust
|
573
|
+
$.effects.save(el, props); el.show(); // Save & Show
|
574
|
+
el.css({backgroundImage: 'none', backgroundColor: color}); // Shift
|
575
|
+
|
576
|
+
// Animation
|
577
|
+
var animation = {backgroundColor: oldColor };
|
578
|
+
if (mode == "hide") animation['opacity'] = 0;
|
579
|
+
|
580
|
+
// Animate
|
581
|
+
el.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() {
|
582
|
+
if(mode == "hide") el.hide();
|
583
|
+
$.effects.restore(el, props);
|
584
|
+
if (mode == "show" && $.browser.msie) this.style.removeAttribute('filter');
|
585
|
+
if(o.callback) o.callback.apply(this, arguments);
|
586
|
+
el.dequeue();
|
587
|
+
}});
|
588
|
+
|
589
|
+
});
|
590
|
+
|
591
|
+
};
|
592
|
+
|
593
|
+
})(jQuery);
|
data/doc/js/main.js
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
function toggleSource( id )
|
2
|
+
{
|
3
|
+
var $src = $('#' + id).toggle();
|
4
|
+
$('#l_' + id).html($src.css('display') == 'none' ? 'show' : 'hide');
|
5
|
+
}
|
6
|
+
|
7
|
+
function openCode( url )
|
8
|
+
{
|
9
|
+
window.open( url, "SOURCE_CODE", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=480,width=750" ).focus();
|
10
|
+
}
|
11
|
+
|
12
|
+
|
13
|
+
window.highlight = function(url) {
|
14
|
+
var hash = url.match(/#([^#]+)$/)
|
15
|
+
if(hash) {
|
16
|
+
$('a[name=' + hash[1] + ']').parent().effect('highlight', {}, 'slow')
|
17
|
+
}
|
18
|
+
}
|
19
|
+
|
20
|
+
$(function() {
|
21
|
+
highlight('#' + location.hash);
|
22
|
+
});
|