MaxBox = Base.extend({
	constructor: function(oHref, iImageWidth, iImageHeight) {
		
//		console.log("ImageWidth: " + iImageWidth);
//		console.log("ImageHeight: " + iImageHeight);
		
		/*
			picX/picY correspondent aux dimensions X et Y de l'image originelle
			winX/winY correspondent aux dimensions X et Y de la zone exploitable à l'écran
			
			But: Maximiser la quantité d'image à l'écran
				* On affiche sans scrollbar la dimension la plus petite de l'image
				* la scrollbar éventuelle est à réserver à la dimension la plus grande
		*/
		
		var str = '';
		
		var winmarginX = 20;
		var winmarginY = 50;
		
		if(navigator.userAgent.match(/chrome/i)) {
			var popupmarginX = 4;
			var popupmarginY = 4;
		} else {
			var popupmarginX = 0;
			var popupmarginY = 0;
		}
		
		var picX = parseInt(iImageWidth);
		var picY = parseInt(iImageHeight);
		
		var winX = 1024 - winmarginX;
		var winY = 768 - winmarginY;
		
		var displayedX = 0;
		var displayedY = 0;
		
		var popupX = 0;
		var popupY = 0;
		
		var scrollX = false;
		var scrollY = false;
		
		if(window.screen) {
			var winX = window.screen.availWidth - winmarginX;
			var winY = window.screen.availHeight - winmarginY;
		}
		
		var availX = winX - popupmarginX;
		var availY = winY - popupmarginY;
		
		if(picX <= availX && picY <= availY) {
			popupX = displayedX = picX;
			popupY = displayedY = picY;
		} else {
			if(picX <= picY) {
				if(picX > availX) {
					// on diminue l'image pour que displayedX = availX
					displayedX = parseInt(availX);
				} else {
					// la largeur de l'image est inférieure à la largeur de l'écran
					displayedX = parseInt(picX);
				}
				
				displayedY = parseInt(picY * (displayedX / picX));

				popupX = displayedX;

				if(displayedY > availY) {
					popupY = availY;

					// on place une scrollbar sur Y
					scrollY = true;
				} else {
					popupY = displayedY;
				}
			} else {
				if(picY > availY) {
					// on diminue l'image pour que displayedY = availY
					displayedY = parseInt(availY);
				} else {
					// la largeur de l'image est inférieure à la largeur de l'écran
					displayedY = parseInt(picY);
				}
				
				displayedX = parseInt(picX * (displayedY / picY));
				
				popupY = displayedY;
				
				if(displayedX > availX) {
					popupX = availX;
					
					// on place une scrollbar sur X
					scrollX = true;
				} else {
					popupX = displayedX;
				}
			}
		}
		
		if(scrollX || scrollY) {
			str += ",scrollbars=yes";
		}
		
		popupX += popupmarginX;
		popupY += popupmarginY;
		if(scrollY) {
			popupX += 16;
		}
		
		if(scrollX) {
			popupY += 16;
		}
		
//		console.log("availX:" + availX, "popupX:" + popupX, "displayedX:" + displayedX);
//		console.log("availY:" + availY, "popupY:" + popupY, "displayedY:" + displayedY);
		
		// centrage de la popup dans l'écran
		var xc = parseInt((winX - popupX + winmarginX) / 2);
		var yc = parseInt((winY - popupY + winmarginY) / 2);
		
		str += ",left=" + xc + ",screenX=" + xc; 
		str += ",top=" + yc + ",screenY=" + yc;
		
		var parameters = 'width=' + popupX + ',height=' + popupY + str;
//		console.log(parameters);
		
		var newwindow = window.open('','',parameters);
		
		var tmp = newwindow.document;
		tmp.write('<html><head><title>Detail</title>');
		tmp.write('<style>* {margin: 0 0 0 0; padding: 0 0 0 0; border: none;} </style>');
		tmp.write('</head><body>');
		tmp.write('<p style="text-align: center;">');
		tmp.write('<a style="margin: 0 auto;" href="javascript:self.close()" title="' + oHref.title.replace('"', "'") + '">');
		tmp.write('<img src="' + oHref.href + '" width="' + displayedX + ' height="' + displayedY + '"/>');
		tmp.write('</a>');
		tmp.write('</p>');
		tmp.write('</body></html>');
		tmp.close();

		if(newwindow.focus) {
			newwindow.focus();
		}
	}
});