﻿// JScript File
function Magnifier(bigImgSrc, navigationImage, targetMagnifier)
{
    var Cache = new Object();
    function get(id)
    {
        return (Cache[id]) ? Cache[id] : Cache[id] = document.getElementById(id);
    }

    function magnifierHide(){
        var ed = get(targetMagnifier);
        ed.style.visibility= "hidden";
    }
    function magnifierShow(){
        var ed = get(targetMagnifier);
        ed.style.visibility= "visible";
    }

    function magnify(e){
        magnifierShow();
        var eim = get(navigationImage);
        var ed = get(targetMagnifier);
        var po = { x: 0, y: 0 };	
        var pn = { x: 0, y: 0 };	
        var opo = ElementPosition(eim);
        var evt = e?e:window.event;
        po.x = evt.clientX - opo.x;
        po.y = evt.clientY - opo.y;
        pn.x = -po.x *bigImg.width/(eim.clientWidth) + (ed.clientWidth/2);
        pn.y = -po.y *(bigImg.height)/(eim.clientHeight) + (ed.clientHeight/2);
        ed.style.backgroundPosition= (pn.x)+ "px " + (pn.y) + "px";
    }

    function ElementPosition(param){
        var pos = { x: 0, y: 0 };
        var obj = (typeof param == "string") ? get(param) : param;
        if (obj) {
            pos.x = obj.offsetLeft;
            pos.y = obj.offsetTop;
            var body = document.body;
            while (obj.offsetParent && obj!=body){
	            pos.x += obj.offsetParent.offsetLeft;
	            pos.y += obj.offsetParent.offsetTop;
	            obj = obj.offsetParent;
            }
            pos.x -= body.scrollLeft;
            if (document.documentElement && document.documentElement.scrollTop)
                pos.y -= document.documentElement.scrollTop;
            else   
                pos.y -= body.scrollTop;
        }
        return pos;
    }	
    var bigImg = new Image();
    bigImg.onload = function ()
            {
                var ed = get(targetMagnifier);
                ed.style.backgroundImage = "url(" + bigImg.src + ")";
                var eim = get(navigationImage);
                eim.onmousemove = magnify;
                eim.onmouseover = magnifierShow;
                eim.onmouseout = magnifierHide;
            }
    bigImg.src=bigImgSrc;
}
