X-Git-Url: https://scm.cri.ensmp.fr/git/Portfolio.git/blobdiff_plain/e966695da91713b44e2a48bbcf37b76abbf91968..0971623cf1c52edd330de6dd62a455be497f4ac6:/skins/photo_film_viewer.js?ds=inline

diff --git a/skins/photo_film_viewer.js b/skins/photo_film_viewer.js
index 7adfe9c..70f8b99 100644
--- a/skins/photo_film_viewer.js
+++ b/skins/photo_film_viewer.js
@@ -92,18 +92,18 @@ FilmSlider.prototype.resizeSlider = function(evt) {
 	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(),
+	this.winSize = {'width'	 : getWindowWidth(),
 					'height' : getWindowHeight()};
 	this.maxRightPosition = filmBarWidth - sliderWidth
 	this.sliderSpeedRatio = - (filmBarWidth - sliderWidth) / (filmWidth - filmBarWidth);
@@ -305,12 +305,13 @@ FilmSlider.prototype.thumbnailClickHandler = function(evt) {
 		disableDefault(evt);
 		disablePropagation(evt);
 		target.blur();
+        history.pushState(target.href, '', target.href);
 		
 		var imgBaseUrl = target.href;
 		var canonicalImgUrl;
 		if (this.ctxUrlTranslation[0])
 			canonicalImgUrl = imgBaseUrl.replace(this.ctxUrlTranslation[0],
-											 	 this.ctxUrlTranslation[1]);
+												 this.ctxUrlTranslation[1]);
 		else
 			canonicalImgUrl = imgBaseUrl;
 		
@@ -571,8 +572,7 @@ FilmSlider.prototype.keyPressHandler = function(evt) {
 	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':
@@ -621,30 +621,52 @@ FilmSlider.prototype.refreshImage = function() {
 };
 
 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() {