﻿
function windowScroll()
{
  var x = 0, y = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    y = window.pageYOffset;
    x = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    y = document.body.scrollTop;
    x = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    y = document.documentElement.scrollTop;
    x = document.documentElement.scrollLeft;
  }
  return new point(x,y);
}
function windowSize() 
{
  var w = 0, h = 0;
  if (typeof( window.innerWidth ) == 'number') 
  {
    w = window.innerWidth;
    h = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    w = document.documentElement.clientWidth;
    h = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    w = document.body.clientWidth;
    h = document.body.clientHeight;
  }
  return new point(w,h);
}
function findPos(obj) {
	var x = y = 0;
	if (obj.offsetParent) {
		x = obj.offsetLeft;
		y = obj.offsetTop;
		while (obj = obj.offsetParent) {
			x += obj.offsetLeft;
			y += obj.offsetTop;
		}
	}
	return new point(x,y);
}
function point(intX, intY) {
    this.x = intX; this.y = intY; 
}  
function placeMe(objClick, objLayer, offset)
{
    var objStyle = (objLayer.style) ? objLayer.style : objLayer;
    if (objStyle.display == 'none') {
        objStyle.visibility = 'hidden';
        objStyle.display = 'block';
    }
    var intHt = objLayer.offsetHeight;
    var winSize = windowSize();
    var winScroll = windowScroll();
    var itemPos = findPos(objClick);
    var intBot = winSize.y + winScroll.y - itemPos.y;
    var intTop = (intBot < itemPos.y && intBot < intHt) ? itemPos.y + objClick.offsetHeight - intHt : itemPos.y - offset.y;

    objStyle.left = itemPos.x + offset.x + 'px';
    objStyle.top = intTop + 'px';
}
function lynx(objClick, ticker)
{
    var objMenu = getObj('linkmenu');
    if (objMenu)
    {
        objMenu.innerHTML = '<ul>' +  
           '<li class="pophead">&nbsp;Public Information: ' + ticker + '</li>' +
           '<li><a target="_pop" href="http://finance.google.com/finance?client=ob&q=' + ticker + '">Google<small>&trade;</small></a></li>' +
           '<li><a target="_pop" href="http://quicktake.morningstar.com/FundNet/Snapshot.aspx?Country=USA&pgid=hetopquote&Symbol=' + ticker + '">Morningstar<span style="font-size: 6pt; vertical-align:top;">&reg;</span></a></li>' +
           '<li><a target="_pop" href="http://finance.yahoo.com/q/pr?s=' + ticker + '">Yahoo<span style="font-size: 6pt; vertical-align:top;">&reg;</span></a></li>' +
           '</ul>';
           
        placeMe(objClick, objMenu, new point(objClick.offsetWidth, 18));
    }
    return(objMenu);
}
function loglnks(objClick, strBase)
{
    var objMenu = getObj('linkmenu');
    if (objMenu)
    {
        objMenu.innerHTML = '<ul>' +
        '<li class="pophead">&nbsp;Add Fund (Login Needed)</li>' +
        '<li><a href="' + strBase + '/register.aspx">Register Now</a></li>' + 
        '<li><a href="' + strBase + '/UserLogin.aspx">Log in to existing account</a></li>' + 
        '</ul>';
        
        placeMe(objClick, objMenu, new point(objClick.offsetWidth, 18));
    }
    return objMenu;
}
