showwindow in a separate file
[mkgallery.git] / include / show.js
1 /*
2         $Id$
3
4         This is a part of mkgallery.pl suite
5         http://www.average.org/mkgallery/
6
7         Uses mootools (1.2) http://www.mootools.net/
8         Inspired by slideshow http://www.phatfusion.net/slideshow/
9 */
10
11 /*
12         Slideshow
13
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
17     initiate "loading".
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
21     needed image.
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
26     "last image" message.
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 */
34
35 var Show = new Class({
36
37         getOptions: function(){
38                 return {
39                         onClick: $empty,
40                 }
41         },
42
43         initialize: function(vimgs, container, controls, options){
44                 this.setOptions(this.getOptions(), options);
45                 this.vimgs = vimgs;
46                 this.container = $(container);
47                 this.controls = controls;
48                 this.controls.registershow(this);
49
50                 window.addEvent('resize', this.resizer.bind(this))
51                 window.addEvent('scroll', this.scroller.bind(this))
52         },
53
54         resizer: function(){
55                 alert('show.resizer called');
56         },
57
58         scroller: function(){
59                 alert('show.scroller called');
60         },
61
62 });
63 Show.implement(new Options);
64