var zoom;
var magInterval;

function LoadProductImage(handle, showloadingimage) {

    var mainImageID = "myimage";
    var instructionsID = "ProductImageInstructions";
    var loadingImageSrc = "/_resources/backgroundsbymaheu.com/images/ajax-loader.gif";
    var thumbWidth = 50;
    var thumbHeight = 50;
    var mainImageWidth = 250;
    var mainImageHeight = 250;
    var zoomImageWidth = 400;
    var zoomImageHeight = 400;

    var imgSrc;
    var magnifySrc;
    imgSrc = handle.src;
    imgSrc = imgSrc.replace("width=" + thumbWidth, "width=" + mainImageWidth);
    imgSrc = imgSrc.replace("height=" + thumbHeight, "height=" + mainImageHeight);
    magnifySrc = imgSrc;
    magnifySrc = magnifySrc.replace("width=" + mainImageWidth, "width=" + zoomImageWidth);
    magnifySrc = magnifySrc.replace("height=" + mainImageHeight, "height=" + zoomImageHeight);

    if (zoom) { zoom.parentNode.removeChild(zoom); }

    if (showloadingimage) {
        // -- if used in IE before main image is done loading, we get the '1 item loading' bug --- //
        var parentHandle = getElement(mainImageID).parentNode;
        parentHandle.removeChild(getElement(mainImageID));

        var imageLoading = new Image();
        imageLoading.onload = function () {
            imageLoading.onload = null;
        }
        imageLoading.src = loadingImageSrc;
        imageLoading.id = mainImageID;

        parentHandle.appendChild(imageLoading);
        // --- end IE bug --- //
    }

    var zoomImage = new Image();
    zoomImage.onload = function () {
        zoomImage.onload = null;
        var image = new Image();

        image.onload = function () {

            image.onload = null;
            getElement(mainImageID).src = imgSrc;

            var imageWidth = getElement(mainImageID).offsetWidth;
            if (imageWidth == 16) {
                magInterval = setInterval("TryToMagnifyIt('" + mainImageID + "','" + instructionsID + "','" + magnifySrc + "')", 50);
            }
            else {
                MagnifyIt(mainImageID, instructionsID, magnifySrc);
            }

        };
        image.src = imgSrc;

    };
    zoomImage.src = magnifySrc;
}

function TryToMagnifyIt(mainImageID, instructionsID, magnifySrc) {
    var imageWidth = getElement(mainImageID).offsetWidth;
    if (imageWidth > 16) {
        clearInterval(magInterval);
        MagnifyIt(mainImageID, instructionsID, magnifySrc);
    }
}

function MagnifyIt(mainImageID, instructionsID, magnifySrc) {
    //alert("MagnifyIt");
    // move stuff out of the way...
    var imageWidth;
    var imageHeight;
    var instructionsHeight;

    var applyFirefoxFix = false;

    imageWidth = getElement(mainImageID).offsetWidth;
    imageHeight = getElement(mainImageID).offsetHeight;
    instructionsHeight = getElement(instructionsID).offsetHeight;

    if (imageWidth > 0) {
        getElement("ProductDetailLeft").style.width = imageWidth + "px";
    }
    if (imageHeight > 0) {
        getElement("ProductMultipleImages").style.top = (imageHeight + instructionsHeight) + "px";
        getElement("ProductMultipleImages").style.display = "block";
    }
    zoom = MojoMagnify.makeMagnifiable(getElement(mainImageID), magnifySrc);
}

function getElement(name) {
    var o1 = null;
    if (document.all) {
        o1 = document.all(name);
    }
    else if (document.getElementById) {
        o1 = document.getElementById(name);
    }
    return o1;
}

function getInternetExplorerVersion() {

    var rv = -1; // Return value assumes failure.

    if (navigator.appName == 'Microsoft Internet Explorer') {

        var ua = navigator.userAgent;

        var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");

        if (re.exec(ua) != null)

            rv = parseFloat(RegExp.$1);

    }

    return rv;

}

