﻿// JScript File

 var divName = 'holderLayer'; // div that is to follow the mouse, must be positioned absolutely
 
 var setPosition = false;

 var offX = 15;          // X offset from mouse position
 var offY = -3;          // Y offset from mouse position
 
 var scrOfX = 0;
 var scrOfY = 0;
 
 var mousePositionX;
 var mousePositionY;
 var windowInnerHeight;
 var windowInnerWidth;
 var layerName;
 
 function mouseX(evt) {if (!evt) evt = window.event; if (evt.pageX) return evt.pageX; else if ( evt.clientX)return evt.clientX + (document.documentElement.scrollLeft ?  document.documentElement.scrollLeft : document.body.scrollLeft); else return 0;}
 function mouseY(evt) {if (!evt) evt = window.event; if (evt.pageY ) return evt.pageY; else if (evt.clientY)return evt.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop); else return 0;}
 
 function follow(evt) {
    if (document.getElementById) {
        
        var divNameObj = document.getElementById(divName);
    
        var obj = document.getElementById(divName).style;
        obj.visibility = 'visible';
        
        mousePositionX = (parseInt(mouseX(evt))); // Get X Mouse Position
        mousePositionY = (parseInt(mouseY(evt))); // Get Y Mouse Position
       
        obj.left = mousePositionX + offX + 'px'; // move divName object horizontally to match mouse position offset by offX variable
        obj.top = mousePositionY + offY + 'px'; // move divName object vertically to match mouse position offset by offY variable
        
        windowInnerWidth = document.documentElement.clientWidth;
            
        if(navigator.appName == "Microsoft Internet Explorer"){
            windowInnerHeight = document.documentElement.clientHeight;
        } else {
            windowInnerHeight = window.innerHeight;
        }
        
        getScrollXY();
        
        if(setPosition == true){
            if(divNameObj.offsetWidth != 0){
                if((divNameObj.offsetWidth + mousePositionX) >= windowInnerWidth){
                    offX = (divNameObj.offsetWidth * -1) -15; // If the pop up is off screen reposition X
                } else {
                    offX = 15;
                }
            }
            
           if(divNameObj.offsetHeight != 0){
               if((divNameObj.offsetHeight + mousePositionY) >= windowInnerHeight){
                   if ((divNameObj.offsetHeight + mousePositionY) >= windowInnerHeight && (((divNameObj.offsetHeight+5)*-1) + mousePositionY) <= scrOfY) {
                       offY = -3;
                   } else {
                       offY = ((divNameObj.offsetHeight * -1) -5); // If the pop up is off screen reposition Y
                   }
                } else {
                   offY = -3;
                }
            }
        }

        setPosition = false; // After the position is set forces the mouse offset position to remain
    }
 }
 
function getScrollXY() {
    // Determine Browser and get the currently Scrolled Position
    if( typeof( window.pageYOffset ) == 'number' ) {
        //Netscape compliant
        scrOfY = window.pageYOffset;
        scrOfX = window.pageXOffset;
    } else if (document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
        //DOM compliant
        scrOfY = document.body.scrollTop;
        scrOfX = document.body.scrollLeft;
    } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
        //IE6 standards compliant mode
        scrOfY = document.documentElement.scrollTop;
        scrOfX = document.documentElement.scrollLeft;
    }
}
 
 document.onmousemove = follow;
 
 function swapLayer(layerName){
    var layernameObj = document.getElementById(layerName); // layer to be swapped
    var divNameObj = document.getElementById(divName); // holder layer
    var innerLayer = "contentLayer"+layerName;
    divNameObj.innerHTML = layernameObj.innerHTML;
    offX = -4000; offY = -4000; // Hide the layer offscreen while the width and height is captured
    divNameObj.style.display = "block";
    if(document.getElementById(innerLayer)){
        PlaceIframeBehindCoverLayer(layerName); // this calls the script which places the iframe behind the coverlayer
    }
    setPosition = true; // variable allowing position to be set on initial rollover only.
 }
 
 
 
 function hideLayer(layerName){
    var divNameObj = document.getElementById(divName);
    var innerLayer = "contentLayer"+layerName;
    if(document.getElementById(innerLayer)){
        RemoveIframeLayerifPlaced(innerLayer); // this calls the script which removes the iframe if it was displayed
    }
    divNameObj.style.display = "none";
    setPosition = false; // reset variable
 }
 
var noOfActiveLayers = 0;
 
function PlaceIframeBehindCoverLayer(layerName) {

    var objLayer = document.getElementById(divName);
    //debugger;
    var objIframe = document.getElementById("iframe"+layerName);
    if(objIframe!=null && objLayer!=null){
        objIframe.style.height = objLayer.clientHeight + "px";
        objIframe.style.width = objLayer.clientWidth + "px";
        objIframe.style.visibility = "visible";
        objIframe.style.left = "0";
        objIframe.style.top = "0";
        objIframe.style.zIndex = (noOfActiveLayers+1.5)*2;
        //objIframe.style.filter = objLayer.style.filter;
        objLayer.style.zIndex = (noOfActiveLayers+2)*2;
    }
}

function RemoveIframeLayerifPlaced(innerLayer) {
    var objIframe = document.getElementById("iframe"+innerLayer);
    if(objIframe != null) {
        if(noOfActiveLayers==0) {
            objIframe.style.visibility = "hidden";
        } else {
            //reduce z-index appropriately
            objIframe.style.zIndex = (noOfActiveLayers)*2;
        }
    }
}
