]> www.average.org Git - mkgallery.git/blobdiff - include/gallery.js
IE compatibility
[mkgallery.git] / include / gallery.js
index d5ff7755778ee00dd4a786dd1fa5871268b82d7e..39d8d846b4aa9ed7759c98195daada2942311c85 100644 (file)
@@ -38,10 +38,11 @@ function init_gallery() {
        /* Populate images list */
 
        $$('div.varimages').each(function(el,i){
-               rimgs[el.id] = i;
-               vimgs[i] = [el.id, el.title, []];
+               var rel=el.get('id');
+               rimgs[rel] = i;
+               vimgs[i] = [rel, el.title, []];
                el.getElements('a').each(function(ael,j){
-                       dim = /(\d+)[^\d](\d+)/.exec(ael.text);
+                       dim = /(\d+)[^\d](\d+)/.exec(ael.rel);
                        w = dim[1];
                        h = dim[2];
                        vimgs[i][2][j]=[w,h,ael.href];
@@ -71,12 +72,12 @@ function init_gallery() {
                openFromLink: false,
                movieWidth: 640,
                movieHeight: 480,
-               descClassName: 'infoBoxDesc',
+               descClassName: 'infoBoxDesc'
        };
        ibox = new multiBox('infoBox', iboxparams);
 
        var winparms = {
-               tohide: 'indexContainer',
+               tohide: 'indexContainer'
        };
        var showwin = new showWindow('slideshowContainer',winparms);
 
@@ -87,10 +88,24 @@ function init_gallery() {
 
        var showparms = {
                cbStart: function(){ showwin.show(); },
-               cbExit: function(){ showwin.hide(); },
+               cbExit: function(){ showwin.hide(); }
        };
        var show = new Show(vimgs,showwin,ctl,showparms);
 
+       document.addEvent('keypress', function(ev){
+               if (ev.key == 'esc') {
+                       show.exit();
+               } else if (ev.key == 'left') {
+                       show.prev();
+               } else if (ev.key == 'right') {
+                       show.next();
+               } else if (ev.key == 'space') {
+                       show.toggleplay();
+               } else {
+                       /* alert('keypress: '+ev.key); */
+               }
+       });
+
        /* Update HTML */
 
        $$('.conceal').each(function(el){
@@ -103,11 +118,11 @@ function init_gallery() {
 
        $$('a.showStart').each(function(el){
                el.addEvent('click',
-                               show.start.bind(show,[rimgs[el.get('id')],1]));
+                       show.start.bind(show,[rimgs[el.get('rel')],1]));
        });
        $$('a.showImage').each(function(el){
                el.addEvent('click',
-                               show.start.bind(show,[rimgs[el.get('id')],0]));
+                       show.start.bind(show,[rimgs[el.get('rel')],0]));
        });
 
        /* Determine if we need to go directly into show mode */
@@ -122,9 +137,3 @@ function init_gallery() {
 /* Initialization */
 window.addEvent('domready',init_gallery);
 
-/* This is how I would like it done for explorer:
-window.addEvent('readystatechange',function(parm){
-       alert('readystatechange, parm='+parm);
-       init_gallery();
-});
-/* but it does not seem to work */