X-Git-Url: https://svn.cri.ensmp.fr/git/Portfolio.git/blobdiff_plain/66235147e52b54a90a144bbc03627bd1114caf72..9d15a219a1b6910463064c64f9c211c606b4b5eb:/skins/photo_film_viewer.js?ds=sidebyside

diff --git a/skins/photo_film_viewer.js b/skins/photo_film_viewer.js
index f1f650d..c6f583b 100644
--- a/skins/photo_film_viewer.js
+++ b/skins/photo_film_viewer.js
@@ -5,7 +5,6 @@ Licence Creative Commons http://creativecommons.org/licenses/by-nc/2.0/
 */
 
 var FilmSlider;
-
 (function(){
 
 var keyLeft = 37, keyRight = 39;
@@ -186,6 +185,7 @@ FilmSlider.prototype._fitToScreen = function(evt) {
 		var src = this.image.src.replace(imgRequestedSize, 'size=' + bestFitSize);
 		this.pendingImage.src = src;
 	}
+	this.adjustImage(this.image);
 };
 
 FilmSlider.prototype.getBestFitSize = function(ratio) {
@@ -210,6 +210,27 @@ FilmSlider.prototype.getBestFitSize = function(ratio) {
 	return DEFAULT_IMAGE_SIZES[i];
 };
 
+FilmSlider.prototype.adjustImage = function(img) {
+	var dispWidth = parseInt(this.stretchable.style.width);
+	var imgWidth = img.naturalWidth;
+	var dispHeight = parseInt(this.stretchable.style.height);
+	var imgHeight = img.naturalHeight;
+	var ratio;
+
+	if (imgHeight > dispHeight) {
+		ratio = dispHeight / imgHeight;
+		imgWidth = imgWidth * ratio;
+		imgHeight = dispHeight;
+	}
+	if (imgWidth > dispWidth) {
+		ratio = dispWidth / imgWidth;
+		imgHeight = imgHeight * ratio;
+		imgWidth = dispWidth;
+	}
+	img.width = imgWidth;
+	img.height = imgHeight;
+};
+
 if (!browser.isMobile) {
 	FilmSlider.prototype.centerSlide = function(slideIndex) {
 		if (this.sliderRatio > 1) { return; }
@@ -721,6 +742,7 @@ FilmSlider.prototype.populateViewer = function(req) {
 };
 
 FilmSlider.prototype.refreshImage = function() {
+	this.adjustImage(this.pendingImage);
 	this.image.style.visibility = 'hidden';
 	this.image.src = this.pendingImage.src;
 	this.image.width = this.pendingImage.width;
@@ -750,12 +772,11 @@ FilmSlider.prototype.startThumbnailsLoadQueue = function(evt) {
 	}
 	if (leftSize > rightSize) {
 		for (i = this.center - rightSize - 1 ; i >= 0 ; i--) {
-			console.log(i);
 			this.thumbnailsLoadingOrder.push(thumbnails[i]);
 		}
 	}
 	else if (leftSize < rightSize) {
-		for (i = this.center + leftSize ; i < thumbnails.length ; i++) {
+		for (i = this.center + leftSize + 1 ; i < thumbnails.length ; i++) {
 			this.thumbnailsLoadingOrder.push(thumbnails[i]);
 		}
 	}