var agt=navigator.userAgent.toLowerCase();
var is_opera = (agt.indexOf("opera") != -1);

function ShowStatus(obj,hide,msg){
	document.getElementById("Status_help").innerHTML = msg;
	ShowHelp(obj,'Status',hide);
}
function ShowProductDetails(obj, hide, msg) {
    document.getElementById("Product_help").innerHTML = msg;
    ShowHelp(obj, 'Product', hide);
}

function ShowHelp(obj, field, hide) {
    //Get help object
    var helpObj;
    if (document.all) {
        helpObj = document.all[field + "_help"];
    } else if (document.getElementById) {
        helpObj = document.getElementById(field + "_help");
    }
    if (helpObj) {
        var divWidth = 300;
        //if help object is shown, hide it ; if object hidden, show it
        if (hide) {
            helpObj.style.display = "none";
            helpObj.style.height = "0px";
            divWidth = 0;
        } else {
            helpObj.style.display = "";
            helpObj.style.height = "";
        }

        //Get location of mouseover object, move help object to the left if will display off-screen
        var offsetLeft = getOffsetLeft(obj);
        var screenWidth = (window.innerWidth) ? window.innerWidth - 25 : document.body.clientWidth;
        if ((offsetLeft + divWidth) > screenWidth) offsetLeft = screenWidth - divWidth;
        newX = offsetLeft;

        //Get location of mouseover object, move help object on top if will display off-screen
        var divHeight = helpObj.offsetHeight;
        var offsetTop = getOffsetTop(obj) + obj.offsetHeight + 5;
        var screenHeight = (window.innerHeight) ? window.innerHeight - 25 : document.body.clientHeight;
        if (moveOnScreen) {
            if ((offsetTop + divHeight) > screenHeight + getScrollY()) { offsetTop = getOffsetTop(obj) - divHeight }
            else if ((offsetTop + divHeight) > screenHeight) { offsetTop = getOffsetTop(obj) - (divHeight / 2) }
        }
        newY = offsetTop;

        helpObj.style.top = newY + "px";
        helpObj.style.left = newX + "px";

        if (!hide) {
            qh_hideElement("select", helpObj);
            qh_hideElement("object", helpObj);
            qh_hideElement("embed", helpObj);
        } else {
            qh_showElement("select");
            qh_showElement("object");
            qh_showElement("embed");
        }
    }
}

function getOffsetTop (elm) {
	var mOffsetTop = elm.offsetTop;
	var mOffsetParent = elm.offsetParent;
	while (mOffsetParent) {
		mOffsetTop += mOffsetParent.offsetTop;
		mOffsetParent = mOffsetParent.offsetParent;}
	return mOffsetTop;
}

function getOffsetLeft (elm) {
	var mOffsetLeft = elm.offsetLeft;
	var mOffsetParent = elm.offsetParent;
	while (mOffsetParent) {
		mOffsetLeft += mOffsetParent.offsetLeft;
		mOffsetParent = mOffsetParent.offsetParent;}
	return mOffsetLeft;
}

function getScrollY() {
  var scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape
    scrOfY = window.pageYOffset;}
  else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM
    scrOfY = document.body.scrollTop;}
  else if( document.documentElement &&
      ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6
    scrOfY = document.documentElement.scrollTop;}
  return scrOfY;
}

function qh_hideElement( elmID, overDiv ) {
  if(document.all) {
    for(i = 0; i < document.all.tags( elmID ).length; i++) {
      obj = document.all.tags( elmID )[i];
      if(!obj || !obj.offsetParent) continue;

      // Find the element's offsetTop and offsetLeft relative to the BODY tag.
      objLeft   = obj.offsetLeft;
      objTop    = obj.offsetTop;
      objParent = obj.offsetParent;

      while(objParent.tagName.toUpperCase() != 'BODY') {
        objLeft  += objParent.offsetLeft;
        objTop   += objParent.offsetTop;
        objParent = objParent.offsetParent;
      }

      objHeight = obj.offsetHeight;
      objWidth  = obj.offsetWidth;

      if((overDiv.offsetLeft + overDiv.offsetWidth) <= objLeft);
      else if((overDiv.offsetTop + overDiv.offsetHeight) <= objTop);
      else if(overDiv.offsetTop >= (objTop + objHeight));
      else if(overDiv.offsetLeft >= (objLeft + objWidth));
      else {
        obj.style.visibility = 'hidden';
      }
    }
  }
}
function qh_showElement(elmID) {
  if(document.all) {
    for(i = 0; i < document.all.tags( elmID ).length; i++) {
      obj = document.all.tags(elmID)[i];
      if(!obj || !obj.offsetParent) continue;
      obj.style.visibility = '';
    }
  }
}
var moveOnScreen = true;
