            function imageMagnifier(imageWidth,imageHeight,pageContentWidth,magnifyDivXOffset,magnifyBigImg,prodImgPath){
   			   lensDimension = {
                    w: imageWidth/4,
                    h: imageHeight/4
                };   

                imageDivDimension = {
                    w: imageWidth,
                    h: imageHeight
                };
				isMagnifierInited = false;
				isInited = false;
				var lensDiv,magnifyDiv,bigImage;				
				
               function onMouseMove(element,e){				
	                if (!isMagnifierInited) {
	                    initMagnifier();
	                }

                	mouseCord = getEventMousePos(element, e || window.event);
                	imageDivCords = getElementPos(element);
                               
	                if (mouseCord.x >= 4 &&
		                mouseCord.x <= imageDivDimension.w &&
		                mouseCord.y >= 4 &&
		                mouseCord.y <= imageDivDimension.h){
						if (!isInited) {
	                    	init(element, imageDivDimension, imageDivCords);
	                    	isInited = true;
	               		}

	                    magnify(mouseCord, element, lensDiv, magnifyDiv,lensDimension,imageDivDimension);
	                }
	                else {
						resetMagnify(element);
						isInited = false;
	                }
	                return false;
	            }
            
            function init(ele, imageDivDimension, imageDivCords){
                //if ((imageDivCords.x + imageDivDimension.w / 2 - pageContentWidth / 2 > 0)) {
                    //put magnify div on the left of image div
                 //   magnifyDiv.style.left = imageDivCords.x - magnifyDivXOffset + "px";
                //}
                //else {
                //    magnifyDiv.style.left = imageDivCords.x + imageDivDimension.w + magnifyDivXOffset + "px";
                //}
                magnifyDiv.style.left = imageDivDimension.w + magnifyDivXOffset + "px";
                magnifyDiv.style.top = "0px";

                lensDiv.style.left = 0;
                lensDiv.style.top = 0;
				lensDiv.onmouseout=function(){return false;};
                
                ele.appendChild(magnifyDiv);
                ele.appendChild(lensDiv);
                //ele.appendChild(imageOverLayDiv);
            }
            
            function initMagnifier(){           
                if (lensDiv == null || !lensDiv) {
                    lensDiv = document.createElement("div");
		    //lensImg = document.createElement("img");
		    //lensImg.src = prodImgPath;
		    //lensImg.setAttribute("id", "lensImg");
		    //lensDiv.appendChild(lensImg);                    
                }
                lensDiv.setAttribute("id", "lensDiv");
                
                if (magnifyDiv == null || !magnifyDiv) {
                    magnifyDiv = document.createElement("div");
                }
                magnifyDiv.setAttribute("id", "magnifyDiv");
                
                if (bigImage == null || !bigImage) {
                    bigImage = document.createElement("img");
                }
                bigImage.setAttribute("id", "magnifyBigImg");
                bigImage.setAttribute("src", magnifyBigImg);
                magnifyDiv.appendChild(bigImage);
                
               // if (imageOverLayDiv == null || !imageOverLayDiv) {
               //     imageOverLayDiv = document.createElement("div");
               // }
               // imageOverLayDiv.setAttribute("id", "imageOverLayDiv");	                
                
                isMagnifierInited = true;
            }
            
            function magnify(cord, sourceDiv, lensDiv, magnifyDiv,lensDimension,imageDivDimension){         
	        //var xMinimum = lensDimension.w / 2;
	        // var yMinimum = lensDimension.h / 2;
	        var xMaximum = imageDivDimension.w - lensDimension.w;
	        var yMaximum = imageDivDimension.h - lensDimension.h; 
	        
	        var lensX = cord.x - lensDimension.w / 2;
	        var lensY = cord.y - lensDimension.h / 2;
            	if(lensX < 0){
                	lensX = 0;
                }else if(lensX > xMaximum){
                	lensX = xMaximum;
                }
                
                if(lensY < 0){
               		lensY = 0;                         
                }else if(lensY > yMaximum){
                	lensY = yMaximum;
                }
                
                lensDiv.style.left = lensX + "px";
                lensDiv.style.top = lensY + "px";
                
                bigImage.style.left = -4 * lensX + "px";
                bigImage.style.top = -4 * lensY + "px";
                
				//var lensImage = document.getElementById("lensImg");
				//lensImage.style.left=-lensX+"px";
				//lensImage.style.top=-lensY+"px";
				//lensImage.style.position = "absolute";
				
				//imageOverLayDiv.style.display = "block";                
            }
            
            
            function getEventMousePos(element, e){
                var scrollX = document.body.scrollLeft || document.documentElement.scrollLeft;
                var scrollY = document.body.scrollTop || document.documentElement.scrollTop;
                
                var pos = getElementPos(element);
                return {
                    x: e.clientX - pos.x + scrollX,
                    y: e.clientY - pos.y + scrollY
                }                
            }
 
             function isMouseOn(element, e){
                var scrollX = document.body.scrollLeft || document.documentElement.scrollLeft;
                var scrollY = document.body.scrollTop || document.documentElement.scrollTop;
                
                var pos = getElementPos(element);
                x = e.clientX  + scrollX,
                y = e.clientY  + scrollY				
                
				if(x >= pos.x && x <= pos.x+360 && y >= pos.y && y <= pos.y+240){
					return true;
				}
				return false;
            }
            
            function getElementPos(element){
                var x = element.offsetLeft;
                var y = element.offsetTop;
                var parent = element.offsetParent;
                while (parent) {
                    x += parent.offsetLeft;
                    y += parent.offsetTop;
                    parent = parent.offsetParent;
                }
                return {
                    x: x,
                    y: y
                }
            }
            
            function resetMagnify(el){
				if (lensDiv.parentNode == el) {
					el.removeChild(lensDiv);
				}
				if (magnifyDiv.parentNode == el) {
					el.removeChild(magnifyDiv);
				}          
				
				//imageOverLayDiv.style.display = "none";	
            }
            
            function reset(element,e){
				if(!isMouseOn(element,e)){
					resetMagnify(element);
					isInited = false;
				}
			}
			
            return {onMouseMove:onMouseMove,reset:reset,resetMagnify:resetMagnify};
           }
		   var magnifyOnMouseMove,magnifyReset;
		   function addMagnifier(prodImgDiv,magnifierObj){		   		
				magnifyOnMouseMove = addEvent(prodImgDiv,"mousemove",magnifierObj.onMouseMove);
				magnifyReset = addEvent(prodImgDiv,"mouseout",magnifierObj.reset);
		   }
		   
		   //
		   function removeMagnifier(prodImgDiv,magnifierObj){		   		
				removeEvent(prodImgDiv,"mousemove",magnifyOnMouseMove);
				removeEvent(prodImgDiv,"mouseout",magnifyReset);
		   }	

            function addEvent(element, ev, handler){
                 var doHandler = function(e){
	                        return handler(element,e || window.event);
                }
                if (element.addEventListener) {
                    element.addEventListener(ev, doHandler, false);
                }
                else 
                    if (element.attachEvent) {
                        element.attachEvent("on" + ev, doHandler);
                    }
               return doHandler;
            }
            
            function removeEvent(element, ev, handler){
                if (element.removeEventListener) {
                    element.removeEventListener(ev, handler, false);
                }
                else 
                    if (element.detachEvent) {
                        element.detachEvent("on" + ev, handler);
                    }
            }            
