﻿function showInfo(infobutton, text) {

    var isxhtml = false;
    if (typeof document.namespaces != "undefined" && document.all[0].nodeType==8 && document.all[0].nodeValue.toLowerCase().indexOf("xhtml") != -1) {
        isxhtml = true;
    } else if(document.doctype != null && document.doctype.publicId.toLowerCase().indexOf("xhtml") != -1) {
        isxhtml = true;
    }

    var scrollTop=getScrollXY()[0];
    var scrollLeft=getScrollXY()[1];
   
    var bodyHeight = getClientHeight();
    var bodyWidth = getClientWidth();
    
    if (document.documentElement) {
        if (document.documentElement.scrollTop) {
            scrollTop =	document.documentElement.scrollTop;
            scrollLeft = document.documentElement.scrollLeft;
        }
        if (document.documentElement.clientHeight && isxhtml) {
            bodyHeight = document.documentElement.clientHeight;
        }
        if (document.documentElement.clientWidth) {
            bodyWidth = document.documentElement.clientWidth;
        }
    }
   
    var infobox = document.getElementById("pnlInfobox");
    document.getElementById("pnlInfoCenter").innerHTML = "<p>" + text+ "</p>";
    //document.getElementById("pnlInfoCenter").innerHTML = text
    infobox.style.display = "";
    var topposition = (getXYpos(infobutton)["y"]-infobox.offsetHeight);
    //if (topposition < scrollTop) {
    if (topposition + infobox.offsetHeight < bodyHeight && topposition < scrollTop) {
        topposition = (getXYpos(infobutton)["y"]+infobutton.offsetHeight);
        document.getElementById("pnlInfoHeader").style.height = "22px";
        document.getElementById("pnlInfoHeader").innerHTML = "<img src='../Images/infobox_top_arrow.gif' />";
        document.getElementById("pnlInfoFooter").innerHTML = "<img src='../Images/infobox_footer_no_arrow.gif' />";
    } else {
        document.getElementById("pnlInfoHeader").style.height = "6px";
        document.getElementById("pnlInfoHeader").innerHTML = "<img src='../Images/infobox_top.gif' />";
        document.getElementById("pnlInfoFooter").innerHTML = "<img src='../Images/infobox_footer.gif' />";
    }
    infobox.style.top = topposition+"px";
    infobox.style.left = (getXYpos(infobutton)["x"]+5)+"px";
}
function hideInfo(infobutton) {
    var infobox = document.getElementById("pnlInfobox");
    /*infobutton.src = "../Images/info_butt.png";*/
    infobox.style.display = "none";
}
function getOffsetTop(elm){
    var y=0;
    if(elm==null)return 0;
    if(elm.y)
    {
    y+=elm.y;
    }
    else
    {
        e=elm;
        if(e.offsetParent)    
        {
            while(e.offsetParent) 
            {
            y+=e.offsetTop;e=e.offsetParent;
            }
        }
    }
    if(isNaN(y)){return 0;}
    return y;
    }
 
    function getOffsetLeft(elm){
    var x=0;
    if(elm==null) return 0;
    if(elm.x)
    {
        x+=elm.x;
    }
    else
    {
        e=elm;
        if(e.offsetParent)
        {
        while(e.offsetParent)
            {
            x+=e.offsetLeft;e=e.offsetParent;
            }
        }
    }
    if(isNaN(x)){return 0;}return x;
}


function getClientWidth() {

	var scrollWidth = ((document.documentElement.scrollWidth>=0) ?document.documentElement.scrollWidth:document.body.scrollWidth);
	var offsetWidth = ((document.documentElement.offsetWidth>=0) ?document.documentElement.offsetWidth:document.body.offsetWidth);
	var offsetLeft = ((document.documentElement.offsetLeft>=0) ?document.documentElement.offsetLeft:document.body.offsetLeft);

	if( window.innerWidth && window.scrollMaxX ) {
		pageWidth = window.innerWidth + window.scrollMaxX;
    } else if( scrollWidth > offsetWidth ) {
		pageWidth = scrollWidth;
    } else {
		pageWidth = offsetWidth + offsetLeft;
	}

    return pageWidth;
}

function getClientHeight() {

	var scrollHeight = ((document.documentElement.scrollHeight>=0) ?document.documentElement.scrollHeight:document.body.scrollHeight);
	var offsetHeight = ((document.documentElement.offsetHeight>=0) ?document.documentElement.offsetHeight:document.body.offsetHeight);
	var offsetTop = ((document.documentElement.offsetTop>=0) ?document.documentElement.offsetTop:document.body.offsetTop);

	if( window.innerHeight && window.scrollMaxY ) {	
		pageHeight = window.innerHeight + window.scrollMaxY;
    } else if( scrollHeight > offsetHeight ) {
		pageHeight = scrollHeight;
    } else {
		pageHeight = offsetHeight + offsetTop;
	}

    return pageHeight;
}

function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  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;
  }
  return [ scrOfX, scrOfY ];
}

function getXYpos(elem) {
   if (!elem) {
      return {"x":0,"y":0};
   }
   var xy={"x":elem.offsetLeft,"y":elem.offsetTop}
   var par=getXYpos(elem.offsetParent);
   for (var key in par) {
      xy[key]+=par[key];
   }
   return xy;
}

