var filmWidth = this.slideSize * this.filmLength;
var sliderRatio = this.sliderRatio = filmBarWidth / filmWidth;
var sliderWidth = filmBarWidth * sliderRatio;
+ this.rail.style.width = filmBarWidth + 'px';
+ this.rail.style.display = 'block';
+ this.rail.style.visibility = 'visible';
if (sliderRatio < 1) {
- this.rail.style.width = filmBarWidth + 'px';
this.slider.style.width = Math.round(sliderWidth) + 'px';
- this.rail.style.display = 'block';
- this.rail.style.visibility = 'visible';
+ this.slider.style.visibility = 'visible';
}
else {
- this.rail.style.display = 'none';
- this.rail.style.visibility = 'hidden';
+ this.slider.style.visibility = 'hidden';
}
this.winSize = {'width' : getWindowWidth(),
FilmSlider.prototype._fitToScreen = function(evt) {
var wh = getWindowHeight();
- var ch = document.body.clientHeight;
+ var rb = getObjectTop(this.rail) + getObjectHeight(this.rail); // rail bottom
+ var delta = wh - rb
var sh = getObjectHeight(this.stretchable);
- var newSize = sh + wh - ch;
+ var newSize = sh + delta;
this.stretchable.style.height = newSize + 'px';
var ratio = this.image.height / this.image.width;
var target = getTargetedObject(evt);
if (target.tagName == 'INPUT' || target.tagName== 'TEXTAREA')
return;
- var evt = evt = getEventObject(evt);
- evt = getEventObject(evt);
+ var evt = getEventObject(evt);
var charPress = String.fromCharCode((evt.keyCode) ? evt.keyCode : evt.which);
switch(charPress) {
case 'f':
};
FilmSlider.prototype.startSlideShow = function() {
- this.slideShowSlide = this.selectedSlide;
- this.nextSlideShowSlide = this.selectedSlide;
+ this.slideShowSlide = this.pendingSlideShowSlide = this.selectedSlide;
return this.slideShowSlide.href;
};
FilmSlider.prototype.slideShowNext = function() {
- this.slideShowSlide = this.nextSlideShowSlide;
var nextSlide = this.slideShowSlide.parentNode.nextSibling;
if (nextSlide && nextSlide.nodeType==3)
nextSlide = nextSlide.nextSibling;
if (nextSlide) {
nextSlide = nextSlide.getElementsByTagName('a')[0];
- this.nextSlideShowSlide = nextSlide;
- return nextSlide.href;
+ this.pendingSlideShowSlide = nextSlide;
+ return this.pendingSlideShowSlide.href;
}
else {
var row = this.slideShowSlide.parentNode.parentNode;
var first = row.firstChild;
if (first.nodeType==3)
first = first.nextSibling;
- this.nextSlideShowSlide = first.getElementsByTagName('a')[0];
- return this.nextSlideShowSlide.href;
+ this.pendingSlideShowSlide = first.getElementsByTagName('a')[0];
+ return this.pendingSlideShowSlide.href;
+ }
+};
+
+FilmSlider.prototype.slideShowPrevious = function() {
+ var previousSlide = this.slideShowSlide.parentNode.previousSibling;
+ if (previousSlide && previousSlide.nodeType==3)
+ previousSlide = previousSlide.previousSibling;
+
+ if (previousSlide) {
+ previousSlide = previousSlide.getElementsByTagName('a')[0];
+ this.pendingSlideShowSlide = previousSlide;
+ return this.pendingSlideShowSlide.href;
}
+ else {
+ var row = this.slideShowSlide.parentNode.parentNode;
+ var last = row.lastChild;
+ if (last.nodeType==3)
+ last = last.previousSibling;
+ this.pendingSlideShowSlide = last.getElementsByTagName('a')[0];
+ return this.pendingSlideShowSlide.href;
+ }
+};
+
+FilmSlider.prototype.slideShowImageLoaded = function() {
+ this.slideShowSlide = this.pendingSlideShowSlide;
};
FilmSlider.prototype.stopSlideShow = function() {