function smoothScale(swfUrl, target) {

	function isSmoothBrowser() {
	// Returns true for all those browsers that already smooth scaled images (See http://www.quirksmode.org/js/detect.html)
		if (navigator.platform.indexOf("Mac") === -1) {	// Not a mac
			if (navigator.userAgent.indexOf("Firefox") !== -1) { // Is Firefox
				if (parseFloat(navigator.userAgent.substring(navigator.userAgent.indexOf("Firefox") + 8)) < 3) {
					return false; // Not Firefox 3+
				} else {
					return true; // Is Firefox 3+
				}		
			} else {
				return false; // Not Firefox
			}
		} else {
			return true; // Is a Mac
		}
	}

	if (!isSmoothBrowser()) {
		var flash = new FlashReplace(swfUrl, target, "1", "1", "9.0.0");
		flash.version = 9;
		flash.sendMode = "HTML";
		flash.insertionPoint = {"position": "before"};
		flash.params = {"wmode": "transparent"};
		
		var resizeElement = document.createElement("DIV");
		resizeElement.style.display = "block";
		resizeElement.style.position = "absolute";
		resizeElement.style.width = "auto";
		resizeElement.style.height = "10em";
		resizeElement.style.overflow = "hidden";
		resizeElement.style.left = "100px";
		resizeElement.style.right = "100px";		
		resizeElement.style.top = "-100px";

		document.body.appendChild(resizeElement);

		var resizeWidth = resizeElement.clientWidth;
		var resizeHeight = resizeElement.clientHeight;		
		
		flash.ready = function () {
			// Setup each Flash object
			this.flashObjects(function (FlashObject) {

				FlashObject.embedded = function () {
					swfobject.createCSS("#" + FlashObject.id, "position: absolute; z-index: 1;");
					if (FlashObject.targetNode.complete === false) {
						var preloadImg = new Image();
						preloadImg.src = FlashObject.targetNode.getAttribute("src");
						preloadImg.onload = FlashObject.position;
					} else {
						FlashObject.position();
					}
				};

				FlashObject.ready = function () {
					FlashObject.targetNode.style.opacity = 0;
					FlashObject.targetNode.style.filter = "alpha(opacity=0)";
					FlashObject.targetNode.style.position = "relative";
					FlashObject.targetNode.style.zIndex = "2";
					
					FlashObject.position();
				};

				FlashObject.position = function () {
					if (FlashObject.element) {
						var zoomLevel = 1;
						if (resizeElement.style.pixelLeft) {
							// Detect IE7 zoom level, modified from http://blog.hedgerwow.com/2007/12/05/detect-page-zoom-for-ie7/
							var n = Math.ceil(resizeElement.offsetLeft / resizeElement.style.pixelLeft * 100);
							zoomLevel = n / 100;
						}

						FlashObject.element.setAttribute("width", FlashObject.targetNode.clientWidth + "px");
						FlashObject.element.setAttribute("height", FlashObject.targetNode.clientHeight + "px");
						FlashObject.element.style.left = (FlashObject.targetNode.offsetLeft / zoomLevel) + "px";
						FlashObject.element.style.top = (FlashObject.targetNode.offsetTop / zoomLevel) + "px";
					}
				};

			});

			function repositionFlashObjects() {
				flash.flashObjects(function (FlashObject) {
					FlashObject.position();
				});
			}

			function checkResize() {		
				var newResizeWidth = resizeElement.clientWidth;
				var newResizeHeight = resizeElement.clientHeight;

				if (newResizeWidth !== resizeWidth || newResizeHeight !== resizeHeight) {
					repositionFlashObjects();
				}

				resizeWidth = newResizeWidth;
				resizeHeight = newResizeHeight;
			}

			// Timer to check resize status
			var resizeTimer = setInterval(checkResize, 50);


			// Embed and initialise each Flash object
			flash.embed();
		};

		swfobject.addDomLoadEvent(flash.setup);		
	}
}

swfobject.addDomLoadEvent(function () {
	var elems = $(".main-image").get()

	// swfUrl, target
	smoothScale("/swf/SmoothScale.swf", elems);
});
