right-rails 0.4.4 → 0.5.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/init.rb +37 -8
- data/javascripts/right-autocompleter-src.js +55 -41
- data/javascripts/right-autocompleter.js +2 -2
- data/javascripts/right-behavior-src.js +5 -5
- data/javascripts/right-behavior.js +2 -2
- data/javascripts/right-calendar-src.js +139 -67
- data/javascripts/right-calendar.js +2 -2
- data/javascripts/right-dnd-src.js +7 -7
- data/javascripts/right-dnd.js +2 -2
- data/javascripts/right-effects-src.js +9 -9
- data/javascripts/right-effects.js +2 -2
- data/javascripts/right-events-src.js +8 -8
- data/javascripts/right-events.js +2 -2
- data/javascripts/right-in-edit-src.js +10 -8
- data/javascripts/right-in-edit.js +2 -2
- data/javascripts/right-json-src.js +14 -15
- data/javascripts/right-json.js +2 -2
- data/javascripts/right-lightbox-src.js +141 -86
- data/javascripts/right-lightbox.js +3 -3
- data/javascripts/right-olds-src.js +26 -48
- data/javascripts/right-olds.js +2 -2
- data/javascripts/right-rails-src.js +109 -31
- data/javascripts/right-rails.js +2 -2
- data/javascripts/right-rater-src.js +20 -12
- data/javascripts/right-rater.js +2 -2
- data/javascripts/right-selectable-src.js +3 -3
- data/javascripts/right-selectable.js +1 -1
- data/javascripts/right-slider-src.js +3 -3
- data/javascripts/right-slider.js +1 -1
- data/javascripts/right-sortable-src.js +28 -28
- data/javascripts/right-sortable.js +2 -2
- data/javascripts/right-src.js +612 -405
- data/javascripts/right-tabs-src.js +115 -44
- data/javascripts/right-tabs.js +2 -2
- data/javascripts/right-tooltips-src.js +131 -74
- data/javascripts/right-tooltips.js +2 -2
- data/javascripts/right-ui-i18n-fr.js +4 -4
- data/javascripts/right-uploader-src.js +170 -0
- data/javascripts/right-uploader.js +9 -0
- data/javascripts/right.js +2 -4
- data/lib/right_rails.rb +1 -1
- data/lib/right_rails/helpers/basic.rb +10 -2
- data/lib/right_rails/helpers/misc.rb +16 -17
- data/lib/right_rails/helpers/rails.rb +0 -7
- data/spec/lib/right_rails/helpers/basic_spec.rb +0 -1
- data/spec/lib/right_rails/helpers/rails_spec.rb +24 -0
- data/spec/spec_helper.rb +9 -1
- metadata +14 -5
@@ -1,13 +1,13 @@
|
|
1
1
|
/**
|
2
2
|
* Unified tabs engine for RightJS (http://rightjs.org/ui/tabs)
|
3
3
|
*
|
4
|
-
* Copyright (C) 2009 Nikolay V. Nemshilov
|
4
|
+
* Copyright (C) 2009-2010 Nikolay V. Nemshilov
|
5
5
|
*/
|
6
6
|
if (!RightJS) throw "Gimme RightJS";
|
7
7
|
/**
|
8
8
|
* The basic tabs handling engine
|
9
9
|
*
|
10
|
-
* Copyright (C) 2009 Nikolay V. Nemshilov
|
10
|
+
* Copyright (C) 2009-2010 Nikolay V. Nemshilov
|
11
11
|
*/
|
12
12
|
var Tabs = new Class(Observer, {
|
13
13
|
extend: {
|
@@ -151,7 +151,7 @@ var Tabs = new Class(Observer, {
|
|
151
151
|
/**
|
152
152
|
* A single tab handling object
|
153
153
|
*
|
154
|
-
* Copyright (C) 2009 Nikolay V. Nemshilov
|
154
|
+
* Copyright (C) 2009-2010 Nikolay V. Nemshilov
|
155
155
|
*/
|
156
156
|
Tabs.Tab = new Class({
|
157
157
|
extend: {
|
@@ -261,7 +261,7 @@ Tabs.Tab = new Class({
|
|
261
261
|
/**
|
262
262
|
* The tab panels behavior logic
|
263
263
|
*
|
264
|
-
* Copyright (C) Nikolay V. Nemshilov
|
264
|
+
* Copyright (C) 2009-2010 Nikolay V. Nemshilov
|
265
265
|
*/
|
266
266
|
Tabs.Panel = new Class(Observer, {
|
267
267
|
|
@@ -274,15 +274,26 @@ Tabs.Panel = new Class(Observer, {
|
|
274
274
|
// shows the panel
|
275
275
|
show: function() {
|
276
276
|
return this.resizing(function() {
|
277
|
-
this.
|
277
|
+
this.tab.controller.tabs.each(function(tab) {
|
278
|
+
var element = tab.panel.element;
|
279
|
+
element[element == this.element ?
|
280
|
+
'addClass' : 'removeClass']('right-tabs-panel-current');
|
281
|
+
}, this);
|
278
282
|
});
|
279
283
|
},
|
280
284
|
|
281
285
|
// updates the panel content
|
282
286
|
update: function(content) {
|
283
|
-
|
287
|
+
// don't use resize if it's some other hidden tab was loaded asynch
|
288
|
+
if (this.tab.current()) {
|
289
|
+
this.resizing(function() {
|
290
|
+
this.element.update(content||'');
|
291
|
+
});
|
292
|
+
} else {
|
284
293
|
this.element.update(content||'');
|
285
|
-
}
|
294
|
+
}
|
295
|
+
|
296
|
+
return this;
|
286
297
|
},
|
287
298
|
|
288
299
|
// removes the pannel
|
@@ -293,34 +304,28 @@ Tabs.Panel = new Class(Observer, {
|
|
293
304
|
|
294
305
|
// locks the panel with a spinner locker
|
295
306
|
lock: function() {
|
296
|
-
|
297
|
-
var spinner = $E('div', {'class': 'right-tabs-panel-locker-spinner'}).insertTo(locker);
|
298
|
-
var dots = '1234'.split('').map(function(i) {
|
299
|
-
return $E('div', {'class': i == 1 ? 'glow':null}).insertTo(spinner);
|
300
|
-
});
|
301
|
-
|
302
|
-
(function() {
|
303
|
-
spinner.insert(dots.last(), 'top');
|
304
|
-
dots.unshift(dots.pop());
|
305
|
-
}).periodical(400);
|
306
|
-
|
307
|
-
this.element.insert(locker, 'top');
|
307
|
+
this.element.insert(this.locker(), 'top');
|
308
308
|
},
|
309
309
|
|
310
310
|
// protected
|
311
311
|
|
312
312
|
resizing: function(callback) {
|
313
|
-
if (Tabs.__working) return this.resizing.bind(this, callback).delay(20);
|
314
|
-
|
315
313
|
var controller = this.tab.controller;
|
314
|
+
|
315
|
+
if (controller.__working) return this.resizing.bind(this, callback).delay(100);
|
316
|
+
|
316
317
|
var options = controller.options;
|
317
318
|
var prev_panel = controller.element.first('.right-tabs-panel-current');
|
318
319
|
var this_panel = this.element;
|
319
320
|
var swapping = prev_panel != this_panel;
|
320
321
|
var loading = this.element.first('div.right-tabs-panel-locker');
|
321
322
|
|
323
|
+
// sometimes it looses the parent on remote tabs
|
324
|
+
if (this_panel.parentNode.hasClass('right-tabs-resizer')) this_panel.insertTo(prev_panel.parentNode);
|
325
|
+
|
322
326
|
if (options.resizeFx && self.Fx && prev_panel && (swapping || loading)) {
|
323
|
-
|
327
|
+
controller.__working = true;
|
328
|
+
var unlock = function() { controller.__working = false; };
|
324
329
|
|
325
330
|
// calculating the visual effects durations
|
326
331
|
var fx_name = (options.resizeFx == 'both' && loading) ? 'slide' : options.resizeFx;
|
@@ -339,15 +344,17 @@ Tabs.Panel = new Class(Observer, {
|
|
339
344
|
|
340
345
|
// getting the new size
|
341
346
|
var new_panel_height = this_panel.offsetHeight;
|
347
|
+
var fx_wrapper = null;
|
342
348
|
|
343
349
|
if (fx_name != 'fade' && prev_panel_height != new_panel_height) {
|
344
350
|
// preserving the whole element size so it didn't jump when we are tossing the tabs around
|
345
351
|
controller.element.style.height = controller.element.offsetHeight + 'px';
|
346
352
|
|
347
353
|
// wrapping the element with an overflowed element to visualize the resize
|
348
|
-
|
349
|
-
|
350
|
-
|
354
|
+
fx_wrapper = $E('div', {
|
355
|
+
'class': 'right-tabs-resizer',
|
356
|
+
'style': 'height: '+ prev_panel_height + 'px'
|
357
|
+
});
|
351
358
|
|
352
359
|
// in case of harmonica nicely hidding the previous panel
|
353
360
|
if (controller.isHarmonica && swapping) {
|
@@ -367,24 +374,64 @@ Tabs.Panel = new Class(Observer, {
|
|
367
374
|
// getting back the auto-size so we could resize it
|
368
375
|
controller.element.style.height = 'auto';
|
369
376
|
|
370
|
-
if (hide_wrapper) hide_wrapper.morph({height: '0px'}, {duration: resize_duration, onFinish: prev_back});
|
371
|
-
fx_wrapper.morph({height: new_panel_height + 'px'}, {duration: resize_duration, onFinish: set_back });
|
372
377
|
} else {
|
373
378
|
// removing the resize duration out of the equasion
|
374
379
|
rezise_duration = 0;
|
375
380
|
duration = fade_duration;
|
376
381
|
}
|
377
382
|
|
378
|
-
|
379
|
-
|
383
|
+
var counter = 0;
|
384
|
+
var set_back = function() {
|
385
|
+
if (fx_wrapper) {
|
386
|
+
if (fx_name == 'both' && !counter)
|
387
|
+
return counter ++;
|
388
|
+
|
389
|
+
fx_wrapper.replace(this_panel);
|
390
|
+
}
|
391
|
+
|
392
|
+
unlock();
|
393
|
+
};
|
394
|
+
|
395
|
+
if (hide_wrapper)
|
396
|
+
hide_wrapper.morph({height: '0px'},
|
397
|
+
{duration: resize_duration, onFinish: prev_back});
|
398
|
+
|
399
|
+
if (fx_wrapper)
|
400
|
+
fx_wrapper.morph({height: new_panel_height + 'px'},
|
401
|
+
{duration: resize_duration, onFinish: set_back});
|
380
402
|
|
381
|
-
|
382
|
-
|
403
|
+
if (fx_name != 'slide')
|
404
|
+
this_panel.morph.bind(this_panel, {opacity: 1},
|
405
|
+
{duration: fade_duration, onFinish: set_back}
|
406
|
+
).delay(resize_duration);
|
407
|
+
|
408
|
+
if (!fx_wrapper && fx_name == 'slide')
|
409
|
+
set_back();
|
410
|
+
|
383
411
|
} else {
|
384
412
|
callback.call(this);
|
385
413
|
}
|
386
414
|
|
387
415
|
return this;
|
416
|
+
},
|
417
|
+
|
418
|
+
// builds the locker element
|
419
|
+
locker: function() {
|
420
|
+
if (!this._locker) {
|
421
|
+
var locker = $E('div', {'class': 'right-tabs-panel-locker'});
|
422
|
+
var spinner = $E('div', {'class': 'right-tabs-panel-locker-spinner'}).insertTo(locker);
|
423
|
+
var dots = '1234'.split('').map(function(i) {
|
424
|
+
return $E('div', {'class': i == 1 ? 'glow':null}).insertTo(spinner);
|
425
|
+
});
|
426
|
+
|
427
|
+
(function() {
|
428
|
+
spinner.insert(dots.last(), 'top');
|
429
|
+
dots.unshift(dots.pop());
|
430
|
+
}).periodical(400);
|
431
|
+
|
432
|
+
this._locker = locker;
|
433
|
+
}
|
434
|
+
return this._locker;
|
388
435
|
}
|
389
436
|
|
390
437
|
});
|
@@ -397,7 +444,7 @@ Tabs.Panel = new Class(Observer, {
|
|
397
444
|
* any tab. But the carousel tabs scrolls to the next/previous
|
398
445
|
* tabs on the list.
|
399
446
|
*
|
400
|
-
* Copyright (C) Nikolay V. Nemshilov
|
447
|
+
* Copyright (C) 2009-2010 Nikolay V. Nemshilov
|
401
448
|
*/
|
402
449
|
Tabs.include((function() {
|
403
450
|
var old_init = Tabs.prototype.init;
|
@@ -565,7 +612,7 @@ return {
|
|
565
612
|
/**
|
566
613
|
* This module handles the current tab state saving/restoring processes
|
567
614
|
*
|
568
|
-
* Copyright (C) Nikolay V. Nemshilov
|
615
|
+
* Copyright (C) 2009-2010 Nikolay V. Nemshilov
|
569
616
|
*/
|
570
617
|
Tabs.include((function() {
|
571
618
|
var old_initialize = Tabs.prototype.initialize;
|
@@ -649,7 +696,7 @@ return {
|
|
649
696
|
/**
|
650
697
|
* This module handles the tabs cration and removing processes
|
651
698
|
*
|
652
|
-
* Copyright (C) 2009 Nikolay V. Nemshilov
|
699
|
+
* Copyright (C) 2009-2010 Nikolay V. Nemshilov
|
653
700
|
*/
|
654
701
|
Tabs.include({
|
655
702
|
/**
|
@@ -730,7 +777,7 @@ Tabs.include({
|
|
730
777
|
/**
|
731
778
|
* This module contains the remote tabs loading logic
|
732
779
|
*
|
733
|
-
* Copyright (C) 2009 Nikolay V. Nemshilov
|
780
|
+
* Copyright (C) 2009-2010 Nikolay V. Nemshilov
|
734
781
|
*/
|
735
782
|
Tabs.Tab.include((function() {
|
736
783
|
var old_show = Tabs.Tab.prototype.show;
|
@@ -739,6 +786,8 @@ return {
|
|
739
786
|
|
740
787
|
// wrapping the show mehtod, to catch the remote requests
|
741
788
|
show: function() {
|
789
|
+
if (this.dogPiling(arguments)) return this;
|
790
|
+
|
742
791
|
var result = old_show.apply(this, arguments);
|
743
792
|
var url = this.link.href;
|
744
793
|
var options = this.controller.options;
|
@@ -752,20 +801,42 @@ return {
|
|
752
801
|
this.panel.lock();
|
753
802
|
|
754
803
|
try { // basically that's for the development tests, so the IE browsers didn't get screwed on the test page
|
755
|
-
|
756
|
-
this.request = Xhr
|
757
|
-
|
804
|
+
|
805
|
+
this.request = new Xhr(url, Object.merge({method: 'get'}, options.Xhr))
|
806
|
+
.onComplete(function(response) {
|
807
|
+
if (this.controller.__working)
|
808
|
+
return arguments.callee.bind(this, response).delay(100);
|
809
|
+
|
810
|
+
this.panel.update(response.text);
|
758
811
|
|
759
|
-
|
760
|
-
|
812
|
+
this.request = null; // removing the request marker so it could be rerun
|
813
|
+
if (options.cache) this.cache = true;
|
761
814
|
|
762
|
-
|
763
|
-
|
815
|
+
this.fire('load');
|
816
|
+
}.bind(this)
|
817
|
+
).send();
|
764
818
|
|
765
819
|
} catch(e) { if (!Browser.OLD) throw(e) }
|
766
820
|
}
|
767
821
|
|
768
822
|
return result;
|
823
|
+
},
|
824
|
+
|
825
|
+
// protected
|
826
|
+
|
827
|
+
dogPiling: function(args) {
|
828
|
+
if (this.controller.__working) {
|
829
|
+
if (this.controller.__timeout)
|
830
|
+
this.controller.__timeout.cancel();
|
831
|
+
|
832
|
+
this.controller.__timeout = (function(args) {
|
833
|
+
this.show.apply(this, args);
|
834
|
+
}).bind(this, args).delay(100);
|
835
|
+
|
836
|
+
return true;
|
837
|
+
}
|
838
|
+
|
839
|
+
return this.controller.__timeout = null;
|
769
840
|
}
|
770
841
|
|
771
842
|
}})());
|
@@ -773,7 +844,7 @@ return {
|
|
773
844
|
/**
|
774
845
|
* This module handles the slide-show loop feature for the Tabs
|
775
846
|
*
|
776
|
-
* Copyright (C) 2009 Nikolay V. Nemshilov
|
847
|
+
* Copyright (C) 2009-2010 Nikolay V. Nemshilov
|
777
848
|
*/
|
778
849
|
Tabs.include((function() {
|
779
850
|
var old_initialize = Tabs.prototype.initialize;
|
@@ -852,7 +923,7 @@ return {
|
|
852
923
|
/**
|
853
924
|
* The document level hooks for the tabs-egnine
|
854
925
|
*
|
855
|
-
* Copyright (C) 2009 Nikolay V. Nemshilov
|
926
|
+
* Copyright (C) 2009-2010 Nikolay V. Nemshilov
|
856
927
|
*/
|
857
928
|
document.onReady(function() {
|
858
929
|
Tabs.rescan();
|
data/javascripts/right-tabs.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
/**
|
2
2
|
* Unified tabs engine for RightJS (http://rightjs.org/ui/tabs)
|
3
3
|
*
|
4
|
-
* Copyright (C) 2009 Nikolay V. Nemshilov
|
4
|
+
* Copyright (C) 2009-2010 Nikolay V. Nemshilov
|
5
5
|
*/
|
6
|
-
if (!RightJS) throw "Gimme RightJS";eval((function(s,d){for(var i=d.length-1;i>-1;i--)if(d[i])s=s.replace(new RegExp(i,'g'),d[i]);return s})("19 37=135 176(Observer,{extend:{EVENTS:$w('54 hide 160 load 87 116 add 61 move'),Options:{145:'',14Element:74,107:'both',128:400,2537:91,25178:400,142:74,28:[],closable:91,loop:91,loopPause:true,url:91,131:91,Xhr:74,68:74},rescan:16(s){($(s)||102).select('*.13-14').each(16(e){if(!e._14)135 37(e)})}},49:16(e,o){11.17=$(e);11.$super(o||eval('('+11.17.get('data-14-24')+')'));11.17._14=11.init()},destroy:16(){delete(11.17._14)},54:16(t){18 11.94(t,'54')},87:16(t){18 11.94(t,'87')},116:16(t){18 11.94(t,'116')},94:16(t,m){if(isArray(t))t.each(11[m],11);95 if(t=isNumber(t)?11.14[t]:t)t[m]();18 11},init:16(){11.35=11.17.152=='DL';11.42=11.17.144('13-14-62');11.isSimple=!11.35&&!11.42;11.find37();11.17.45('13-14');if(11.isSimple)11.17.45('13-14-52');18 11.87(11.24.28)},find37:16(){11.14175=11.35?11.17:$(11.24.14Element)||11.17.55('UL').45('13-14-75');11.14=11.14175.subNodes(11.35?'dt':74).map(16(n){18 135 37.156(n,11)},11)},173:16(t){19 a=11.24.145+t.id,p;if(11.35){19 n=t.17.next();p=(n&&n.152=='DD')?n:$E('DD').59To(t.17,'after')}95 p=$(a)||$E(11.17.152=='UL'?'LI':'DIV').59To(11.17);18 p.set('id',a)}});37.156=135 176({extend:{autoId:0},49:16(e,c){11.17=e.45('13-14-43');11.33=c;11.17.153(11.160.64(11)).124('s80Event');11.findLink();11.27=135 37.Panel(c.173(11),11);if(c.24.closable)11.174.59($E('72',{'63':'13-14-43-close-icon','html':'×'}).153(11.61.64(11)).124('s80Event'))},160:16(e){e.s80();18 11.76('160').54()},54:16(){if(11.51()){19 p=11.33.14.55('26');if(p)p.76('hide');11.17.167('13-14-26');11.33.25To156(11);11.27.54();11.76('54')}18 11},87:16(){11.17.45('13-14-28');18 11.76('87')},116:16(){11.17.61176('13-14-28');18 11.76('116')},28:16(){18!11.51()},51:16(){18!11.17.144('13-14-28')},26:16(){18 11.17.144('13-14-26')},61:16(a){if(a)a.s80();if(11.26()){19 e=11.33.14.47('51');19 s=e[e.65(11)+1]||e[e.65(11)-1];if(s)s.54()}11.33.14.172(11.33.14.65(11),1);11.17.61();11.27.61();18 11},46:16(){18 11.17.84+11.17.113('41Right').165()},76:16(e){11.33.76(e,11);18 11},findLink:16(){11.174=11.17.55('a');11.id=11.174.href.127('#')[1]||(11.33.24.145+(37.156.autoId++))}});37.Panel=135 176(Observer,{49:16(e,t){11.43=t;11.id=e.id;11.17=e.45('13-14-27')},54:16(){18 11.104(16(){11.17.167('13-14-27-26')})},140:16(c){18 11.104(16(){11.17.140(c||'')})},61:16(){11.17.61();18 11},lock:16(){19 l=$E('72',{'63':'13-14-27-67'});19 s=$E('72',{'63':'13-14-27-67-126'}).59To(l);19 d='1234'.127('').map(16(a){18 $E('72',{'63':a==1?'glow':74}).59To(s)});(16(){s.59(d.last(),'80');d.unshift(d.pop())}).169(400);11.17.59(l,'80')},104:16(c){if(37.129)18 11.104.64(11,c).delay(20);19 a=11.43.33;19 o=a.24;19 g=a.17.55('.13-14-27-26');19 t=11.17;19 j=g!=t;19 l=11.17.55('72.13-14-27-67');if(o.107&&self.Fx&&g&&(j||l)){37.129=true;19 b=(o.107=='both'&&l)?'150':o.107;19 d=o.128;d=Fx.178s[d]||d;19 r=b=='fade'?0:b=='150'?d:d/2;19 f=d-r;if(b!='150')t.setStyle({32:0});19 i=(a.35&&j)?0:g.73;c.call(11);19 n=t.73;if(b!='fade'&&i!=n){a.17.86.29=a.17.73+'px';19 e=$E('72',{'63':'13-14-125'});19 s=e.163.64(e,t);e.86.29=i+'px';if(a.35&&j){g.45('13-14-27-26');19 h=$E('72',{'63':'13-14-125'});h.86.29=g.73+'px';19 p=16(){h.163(g.61176('13-14-27-26'))};g.wrap(h);e.86.29='138'}t.wrap(e);a.17.86.29='auto';if(h)h.151({29:'138'},{103:r,onFinish:p});e.151({29:n+'px'},{103:r,onFinish:s})}95{rezise_103=0;d=f}if(b!='150')t.151.64(t,{32:1},{103:f}).delay(r);(16(){37.129=91}).64(11).delay(d)}95 c.call(11);18 11}});37.82((16(){19 d=37.97.init;18{next:16(){18 11.pick156(+1)},prev:16(){18 11.pick156(-1)},25Left:16(){18 11[11.42?'prev':'121'](+0.6)},25Right:16(){18 11[11.42?'next':'121'](-0.6)},init:16(){d.call(11);if(11.25able=(11.24.2537||11.42))11.136();18 11},136:16(){if(!11.17.55('13-14-22')){11.120=$E('72',{'63':'13-14-25-38','html':'«'}).124(11.25Left.64(11));11.119=$E('72',{'63':'13-14-25-13','html':'»'}).124(11.25Right.64(11));11.17.59($E('72',{'63':'13-14-22'}).59([11.120,11.119,$E('72',{'63':'13-14-25-147'}).59(11.14175)]),'80')}},pick156:16(p){19 c=11.14.55('26');if(c&&c.51()){19 e=11.14.47('51');19 t=e[e.65(c)+p];if(t)t.54()}},25To156:16(t){if(11.25able){19 b=0;for(19 i=0;i<11.14.92;i++){b+=11.14[i].46();if(11.14[i]==t)break}19 a=11.14175.117.84;19 s=(11.42?(a/2+t.46()/2):a)-b;if(!11.42){19 c=11.14175.113('38').165()||0;if(s>=c&&s<(c+a-t.46()))s=c;95 if(c>-b&&c<=(t.46()-b))s=t.46()-b}11.25To(s)}},121:16(s){19 c=11.14175.113('38').165()||0;19 a=11.14175.117.84;11.25To(c+a*s)},25To:16(s){19 c=11.14175.113('38').165()||0;19 a=11.14175.117.84;19 o=0;for(19 i=0;i<11.14.92;i++)o+=11.14[i].46();if(s<(a-o))s=a-o;if(s>0)s=0;19 b={38:s+'px'};if(11.24.25178&&self.Fx&&c!=s)11.14175.151(b,{103:11.24.25178});95 11.14175.setStyle(b);11.101(o,a,s)},101:16(o,a,s){19 h=110=91;if(11.42){19 e=11.14.47('51');19 c=e.55('26');if(c){19 i=e.65(c);h=i>0;110=i<e.92-1}}95{h=s!=0;110=s>(a-o)}11.120[h?'61176':'45']('13-14-25-28');11.119[110?'61176':'45']('13-14-25-28')}}})());37.82((16(){19 d=37.97.49;19 g=16(){18 self.68?(68.get('13-14-indexes')||'').127(','):[]};19 s=16(o,a,t){if(self.68){19 i=g();i=i.without.157(i,a.map('id'));i.push(t.id);68.set('13-14-indexes',i.uniq().join(','),o)}};18{49:16(){d.157(11,130);11.161();if(11.24.68)11.onShow(s.curry(11.24.68,11.14))},161:16(){19 c;if(11.24.142!==74)c=11.24.142;95{19 e=11.14.47('51');c=e[11.urlIndex()]||e[11.162()]||e.55('26')||e[0]}if(c)c.54()},urlIndex:16(){19 b=-1,a=102.location.href.127('#')[1];if(a)for(19 i=0;i<11.14.92;i++)if(11.14[i].id==a){b=i;break}18 b},162:16(){19 a=-1;if(11.24.68){19 b=g();for(19 i=0;i<11.14.92;i++)if(b.82(11.14[i].id)){a=i;break}}18 a}}})());37.82({add:16(a,c,o){19 o=o||{};19 e=$E(11.35?'dt':'li').59($E('a',{html:a,href:o.url||'#'+(o.id||'')})).59To(11.14175);19 t=135 37.156(e,11);t.27.17.140(c||'');11.14.push(t);if(defined(o.39))11.move(t,o.39);18 11.76('add',t)},move:16(t,p){19 t=11.14[t]||t;if(11.14[p]&&11.14[p]!==t){11.14[p].17.59(t.17,(p==11.14.92-1)?'after':'before');if(11.35)t.17.59(t.27.17,'after');11.14.172(11.14.65(t),1);11.14.172(p,0,t);11.76('move',t,p)}18 11},61:16(t){18 11.94(t,'61')}});37.156.82((16(){19 b=37.156.97.54;18{54:16(){19 a=b.157(11,130);19 u=11.174.href;19 o=11.33.24;if(u.82s('#'))u=o.url?o.url.163('%{id}',u.127('#')[1]):74;if(u&&!11.164&&!(o.131||11.131)){11.27.lock();try{11.164=Xhr.load(u,o.Xhr).onComplete(16(r){11.27.140(r.133);11.164=74;if(o.131)11.131=true;11.76('load')}.64(11))}catch(e){if(!Browser.OLD)throw(e)}}18 a}}})());37.82((16(){19 o=37.97.49;18{49:16(){o.157(11,130);if(11.24.loop)11.134()},134:16(d){if(!d&&!11.24.loop)18 11;if(11.24.loopPause){11._s80177=11._s80177||11.s80177.64(11,true);11.70=11.70||11.134.64(11,d);11.98().on({mouseover:11._s80177,mouseout:11.70})}if(11.108)11.108.s80();11.108=16(){19 e=11.14.47('51');19 c=11.14.55('26');19 n=e[e.65(c)+1];11.54(n||e.55())}.64(11).169(11.24.loop||d);18 11},s80177:16(e,p){if(11.108){11.108.s80();11.108=74}if(!p&&11.70)11.98()},98:16(){18 11.17.s80Observing('mouseover',11._s80177).s80Observing('mouseout',11.70)}}})());102.onReady(16(){37.rescan()});102.write(\"<86 type=\\\"133/css\\\">.13-14,.13-14 .13-14-75,.13-14 .13-14-43,.13-14 .13-14-27,.13-14-25-38,.13-14-25-13,.13-14-25-147,.13-14-27-67,.13-14-125{41:0;57:0;30:78;21:78;75-86:78;69:132;46:auto;29:auto}.13-14{21-48:93 114 #122}.13-14-125{141:hidden}.13-14-43,.13-14-43 a{69:132;float:38}.13-14-43 a{39:71;115:154;133-decoration:78;21:93 114 #122;30:#DDD;56:#444;-111-21-31:.3em;-58-21-31:.3em}.13-14-43 a:79{21-56:#122;30:#EEE}.13-14 .13-14-75 .13-14-26 a,dl.13-14 dt.13-14-26 a{font-weight:bold;56:#000;30:#FFF}.13-14-43 a 158{21:78;32:.6;47:105(32=60)}.13-14-43 a:79 158,.13-14 .13-14-75 .13-14-26 a 158{32:1;47:105(32=137)}.13-14-28,.13-14-28 a,.13-14-28 a:79{30:#EEE;21-56:#DDD;56:#AAA;115:default}.13-14-28 a 158,.13-14-28 a:79 158{32:.5;47:105(32=50)}.13-14-43-close-icon{69:in148-132;*69:in148;*zoom:1;41-13:-0.5em;41-38:0.5em;115:154;32:0.5;47:105(32=50)}.13-14-43-close-icon:79{32:1;47:105(32=137);56:#B00;133-shadow:#888 .15em .15em .109}.13-14 .13-14-27{69:78;39:71;min-29:4em;57:.5em 0}.13-14 .13-14-27-26{69:132}.13-14-27-67{39:143;80:138;38:138;32:0.5;47:105(32=50);30:#122;46:137%;29:137%;133-align:center;148-29:137%}.13-14-27-67-126{39:143;38:44%;80:44%}.13-14-27-67-126 72{float:38;30:#777;46:.5em;29:112;41-13:.112;-111-21-31:.112;-58-21-31:.112}.13-14-27-67-126 72.glow{30:#444;29:1.109;41-80:-0.112}.13-14 .13-14-22{57:0 1.4em;39:71;41-48:.5em}.13-14 .13-14-22 .13-14-25-38,.13-14 .13-14-22 .13-14-25-13{46:1.112;133-align:center;30:#EEE;56:#666;115:154;21:93 114 #122;-111-21-31:.109;-58-21-31:.109;39:143;80:138;38:138;z-index:137}.13-14 .13-14-22 .13-14-25-38:79,.13-14 .13-14-22 .13-14-25-13:79{56:#000;30:#DDD;21-56:#AAA}.13-14 .13-14-22 .13-14-25-13{38:auto;13:138}.13-14 .13-14-22 .13-14-25-28,.13-14 .13-14-22 .13-14-25-28:79{115:default;30:#DDD;21-56:#DDD;56:#AAA}.13-14 .13-14-22 .13-14-25-147{46:137%;141:hidden;39:71;z-index:50}.13-14 .13-14-22 .13-14-75{39:71;46:999em;41:0}.13-14-52 .13-14-75{29:109;57:0 112;21-48:93 114 #122}.13-14-52 .13-14-43{41-80:-93;41-13:93}.13-14-52 .13-14-43 a{148-29:1.8em;41-80:.109;57:0 112;21-48:78;-111-21-31-4838:0;-111-21-31-4813:0;-58-21-48-38-31:0;-58-21-48-13-31:0}.13-14-52 .13-14-75 .13-14-26 a{148-29:109;41-80:93}.13-14-52 .13-14-22{21-48:93 114 #122}.13-14-52 .13-14-22 .13-14-25-38,.13-14-52 .13-14-22 .13-14-25-13{148-29:1.8em;80:.109;-111-21-31-4838:0;-111-21-31-4813:0;-58-21-48-38-31:0;-58-21-48-13-31:0}.13-14-52 .13-14-22 .13-14-25-147{39:71;80:93}.13-14-52 .13-14-22 .13-14-25-147 .13-14-75{57:0}.13-14-62 .13-14-75,.13-14-62 .13-14-43 a,.13-14-62 .13-14-22 .13-14-25-38,.13-14-62 .13-14-22 .13-14-25-13{29:6em;148-29:6em}.13-14-62 .13-14-43{41-13:2px}.13-14-62 .13-14-43 a 158{21:93 114 #122;41:.4em;57:0}dl.13-14{141:78;21:78}dt.13-14-43,dt.13-14-43 a{69:132;float:78}dt.13-14-43 a{57:.109 112}dl.13-14 dt.13-14-26 a{30:#EEE;-111-21-31-4838:0;-111-21-31-4813:0;-58-21-48-38-31:0;-58-21-48-13-31:0}</86>\");",",,,,,,,,,,,this,,right,tabs,,function,element,return,var,,border,scroller,,options,scroll,current,panel,disabled,height,background,radius,opacity,controller,,isHarmonica,tabsList,Tabs,left,position,,margin,isCarousel,tab,,addClass,width,filter,bottom,initialize,,enabled,simple,,show,first,color,padding,webkit,insert,,remove,carousel,class,bind,indexOf,,locker,Cookie,display,_startLoop,relative,div,offsetHeight,null,list,fire,,none,hover,top,,include,,offsetWidth,removeClass,style,disable,,insertTo,scrollDuration,false,length,1px,callTab,else,_stopLoop,prototype,forgetHovers,,,checkScrollButtons,document,duration,resizing,alpha,bottomright,resizeFx,timer,2em,has_next,moz,1em,getStyle,solid,cursor,enable,parentNode,bottomleft,nextButton,prevButton,justScroll,CCC,,onClick,resizer,spinner,split,resizeDuration,__working,arguments,cache,block,text,startLoop,new,buildScroller,100,0px,stopObserving,update,overflow,selected,absolute,hasClass,idPrefix,scrollTo,body,line,scrollToTab,slide,morph,tagName,onMousedown,pointer,tabsElement,Tab,apply,img,pickTab,click,findCurrent,cookieIndex,replace,request,toInt,scrollRight,radioClass,scrollTabs,periodical,scrollable,scrollLeft,splice,findPanel,link,List,Class,Loop,Duration".split(",")));
|
6
|
+
if (!RightJS) throw "Gimme RightJS";eval((function(s,d){for(var i=d.length-1;i>-1;i--)if(d[i])s=s.replace(new RegExp(i,'g'),d[i]);return s})("19 42=129 174(Observer,{extend:{EVENTS:$w('49 hide 156 load 87 124 add 57 move'),Options:{147:'',14Element:68,117:'both',134:400,2642:94,26176:400,145:68,28:[],closable:94,loop:94,loopPause:151,url:94,138:94,Xhr:68,72:68},rescan:16(s){($(s)||107).select('*.13-14').each(16(e){if(!e._14)129 42(e)})}},47:16(e,o){11.17=$(e);11.$super(o||eval('('+11.17.get('data-14-25')+')'));11.17._14=11.init()},destroy:16(){delete(11.17._14)},49:16(t){18 11.96(t,'49')},87:16(t){18 11.96(t,'87')},124:16(t){18 11.96(t,'124')},96:16(t,m){if(isArray(t))t.each(11[m],11);93 if(t=isNumber(t)?11.14[t]:t)t[m]();18 11},init:16(){11.35=11.17.162=='DL';11.43=11.17.118('13-14-59');11.isSimple=!11.35&&!11.43;11.find42();11.17.41('13-14');if(11.isSimple)11.17.41('13-14-53');18 11.87(11.25.28)},find42:16(){11.14173=11.35?11.17:$(11.25.14Element)||11.17.54('UL').41('13-14-83');11.14=11.14173.subNodes(11.35?'dt':68).map(16(n){18 129 42.164(n,11)},11)},find177:16(t){19 a=11.25.147+t.id,p;if(11.35){19 n=t.17.next();p=(n&&n.162=='DD')?n:$E('DD').62To(t.17,'after')}93 p=$(a)||$E(11.17.162=='UL'?'LI':'DIV').62To(11.17);18 p.set('id',a)}});42.164=129 174({extend:{autoId:0},47:16(e,c){11.17=e.41('13-14-38');11.21=c;11.17.160(11.156.69(11)).130('s89Event');11.findLink();11.27=129 42.177(c.find177(11),11);if(c.25.closable)11.link.62($E('78',{'65':'13-14-38-close-icon','html':'×'}).160(11.57.69(11)).130('s89Event'))},156:16(e){e.s89();18 11.84('156').49()},49:16(){if(11.51()){19 p=11.21.14.54('24');if(p)p.84('hide');11.17.radio174('13-14-24');11.21.26To164(11);11.27.49();11.84('49')}18 11},87:16(){11.17.41('13-14-28');18 11.84('87')},124:16(){11.17.57174('13-14-28');18 11.84('124')},28:16(){18!11.51()},51:16(){18!11.17.118('13-14-28')},24:16(){18 11.17.118('13-14-24')},57:16(a){if(a)a.s89();if(11.24()){19 e=11.21.14.48('51');19 s=e[e.71(11)+1]||e[e.71(11)-1];if(s)s.49()}11.21.14.splice(11.21.14.71(11),1);11.17.57();11.27.57();18 11},45:16(){18 11.17.86+11.17.114('39Right').155()},84:16(e){11.21.84(e,11);18 11},findLink:16(){11.link=11.17.54('a');11.id=11.link.href.133('#')[1]||(11.21.25.147+(42.164.autoId++))}});42.177=129 174(Observer,{47:16(e,t){11.38=t;11.id=e.id;11.17=e.41('13-14-27')},49:16(){18 11.116(16(){11.38.21.14.each(16(t){19 e=t.27.17;e[e==11.17?'41':'57174']('13-14-27-24')},11)})},122:16(c){if(11.38.24())11.116(16(){11.17.122(c||'')});93 11.17.122(c||'');18 11},57:16(){11.17.57();18 11},lock:16(){11.17.62(11.52(),'89')},116:16(c){19 a=11.38.21;if(a.82)18 11.116.69(11,c).157(103);19 o=a.25;19 i=a.17.54('.13-14-27-24');19 t=11.17;19 k=i!=t;19 l=11.17.54('78.13-14-27-52');if(t.73.118('13-14-98'))t.62To(i.73);if(o.117&&self.Fx&&i&&(k||l)){a.82=151;19 u=16(){a.82=94};19 e=(o.117=='both'&&l)?'135':o.117;19 d=o.134;d=Fx.176s[d]||d;19 r=e=='fade'?0:e=='135'?d:d/2;19 f=d-r;if(e!='135')t.setStyle({32:0});19 j=(a.35&&k)?0:i.79;c.call(11);19 n=t.79;19 g=68;if(e!='fade'&&j!=n){a.17.91.29=a.17.79+'px';g=$E('78',{'65':'13-14-98','91':'29: '+j+'px'});if(a.35&&k){i.41('13-14-27-24');19 h=$E('78',{'65':'13-14-98'});h.91.29=i.79+'px';19 p=16(){h.159(i.57174('13-14-27-24'))};i.wrap(h);g.91.29='141'}t.wrap(g);a.17.91.29='auto'}93{rezise_111=0;d=f}19 b=0;19 s=16(){if(g){if(e=='both'&&!b)18 b++;g.159(t)}u()};if(h)h.169({29:'141'},{111:r,144:p});if(g)g.169({29:n+'px'},{111:r,144:s});if(e!='135')t.169.69(t,{32:1},{111:f,144:s}).157(r);if(!g&&e=='135')s()}93 c.call(11);18 11},52:16(){if(!11._52){19 l=$E('78',{'65':'13-14-27-52'});19 s=$E('78',{'65':'13-14-27-52-131'}).62To(l);19 d='1234'.133('').map(16(a){18 $E('78',{'65':a==1?'glow':68}).62To(s)});(16(){s.62(d.last(),'89');d.unshift(d.pop())}).periodical(400);11._52=l}18 11._52}});42.90((16(){19 d=42.97.init;18{next:16(){18 11.153(+1)},prev:16(){18 11.153(-1)},26Left:16(){18 11[11.43?'prev':'127'](+0.6)},26Right:16(){18 11[11.43?'next':'127'](-0.6)},init:16(){d.call(11);if(11.26able=(11.25.2642||11.43))11.143();18 11},143:16(){if(!11.17.54('13-14-22')){11.125=$E('78',{'65':'13-14-26-36','html':'«'}).130(11.26Left.69(11));11.128=$E('78',{'65':'13-14-26-13','html':'»'}).130(11.26Right.69(11));11.17.62($E('78',{'65':'13-14-22'}).62([11.125,11.128,$E('78',{'65':'13-14-26-152'}).62(11.14173)]),'89')}},153:16(p){19 c=11.14.54('24');if(c&&c.51()){19 e=11.14.48('51');19 t=e[e.71(c)+p];if(t)t.49()}},26To164:16(t){if(11.26able){19 b=0;for(19 i=0;i<11.14.95;i++){b+=11.14[i].45();if(11.14[i]==t)break}19 a=11.14173.73.86;19 s=(11.43?(a/2+t.45()/2):a)-b;if(!11.43){19 c=11.14173.114('36').155()||0;if(s>=c&&s<(c+a-t.45()))s=c;93 if(c>-b&&c<=(t.45()-b))s=t.45()-b}11.26To(s)}},127:16(s){19 c=11.14173.114('36').155()||0;19 a=11.14173.73.86;11.26To(c+a*s)},26To:16(s){19 c=11.14173.114('36').155()||0;19 a=11.14173.73.86;19 o=0;for(19 i=0;i<11.14.95;i++)o+=11.14[i].45();if(s<(a-o))s=a-o;if(s>0)s=0;19 b={36:s+'px'};if(11.25.26176&&self.Fx&&c!=s)11.14173.169(b,{111:11.25.26176});93 11.14173.setStyle(b);11.106(o,a,s)},106:16(o,a,s){19 h=120=94;if(11.43){19 e=11.14.48('51');19 c=e.54('24');if(c){19 i=e.71(c);h=i>0;120=i<e.95-1}}93{h=s!=0;120=s>(a-o)}11.125[h?'57174':'41']('13-14-26-28');11.128[120?'57174':'41']('13-14-26-28')}}})());42.90((16(){19 d=42.97.47;19 g=16(){18 self.72?(72.get('13-14-indexes')||'').133(','):[]};19 s=16(o,a,t){if(self.72){19 i=g();i=i.without.140(i,a.map('id'));i.push(t.id);72.set('13-14-indexes',i.uniq().join(','),o)}};18{47:16(){d.140(11,80);11.161();if(11.25.72)11.onShow(s.curry(11.25.72,11.14))},161:16(){19 c;if(11.25.145!==68)c=11.25.145;93{19 e=11.14.48('51');c=e[11.urlIndex()]||e[11.168()]||e.54('24')||e[0]}if(c)c.49()},urlIndex:16(){19 b=-1,a=107.location.href.133('#')[1];if(a)for(19 i=0;i<11.14.95;i++)if(11.14[i].id==a){b=i;break}18 b},168:16(){19 a=-1;if(11.25.72){19 b=g();for(19 i=0;i<11.14.95;i++)if(b.90(11.14[i].id)){a=i;break}}18 a}}})());42.90({add:16(a,c,o){19 o=o||{};19 e=$E(11.35?'dt':'li').62($E('a',{html:a,href:o.url||'#'+(o.id||'')})).62To(11.14173);19 t=129 42.164(e,11);t.27.17.122(c||'');11.14.push(t);if(defined(o.37))11.move(t,o.37);18 11.84('add',t)},move:16(t,p){19 t=11.14[t]||t;if(11.14[p]&&11.14[p]!==t){11.14[p].17.62(t.17,(p==11.14.95-1)?'after':'before');if(11.35)t.17.62(t.27.17,'after');11.14.splice(11.14.71(t),1);11.14.splice(p,0,t);11.84('move',t,p)}18 11},57:16(t){18 11.96(t,'57')}});42.164.90((16(){19 c=42.164.97.49;18{49:16(){if(11.dogPiling(80))18 11;19 a=c.140(11,80);19 u=11.link.href;19 o=11.21.25;if(u.90s('#'))u=o.url?o.url.159('%{id}',u.133('#')[1]):68;if(u&&!11.170&&!(o.138||11.138)){11.27.lock();try{11.170=129 Xhr(u,Object.merge({method:'get'},o.Xhr)).onComplete(16(r){if(11.21.82)18 80.callee.69(11,r).157(103);11.27.122(r.136);11.170=68;if(o.138)11.138=151;11.84('load')}.69(11)).send()}catch(e){if(!Browser.OLD)throw(e)}}18 a},dogPiling:16(b){if(11.21.82){if(11.21.104)11.21.104.cancel();11.21.104=(16(a){11.49.140(11,a)}).69(11,b).157(103);18 151}18 11.21.104=68}}})());42.90((16(){19 o=42.97.47;18{47:16(){o.140(11,80);if(11.25.loop)11.139()},139:16(d){if(!d&&!11.25.loop)18 11;if(11.25.loopPause){11._s89175=11._s89175||11.s89175.69(11,151);11.74=11.74||11.139.69(11,d);11.105().on({mouseover:11._s89175,mouseout:11.74})}if(11.108)11.108.s89();11.108=16(){19 e=11.14.48('51');19 c=11.14.54('24');19 n=e[e.71(c)+1];11.49(n||e.54())}.69(11).periodical(11.25.loop||d);18 11},s89175:16(e,p){if(11.108){11.108.s89();11.108=68}if(!p&&11.74)11.105()},105:16(){18 11.17.s89Observing('mouseover',11._s89175).s89Observing('mouseout',11.74)}}})());107.onReady(16(){42.rescan()});107.write(\"<91 type=\\\"136/css\\\">.13-14,.13-14 .13-14-83,.13-14 .13-14-38,.13-14 .13-14-27,.13-14-26-36,.13-14-26-13,.13-14-26-152,.13-14-27-52,.13-14-98{39:0;56:0;30:81;20:81;83-91:81;70:137;45:auto;29:auto}.13-14{20-46:102 110 #132}.13-14-98{149:hidden}.13-14-38,.13-14-38 a{70:137;float:36}.13-14-38 a{37:76;121:158;136-decoration:81;20:102 110 #132;30:#DDD;55:#444;-112-20-31:.3em;-58-20-31:.3em}.13-14-38 a:85{20-55:#132;30:#EEE}.13-14 .13-14-83 .13-14-24 a,dl.13-14 dt.13-14-24 a{font-weight:bold;55:#000;30:#FFF}.13-14-38 a 166{20:81;32:.6;48:109(32=60)}.13-14-38 a:85 166,.13-14 .13-14-83 .13-14-24 a 166{32:1;48:109(32=103)}.13-14-28,.13-14-28 a,.13-14-28 a:85{30:#EEE;20-55:#DDD;55:#AAA;121:default}.13-14-28 a 166,.13-14-28 a:85 166{32:.5;48:109(32=50)}.13-14-38-close-icon{70:in150-137;*70:in150;*zoom:1;39-13:-0.5em;39-36:0.5em;121:158;32:0.5;48:109(32=50)}.13-14-38-close-icon:85{32:1;48:109(32=103);55:#B00;136-shadow:#888 .15em .15em .113}.13-14 .13-14-27{70:81;37:76;min-29:4em;56:.5em 0}.13-14 .13-14-27-24{70:137}.13-14-27-52{37:146;89:141;36:141;32:0.5;48:109(32=50);30:#132;45:103%;29:103%;136-align:center;150-29:103%}.13-14-27-52-131{37:146;36:44%;89:44%}.13-14-27-52-131 78{float:36;30:#777;45:.5em;29:115;39-13:.115;-112-20-31:.115;-58-20-31:.115}.13-14-27-52-131 78.glow{30:#444;29:1.113;39-89:-0.115}.13-14 .13-14-22{56:0 1.4em;37:76;39-46:.5em}.13-14 .13-14-22 .13-14-26-36,.13-14 .13-14-22 .13-14-26-13{45:1.115;136-align:center;30:#EEE;55:#666;121:158;20:102 110 #132;-112-20-31:.113;-58-20-31:.113;37:146;89:141;36:141;z-index:103}.13-14 .13-14-22 .13-14-26-36:85,.13-14 .13-14-22 .13-14-26-13:85{55:#000;30:#DDD;20-55:#AAA}.13-14 .13-14-22 .13-14-26-13{36:auto;13:141}.13-14 .13-14-22 .13-14-26-28,.13-14 .13-14-22 .13-14-26-28:85{121:default;30:#DDD;20-55:#DDD;55:#AAA}.13-14 .13-14-22 .13-14-26-152{45:103%;149:hidden;37:76;z-index:50}.13-14 .13-14-22 .13-14-83{37:76;45:999em;39:0}.13-14-53 .13-14-83{29:113;56:0 115;20-46:102 110 #132}.13-14-53 .13-14-38{39-89:-102;39-13:102}.13-14-53 .13-14-38 a{150-29:1.8em;39-89:.113;56:0 115;20-46:81;-112-20-31-4636:0;-112-20-31-4613:0;-58-20-46-36-31:0;-58-20-46-13-31:0}.13-14-53 .13-14-83 .13-14-24 a{150-29:113;39-89:102}.13-14-53 .13-14-22{20-46:102 110 #132}.13-14-53 .13-14-22 .13-14-26-36,.13-14-53 .13-14-22 .13-14-26-13{150-29:1.8em;89:.113;-112-20-31-4636:0;-112-20-31-4613:0;-58-20-46-36-31:0;-58-20-46-13-31:0}.13-14-53 .13-14-22 .13-14-26-152{37:76;89:102}.13-14-53 .13-14-22 .13-14-26-152 .13-14-83{56:0}.13-14-59 .13-14-83,.13-14-59 .13-14-38 a,.13-14-59 .13-14-22 .13-14-26-36,.13-14-59 .13-14-22 .13-14-26-13{29:6em;150-29:6em}.13-14-59 .13-14-38{39-13:2px}.13-14-59 .13-14-38 a 166{20:102 110 #132;39:.4em;56:0}dl.13-14{149:81;20:81}dt.13-14-38,dt.13-14-38 a{70:137;float:81}dt.13-14-38 a{56:.113 115}dl.13-14 dt.13-14-24 a{30:#EEE;-112-20-31-4636:0;-112-20-31-4613:0;-58-20-46-36-31:0;-58-20-46-13-31:0}</91>\");",",,,,,,,,,,,this,,right,tabs,,function,element,return,var,border,controller,scroller,,current,options,scroll,panel,disabled,height,background,radius,opacity,tabsList,,isHarmonica,left,position,tab,margin,,addClass,Tabs,isCarousel,,width,bottom,initialize,filter,show,,enabled,locker,simple,first,color,padding,remove,webkit,carousel,,,insert,,,class,,removeClass,null,bind,display,indexOf,Cookie,parentNode,_startLoop,insertTo,relative,,div,offsetHeight,arguments,none,__working,list,fire,hover,offsetWidth,disable,,top,include,style,scrollDuration,else,false,length,callTab,prototype,resizer,,,_stopLoop,1px,100,__timeout,forgetHovers,checkScrollButtons,document,timer,alpha,solid,duration,moz,2em,getStyle,1em,resizing,resizeFx,hasClass,bottomright,has_next,cursor,update,,enable,prevButton,bottomleft,justScroll,nextButton,new,onClick,spinner,CCC,split,resizeDuration,slide,text,block,cache,startLoop,apply,0px,stopObserving,buildScroller,onFinish,selected,absolute,idPrefix,scrollTo,overflow,line,true,body,pickTab,scrollToTab,toInt,click,delay,pointer,replace,onMousedown,findCurrent,tagName,tabsElement,Tab,scrollRight,img,_locker,cookieIndex,morph,request,scrollLeft,scrollTabs,List,Class,Loop,Duration,Panel".split(",")));
|
@@ -3,88 +3,121 @@
|
|
3
3
|
*
|
4
4
|
* See http://rightjs.org/ui/tooltips for more details
|
5
5
|
*
|
6
|
-
* Copyright (C) 2009 Nikolay V. Nemshilov
|
6
|
+
* Copyright (C) 2009-2010 Nikolay V. Nemshilov
|
7
7
|
*/
|
8
8
|
if (!RightJS) throw "Gimme RightJS!";
|
9
9
|
|
10
10
|
/**
|
11
11
|
* The native tooltips feature for RithJS
|
12
12
|
*
|
13
|
-
*
|
14
|
-
* Copyright (C) 2009 Nikolay V. Nemshilov aka St.
|
13
|
+
* Copyright (C) 2009-2010 Nikolay V. Nemshilov
|
15
14
|
*/
|
16
|
-
|
17
15
|
var Tooltip = new Class({
|
18
16
|
include: Options,
|
19
17
|
|
20
18
|
extend: {
|
21
19
|
Options: {
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
20
|
+
cssRule: '[rel=tooltip]', // a css-marker of an element with a tooltip
|
21
|
+
|
22
|
+
fxName: 'fade', // the appearance effect name
|
23
|
+
fxDuration: 400, // the appearance effect duration
|
24
|
+
delay: 400, // the appearance delay
|
25
|
+
|
26
|
+
move: true, // if it should be moved with the mouse
|
27
|
+
|
28
|
+
idSuffix: '-tooltip' // ID prefix for tooltips with ID
|
28
29
|
},
|
29
30
|
|
30
31
|
current: null, // currently active tooltip reference
|
32
|
+
instances: [], // keeps the list of instances
|
31
33
|
|
32
|
-
//
|
33
|
-
|
34
|
-
var
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
34
|
+
// tries to find a tip closest to the event
|
35
|
+
find: function(event) {
|
36
|
+
var target = event.target, targets = [target].concat(target.parents()),
|
37
|
+
targets = targets.slice(0, targets.length - 2),
|
38
|
+
element = targets.first(function(node) {
|
39
|
+
return node._tooltip || node.match(Tooltip.Options.cssRule);
|
40
|
+
});
|
41
|
+
|
42
|
+
if (element) {
|
43
|
+
var uid = $uid(element);
|
44
|
+
return Tooltip.instances[uid] = Tooltip.instances[uid] || new Tooltip(element);
|
45
|
+
}
|
46
|
+
},
|
47
|
+
|
48
|
+
// DEPRECATED a dummy method for the old API backward compatibility
|
49
|
+
rescan: function(scope) { }
|
43
50
|
},
|
44
51
|
|
52
|
+
/**
|
53
|
+
* Constructor
|
54
|
+
*
|
55
|
+
* @param Element associated element
|
56
|
+
* @param Object options
|
57
|
+
*/
|
45
58
|
initialize: function(element, options) {
|
46
|
-
this.element
|
47
|
-
this.
|
59
|
+
this.associate = element = $(element);
|
60
|
+
this.element = $E('div', {
|
61
|
+
'class': 'right-tooltip',
|
62
|
+
'html': '<div class="right-tooltip-arrow"></div>'+
|
63
|
+
'<div class="right-tooltip-container">'+
|
64
|
+
(element.get('title') || element.get('alt'))+
|
65
|
+
'</div>'
|
66
|
+
}).insertTo(document.body);
|
48
67
|
|
49
|
-
this.setOptions(options
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
},
|
56
|
-
|
57
|
-
getText: function() {
|
58
|
-
return this.container.innerHTML;
|
68
|
+
this.setOptions(options || eval('('+element.get('data-tooltips-options')+')'));
|
69
|
+
|
70
|
+
element.set({ title: '', alt: ''});
|
71
|
+
|
72
|
+
if (element.id)
|
73
|
+
this.element.id = element.id + this.options.idSuffix;
|
59
74
|
},
|
60
75
|
|
76
|
+
/**
|
77
|
+
* Hides the tooltip
|
78
|
+
*
|
79
|
+
* @return Tooltip this
|
80
|
+
*/
|
61
81
|
hide: function() {
|
62
|
-
Tooltip.current = null;
|
63
82
|
this.cancelTimer();
|
64
|
-
this.element.hide(this.options.fxName, {
|
83
|
+
this.element.hide(this.options.fxName, {
|
84
|
+
duration: this.options.fxDuration,
|
85
|
+
onFinish: function() {
|
86
|
+
if (Tooltip.current === this)
|
87
|
+
Tooltip.current = null;
|
88
|
+
}.bind(this)
|
89
|
+
});
|
65
90
|
|
66
91
|
return this;
|
67
92
|
},
|
68
93
|
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
Tooltip.
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
this.
|
84
|
-
|
85
|
-
|
94
|
+
/**
|
95
|
+
* Shows the tooltip with a dealy
|
96
|
+
*
|
97
|
+
* @param Boolean if true will show tooltip immediately
|
98
|
+
* @return Tooltip this
|
99
|
+
*/
|
100
|
+
show: function(immediately) {
|
101
|
+
// hidding all the others
|
102
|
+
Tooltip.instances.each(function(tip) {
|
103
|
+
if (tip && tip !== this) tip.hide();
|
104
|
+
}, this);
|
105
|
+
|
106
|
+
// show the tooltip with a delay
|
107
|
+
this.timer = (function() {
|
108
|
+
this.element.stop().show(this.options.fxName, {duration: this.options.fxDuration});
|
109
|
+
|
110
|
+
Tooltip.current = this;
|
111
|
+
}).bind(this).delay(this.options.delay);
|
112
|
+
|
113
|
+
return Tooltip.current = this;
|
86
114
|
},
|
87
115
|
|
116
|
+
/**
|
117
|
+
* Moves the tooltip where the event happened
|
118
|
+
*
|
119
|
+
* @return Tooltip this
|
120
|
+
*/
|
88
121
|
moveTo: function(event) {
|
89
122
|
this.element.style.left = event.pageX + 'px';
|
90
123
|
this.element.style.top = event.pageY + 'px';
|
@@ -92,39 +125,63 @@ var Tooltip = new Class({
|
|
92
125
|
return this;
|
93
126
|
},
|
94
127
|
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
mouseover: this.showDelayed.bind(this),
|
104
|
-
mouseout: this.hide.bind(this)
|
105
|
-
});
|
106
|
-
|
107
|
-
if (element.id) this.element.id = element.id + this.options.idSuffix;
|
108
|
-
|
109
|
-
this.associate = element;
|
110
|
-
|
111
|
-
return this;
|
128
|
+
// protected
|
129
|
+
|
130
|
+
// cancels a show timeout
|
131
|
+
cancelTimer: function() {
|
132
|
+
if (this.timer) {
|
133
|
+
this.timer.cancel();
|
134
|
+
this.timer = null;
|
135
|
+
}
|
112
136
|
}
|
113
137
|
});
|
114
138
|
|
115
139
|
/**
|
116
140
|
* The post load tooltips initialization script
|
117
141
|
*
|
118
|
-
* Copyright (C) 2009 Nikolay V. Nemshilov
|
142
|
+
* Copyright (C) 2009-2010 Nikolay V. Nemshilov
|
119
143
|
*/
|
120
144
|
document.on({
|
121
|
-
|
145
|
+
/**
|
146
|
+
* Watches all the mouse-over events and reacts if one of the targets
|
147
|
+
* matches a tooltip
|
148
|
+
*
|
149
|
+
* @param Event event
|
150
|
+
*/
|
151
|
+
mouseover: function(event) {
|
152
|
+
var prev_tip = Tooltip.current, this_tip = Tooltip.find(event);
|
153
|
+
|
154
|
+
if (this_tip) {
|
155
|
+
if (prev_tip && prev_tip !== this_tip) prev_tip.hide();
|
156
|
+
if (this_tip.element.hidden()) this_tip.show();
|
157
|
+
|
158
|
+
this_tip.moveTo(event);
|
159
|
+
}
|
160
|
+
},
|
161
|
+
|
162
|
+
/**
|
163
|
+
* Catches the mouseout events and hides tooltips when needed
|
164
|
+
*
|
165
|
+
* @param Event event
|
166
|
+
*/
|
167
|
+
mouseout: function(event) {
|
168
|
+
var curr_tip = Tooltip.current, this_tip = Tooltip.find(event);
|
169
|
+
|
170
|
+
if (curr_tip && (!this_tip || this_tip === curr_tip))
|
171
|
+
curr_tip.hide();
|
172
|
+
},
|
122
173
|
|
174
|
+
/**
|
175
|
+
* Moves tooltips when active
|
176
|
+
*
|
177
|
+
* @param Event event
|
178
|
+
*/
|
123
179
|
mousemove: function(event) {
|
124
|
-
|
125
|
-
|
180
|
+
var tip = Tooltip.current;
|
181
|
+
if (tip && tip.options.move) {
|
182
|
+
tip.moveTo(event);
|
126
183
|
}
|
127
184
|
}
|
128
185
|
});
|
129
186
|
|
130
|
-
document.write("<style type=\"text/css\">div.right-tooltip{position:absolute;margin-top:16pt;margin-left:
|
187
|
+
document.write("<style type=\"text/css\">div.right-tooltip{display:none;position:absolute;z-index:999999;font-size:90%;margin-top:16pt;margin-left:5pt;color:#FFF;text-shadow:0 0 .2em #000;border:.3em solid rgba(255,255,255,0.2);background-color:rgba(25,25,25,0.92);background-image:-webkit-gradient(linear,0% 0%,0% 100%,from(transparent),to(#000));*background-color:#000;*border:.3em solid #444;border-radius:.4em;-moz-border-radius:.4em;-webkit-border-radius:.4em;box-shadow:0 0 .4em #555;-moz-box-shadow:0 0 .4em #555;-webkit-box-shadow:0 0 .4em #555}div.right-tooltip-container{margin:.4em .6em}</style>");
|