﻿/* Miscelaneous Scripts */

function GetElementPosition(xElement)
{
    var theElement = document.getElementById(xElement);
    var top = 0 ;
    var left = 0;
    
    while (theElement != null)  /* FOR IE: IMPORTANT TO USE while INSTEAD OF if */
    {
        top += theElement.offsetTop;
        left += theElement.offsetLeft;
        theElement = theElement.offsetParent;
    }

    return { top:top, left:left }
}

function changeObjectVisibility(HoveredId, objectId, newVisibility, setX,setY, layerWidth, yIncrease)
{
    // *  layerWidth is used to place the appearing div in the center of the hovered object
        // to achieve this centered position, the layerWidth should be the Width of the appearing div
        // Example: it can be used with help divs.
        // If the appearing divs are navigation menus for example, the layerWidth should be zero
    
    var X; // The new final X position
    var Y; // The new final Y position
    var HoveredPos = GetElementPosition (HoveredId);
    
    var yDefaultIncrease=21;  //default value used to increase the Y final position (based on Safari)
    var yBrowserInc = 0; // By default no browser y increment
    var browserInfo = detectBrowser();
    // document.write("Browser Name: " + browserInfo.name + "   Browser version: " + browserInfo.version);
    
    // The following incrementals are "somehow" based on the bottom padding on the #mainNav li a
    if (browserInfo.name=="IE" && browserInfo.version<="6")    
        yBrowserInc = 9; 
    if (browserInfo.name=="IE" && browserInfo.version>="7")    
        yBrowserInc = 9; 
	if (browserInfo.name=="Opera")    
        yBrowserInc = 8; 
    if (browserInfo.name=="Firefox")    
        yBrowserInc = 1; 
	
    if (setX<0)
        X = HoveredPos.left - (layerWidth/2);
    else
        X=setX;
	
    if (setY<0)
    {
        if (yIncrease==null || yIncrease<0)
	        Y = HoveredPos.top + yDefaultIncrease + yBrowserInc;
        if (yIncrease>0)
	        Y = HoveredPos.top + yIncrease + yBrowserInc;
    }
    else
        Y=setY;

    document.getElementById(objectId).style.top = Y + 'px';
    document.getElementById(objectId).style.left = X + 'px';
    document.getElementById(objectId).style.visibility = newVisibility;

} // End changeObjectVisibility

function detectBrowser()
{

    var nVer = navigator.appVersion;
    var nAgt = navigator.userAgent;
    var browserName  = '';
    var fullVersion  = 0; 
    var majorVersion = 0;

    // In Internet Explorer, the true version is after "MSIE" in userAgent
    if ((verOffset=nAgt.indexOf("MSIE"))!=-1) {
     browserName  = "IE";
     fullVersion  = parseFloat(nAgt.substring(verOffset+5));
     majorVersion = parseInt(''+fullVersion);
    }

    // In Opera, the true version is after "Opera" 
    else if ((verOffset=nAgt.indexOf("Opera"))!=-1) {
     browserName  = "Opera";
     fullVersion  = parseFloat(nAgt.substring(verOffset+6));
     majorVersion = parseInt(''+fullVersion);
    }

    // In Firefox, the true version is after "Firefox" 
    else if ((verOffset=nAgt.indexOf("Firefox"))!=-1) {
     browserName  = "Firefox";
     fullVersion  = parseFloat(nAgt.substring(verOffset+8));
     majorVersion = parseInt(''+fullVersion);
    }

    // In most other browsers, "name/version" is at the end of userAgent 
    else if ( (nameOffset=nAgt.lastIndexOf(' ')+1) < (verOffset=nAgt.lastIndexOf('/')) ) 
    {
     browserName  = nAgt.substring(nameOffset,verOffset);
     fullVersion  = parseFloat(nAgt.substring(verOffset+1));
     if (!isNaN(fullVersion)) majorVersion = parseInt(''+fullVersion);
     else {fullVersion  = 0; majorVersion = 0;}
    }

    // Finally, if no name and/or no version detected from userAgent...
    if (browserName.toLowerCase() == browserName.toUpperCase()
     || fullVersion==0 || majorVersion == 0 )
    {
     browserName  = navigator.appName;
     fullVersion  = parseFloat(nVer);
     majorVersion = parseInt(nVer);
    }

    return { name:browserName, version:majorVersion }
    /*document.write('Browser name  = '+browserName+'<br>');
    document.write('Full version  = '+fullVersion+'<br>');
    document.write('Major version = '+majorVersion+'<br>');
    document.write('navigator.appName = '+navigator.appName+'<br>');
    document.write('navigator.userAgent = '+navigator.userAgent+'<br>');*/
}