/*	em_resizer.js
	copyleft Tancrède Bastié 2004-2008

requires :
	dom.js
	js_lib.js

index :
	setPageWidth([minEm, maxEm])

*/

function setPageWidth(minEm, maxEm) {
/*	writes a hidden division the width of which is used by resizeEm to adjust the font size
	écrit une division cachée dont la largeur est utilisée par resizeEm pour ajuster la taille de la police
*/

	addLoadEvent(
		function() {

			pageDiv = document.getElementById("page");

			function resizeEm() {
			/*	adjusts the document body font size so that the hidden 'M' line matches the viewport width
				ajuste la police du corps du document afin que la ligne cachée de "M" corresponde à la largeur de l'affichage
			*/
				function elementWidth(element) {
				/*	get the width of a DOM element
					rends la largeur d'un élément du document
				*/
					var width;
					if (width = element.clientWidth) return width;
					return element.offsetWidth;
				}
				pageDiv.style.fontSize = "1em"
				var emWidth = elementWidth(pageDiv);
				var referenceWidth = elementWidth(referenceDiv)
				pageDiv.style.fontSize = Math.range(minEm, referenceWidth / emWidth, maxEm) + "em";
			}

			if (!minEm) minEm = 0.6;
			if (!maxEm) maxEm = 1.2;

			var referenceDiv = document.createElement("div");
			referenceDiv.style.visibility = "hidden";
			referenceDiv.style.border = "#0F0 1px solid"
			referenceDiv.style.width = "99%";
			document.body.appendChild(referenceDiv);

			resizeEm();
			window.onresize = resizeEm;
		}
	)
}

setPageWidth();
