X-Git-Url: http://www.average.org/gitweb/?p=mkgallery.git;a=blobdiff_plain;f=include%2Fshow.js;h=b9ee1a08d8ef154c1ff26971db1acb92f7744968;hp=4bcd28ea0c758aefe48159e620ca23ae239a465f;hb=741d62b401cb7cf4b36f733c19af7b45ba51b1a8;hpb=8885ed7401ea77ca4c4ae1927c78df7891d61f63 diff --git a/include/show.js b/include/show.js index 4bcd28e..b9ee1a0 100644 --- a/include/show.js +++ b/include/show.js @@ -60,11 +60,24 @@ var Show = new Class({ curr: {}, next: {}, }; +/* + * thescripts.com/forum/thread170365.html + */ + var hashpos = document.URL.search(/#/); + if (hashpos > 0) { + this.baseurl = document.URL.slice(0,hashpos); + } else { + this.baseurl = document.URL + } + this.updatecoords(); this.prevdisplay = new Element('img'). - injectInside(this.container.container); - this.ondisplay = new Element('img'). - injectInside(this.container.container); + set('class', 'mainformat'). + setProperty('alt', 'Current Image'). + setStyle('opacity', 0). + injectInside(this.container.domelement()); + this.ondisplay = this.prevdisplay.clone(). + injectInside(this.container.domelement()); this.loadingdiv = new Element('div'). addClass('loading').setStyles({ position: 'absolute', @@ -74,7 +87,7 @@ var Show = new Class({ display: 'none', width: this.coords.width, height: this.coords.height, - }).injectInside(this.container.container); + }).injectInside(this.container.domelement()); window.addEvent('resize', this.resizer.bind(this)) }, @@ -91,17 +104,18 @@ var Show = new Class({ /* prev, play, stop, next, exit, comm are methods for button presses */ prev: function(){ + this.cleartimer(); + this.stopfx(); if (this.currentid > 0) { this.show(this.currentid-1); } else { - alert('show.prev called beyond first element'); + /* alert('show.prev called beyond first element'); */ } }, stop: function(){ - if (this.isplaying) { $clear(this.timer); } + this.cleartimer() this.isplaying = false; - $clear(this.timer); this.controls.running(0); }, @@ -111,19 +125,27 @@ var Show = new Class({ this.controls.running(1); }, + toggleplay: function(){ + if (this.isplaying) { this.stop(); } + else { this.play(); } + }, + next: function(){ + this.cleartimer(); + this.stopfx(); if (this.currentid < this.vimgs.length-1) { this.show(this.currentid+1); } else { - alert('show.next called beyond last element'); + /* alert('show.next called beyond last element'); */ } }, exit: function(){ - if (this.isplaying) { $clear(this.timer); } + this.cleartimer(); + this.stopfx(); this.prevdisplay.setStyle('display', 'none'); this.ondisplay.setStyle('display', 'none'); - this.stopfx(); + document.location.href = this.baseurl; this.options.cbExit(); }, @@ -137,6 +159,7 @@ var Show = new Class({ this.options.cbStart(); this.isplaying = play; this.controls.running(this.isplaying); + this.updatecoords(); this.show(id); return false; /* to make it usable from href links */ }, @@ -159,8 +182,9 @@ var Show = new Class({ this.pendingload = true; this.showloading(); } + document.location.href = this.baseurl+'#'+this.vimgs[id][0]; this.controls.info(id,this.vimgs.length, - this.vimgs[id][0], + '#'+this.vimgs[id][0], this.vimgs[id][1]); }, @@ -227,7 +251,7 @@ var Show = new Class({ }); this.prevdisplay.dispose(); this.prevdisplay = this.ondisplay.clone(). - setStyle('zIndex', 2).injectInside(this.container.container); + setStyle('zIndex', 2).injectInside(this.container.domelement()); newimg.replaces(this.ondisplay); this.ondisplay = newimg; this.effect(); @@ -291,6 +315,10 @@ var Show = new Class({ this.loadingdiv.setStyle('display', 'none'); }, + cleartimer: function(){ + if (this.isplaying) { $clear(this.timer); } + }, + stopfx: function(){ if (this.fx) this.fx.cancel(); },