
var uagent = navigator.userAgent;
var appver = navigator.appVersion.substring(0,1);

function showTip(ctrl, tiptext, debug) {
    if (debug) {
        if (event.altKey) {
            showIt(tiptext);
        }
    }
    else {
		// in IE all we need to do is set the "title" attribute
		ctrl.title = tiptext;
	}
}

function showIt(s) {
	var p;
	p = window.open("","showdebug","toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=500,height=600");
	p.document.open("text/html", "replace");
	var i;
	var ss;
	var k;
	k = 0;
	p.document.write("<html><head>\n<title>Group/Field Debug</title>\n<style>\n<!--\n.body {\ncolor: #000000;\nfont-size: 8pt;\nfont-weight: normal;\nfont-family: Verdana, Arial, Helvetica, sans-serif;\n}\n-->\n</style></head>\n<body class='body'>\n");
        ss = "";
	for(i = 0; i <= s.length; i++) {
		if (s.charAt(i) == '-') {
			k++;
		}
		else {
			k = 0;
		}
		if (k < 20) {
			ss += s.charAt(i);
			if (s.charAt(i) == '\n')
				ss += "<br>";
		}
	}
	p.document.write(ss);
	p.document.write("\n</body></html>\n");
}

function findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function showHideLayers() { //v6.0
  var i,p,v,obj,args=showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

function setElementsVisibility (targetName, newDisplay)
{
    // Should consider keeing array of hidden elements
    // (from hideIntersectingSelects)
    // and using that in here rather than scanning all
    var allElements = document.all
    var index = 0;
    for (index = allElements.length - 1;index > -1; index--) {
        var currentElement = allElements[index];
        if (currentElement.tagName == targetName) {
            currentElement.style.visibility = newDisplay;
        }
    }
    return false;
}

function hideIntersectingSelects (divObject)
    {
        var allElements = document.all
        var index = 0;
        var divObjectTop = absoluteTop(divObject);
        var divObjectBottom = divObjectTop + divObject.offsetHeight;
        var divObjectLeft = absoluteLeft(divObject);
        var divObjectRight = divObjectLeft + divObject.offsetWidth;
        for (index = allElements.length - 1;index > -1; index--) {
            var currentElement = allElements[index];
            if (currentElement.tagName == 'SELECT' && currentElement.id != "awexempt") {
                if (doesIntersect(divObjectTop, divObjectBottom, divObjectLeft, divObjectRight, currentElement)) {
                    currentElement.style.visibility = 'hidden';
                }
            }
        }
        return false;
    }



function doesIntersect (divObjectTop, divObjectBottom, divObjectLeft, divObjectRight, targetElement)
    {
        var doesIntersect = false;
        var targetElementTop = absoluteTop(targetElement);
        if (divObjectBottom >= targetElementTop) {
            var targetElementBottom = targetElementTop + targetElement.offsetHeight;
            if (divObjectTop <= targetElementBottom) {
                var targetElementLeft = absoluteLeft(targetElement);
                if (divObjectRight >= targetElementLeft) {
                    var targetElementRight = targetElementLeft + targetElement.offsetWidth;
                    if (divObjectLeft <= targetElementRight) {
                        doesIntersect = true;
                    }
                }
            }
        }
        return doesIntersect;
    }



function absoluteTop (element)
{
    var absoluteTop = element.offsetTop;
    var parentElement = element.offsetParent;
    while (parentElement != null) {
        absoluteTop += parentElement.offsetTop;
        parentElement = parentElement.offsetParent;
    }
    return absoluteTop;
}

function absoluteLeft (element)
{
    var absoluteLeft = element.offsetLeft;
    var parentElement = element.offsetParent;
    while (parentElement != null) {
        absoluteLeft += parentElement.offsetLeft;
        parentElement = parentElement.offsetParent;
    }
    return absoluteLeft;
}

