cbExit: function(){ alert('show exit undefined'); },
percentage: 98,
delay: 5000,
- fxduration: 200,
+ fxduration: 200
}
},
this.cache = {
prev: {},
curr: {},
- next: {},
+ 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);
+ setStyle('opacity', 0);
+ this.container.grab(this.prevdisplay);
+ this.ondisplay = this.prevdisplay.clone();
+ this.container.grab(this.ondisplay);
this.loadingdiv = new Element('div').
addClass('loading').setStyles({
position: 'absolute',
zIndex: 4,
display: 'none',
width: this.coords.width,
- height: this.coords.height,
- }).injectInside(this.container.container);
+ height: this.coords.height
+ });
+ this.container.grab(this.loadingdiv);
window.addEvent('resize', this.resizer.bind(this))
},
/* 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);
},
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();
},
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 */
},
var newcache = {
prev: (id > 0)?this.prepare(id-1):{},
curr: this.prepare(id),
- next: (id < (this.vimgs.length-1))?this.prepare(id+1):{},
+ next: (id < (this.vimgs.length-1))?this.prepare(id+1):{}
};
delete this.cache;
this.cache = newcache;
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]);
},
id: id,
vi: vi,
ready: false,
- url: this.vimgs[id][2][vi][2],
+ url: this.vimgs[id][2][vi][2]
};
cachel.img = this.bgload(cachel);
}
return new Asset.image(this.vimgs[cachel.id][2][cachel.vi][2],{
id: this.vimgs[cachel.id][0],
title: this.vimgs[cachel.id][1],
- onload: this.loadcomplete.bind(this,[cachel]),
+ onload: this.loadcomplete.bind(this,[cachel])
});
},
},
display: function(cachel){
- var newstyle = this.calcsize(cachel);
- var newimg = cachel.img.clone();
- newimg.setStyles(newstyle);
- newimg.setStyles({
+ var newimg = cachel.img.clone().
+ set('class', 'mainformat').
+ setProperty('alt', 'Current Image').
+ setStyles(this.calcsize(cachel)).
+ setStyles({
zIndex: 3,
- opacity: 0,
+ opacity: 0
});
- this.prevdisplay.dispose();
- this.prevdisplay = this.ondisplay.clone().
- setStyle('zIndex', 2).injectInside(this.container.container);
- newimg.replaces(this.ondisplay);
+ this.ondisplay.replaces(this.prevdisplay).
+ setProperty('alt', 'Previous Image').
+ setStyle('zIndex', 2);
+ this.prevdisplay = this.ondisplay;
this.ondisplay = newimg;
+ this.container.grab(this.ondisplay);
this.effect();
},
effect: function(){
this.fx = new Fx.Tween(this.ondisplay, {
- duration: this.options.fxduration,
+ duration: this.options.fxduration
});
this.fx.addEvent('complete',this.displaycomplete.bind(this));
this.fx.start('opacity', 0, 1);
},
calcsize: function(cachel){
+ if (! cachel.url) {
+ return {
+ position: 'absolute',
+ top: 0+'px',
+ left: 0+'px',
+ width: this.coords.width,
+ height: this.coords.height
+ };
+ }
var factor = 1;
var candidate;
candidate = this.target.width /
top: t+'px',
left: l+'px',
width: w,
- height: h,
+ height: h
};
},
showloading: function(){
- this.loadingdiv.setStyle('display', 'block');
+ this.loadingdiv.setStyles({
+ display: 'block',
+ width: this.coords.width,
+ height: this.coords.height
+ });
},
hideloading: function(){
this.loadingdiv.setStyle('display', 'none');
},
+ cleartimer: function(){
+ if (this.isplaying) { $clear(this.timer); }
+ },
+
stopfx: function(){
if (this.fx) this.fx.cancel();
},
width: Math.round(this.coords.width *
this.options.percentage / 100),
height: Math.round(this.coords.height *
- this.options.percentage / 100),
+ this.options.percentage / 100)
};
/* alert('coords: '+this.coords.width+'x'+this.coords.height+
', target: '+this.target.width+'x'+this.target.height); */
- },
+ }
});
+
Show.implement(new Options);
Show.implement(new Events);