4 This is a part of mkgallery.pl suite
5 http://www.average.org/mkgallery/
7 Uses mootools (1.2) http://www.mootools.net/
8 Inspired by slideshow http://www.phatfusion.net/slideshow/
14 - On show image: find this and next urls; put in place
15 those that are already here; free unneeded; initiate download of
16 the rest; if needed image is ready then initiate "transitioning", else
18 - On load complete: if this is the target image, initiate "transitioning".
19 - On "loading": show "loading" image
20 - On "transitioning": hide "loading" image; initiate FX animation to the
22 - On animation complete: blank previous image; if "playing" then schedule
23 autoswitch to next image in the future.
24 - On autoswitch to next image: if "playing" then switch to next image.
25 - On switch to next image: if next exists, show next image, else show
27 - On switch to prev image: if prev exists, show prev image, else show
28 "first image" message.
29 - On "play": make "playing"; switch to next image.
30 - On "stop": if "playing" cancel autoswitch; break "playing".
31 - On "start show": set up things; set "playing" state; show needed image.
32 - On "stop show": cancel any schedules, hide things.
33 - On resize: recalculate existing image size and position; determine
34 what image is needed; if it is not the one on display then request
35 "show image" for the new image.
38 var Show = new Class({
40 getOptions: function(){
42 cbStart: function(){ alert('show start undefined'); },
43 cbExit: function(){ alert('show exit undefined'); },
47 initialize: function(vimgs, container, controls, options){
48 this.setOptions(this.getOptions(), options);
50 this.container = $(container);
51 this.controls = controls;
52 this.controls.registershow(this);
54 window.addEvent('resize', this.resizer.bind(this))
55 window.addEvent('scroll', this.scroller.bind(this))
59 alert('show.resizer called');
63 alert('show.scroller called');
67 this.controls.info(-1,this.vimgs.length,
68 '<ref>','prev called');
72 this.controls.info(0,this.vimgs.length,
73 '<ref>','stop called');
74 this.controls.running(0);
78 this.controls.info(999,this.vimgs.length,
79 '<ref>','play called');
80 this.controls.running(1);
84 this.controls.info(1,this.vimgs.length,
85 '<ref>','next called');
88 start: function(id, play){
89 this.options.cbStart();
91 return false; /* tao make it usable from href links */
95 this.options.cbExit();
99 alert('show.comm called, do nothing');
103 Show.implement(new Options);
104 Show.implement(new Events);