    // *** BROWSER VERSION ***
    var agt=navigator.userAgent.toLowerCase();
    var appVer = navigator.appVersion.toLowerCase();

    var is_minor = parseFloat(appVer);
    var is_major = parseInt(is_minor);

    // Note: On IE, start of appVersion return 3 or 4
    // which supposedly is the version of Netscape it is compatible with.
    // So we look for the real version further on in the string

    var iePos  = appVer.indexOf('msie');
    if (iePos !=-1) {
       is_minor = parseFloat(appVer.substring(iePos+5,appVer.indexOf(';',iePos)))
       is_major = parseInt(is_minor);
    }

    var is_getElementById   = (document.getElementById) ? "true" : "false"; // 001121-abk
    var is_getElementsByTagName = (document.getElementsByTagName) ? "true" : "false"; // 001127-abk
    var is_documentElement = (document.documentElement) ? "true" : "false"; // 001121-abk

    var is_gecko = ((navigator.product)&&(navigator.product.toLowerCase()=="gecko"))?true:false;
    var is_gver  = 0;
    if (is_gecko) is_gver=navigator.productSub;

    var is_moz   = ((agt.indexOf('mozilla/5')!=-1) && (agt.indexOf('spoofer')==-1) &&
                    (agt.indexOf('compatible')==-1) && (agt.indexOf('opera')==-1)  &&
                    (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1)     &&
                    (is_gecko) && 
                    ((navigator.vendor=="")||(navigator.vendor=="Mozilla")));
    if (is_moz) {
       var is_moz_ver = (navigator.vendorSub)?navigator.vendorSub:0;
       if(!(is_moz_ver)) {
           is_moz_ver = agt.indexOf('rv:');
           is_moz_ver = agt.substring(is_moz_ver+3);
           is_paren   = is_moz_ver.indexOf(')');
           is_moz_ver = is_moz_ver.substring(0,is_paren);
       }
       is_minor = is_moz_ver;
       is_major = parseInt(is_moz_ver);
    }

    var is_nav  = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1)
                && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1)
                && (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1)
                && (!(is_moz)));

    // Netscape6 is mozilla/5 + Netscape6/6.0!!!
    // Mozilla/5.0 (Windows; U; Win98; en-US; m18) Gecko/20001108 Netscape6/6.0
    // Changed this to use navigator.vendor/vendorSub - dmr 060502   
    // var nav6Pos = agt.indexOf('netscape6');
    // if (nav6Pos !=-1) {
    if ((navigator.vendor)&&
        ((navigator.vendor=="Netscape6")||(navigator.vendor=="Netscape"))&&
        (is_nav)) {
       is_major = parseInt(navigator.vendorSub);
       // here we need is_minor as a valid float for testing. We'll
       // revert to the actual content before printing the result. 
       is_minor = parseFloat(navigator.vendorSub);
    }

    var is_opera = (agt.indexOf("opera") != -1);
    var is_opera2 = (agt.indexOf("opera 2") != -1 || agt.indexOf("opera/2") != -1);
    var is_opera3 = (agt.indexOf("opera 3") != -1 || agt.indexOf("opera/3") != -1);
    var is_opera4 = (agt.indexOf("opera 4") != -1 || agt.indexOf("opera/4") != -1);
    var is_opera5 = (agt.indexOf("opera 5") != -1 || agt.indexOf("opera/5") != -1);
    var is_opera6 = (agt.indexOf("opera 6") != -1 || agt.indexOf("opera/6") != -1); // new 020128- abk
    var is_opera5up = (is_opera && !is_opera2 && !is_opera3 && !is_opera4);
    var is_opera6up = (is_opera && !is_opera2 && !is_opera3 && !is_opera4 && !is_opera5); // new020128

    var is_nav2 = (is_nav && (is_major == 2));
    var is_nav3 = (is_nav && (is_major == 3));
    var is_nav4 = (is_nav && (is_major == 4));
    var is_nav4up = (is_nav && is_minor >= 4);  // changed to is_minor for
                                                // consistency - dmr, 011001
    var is_navonly      = (is_nav && ((agt.indexOf(";nav") != -1) ||
                          (agt.indexOf("; nav") != -1)) );

    var is_nav6   = (is_nav && is_major==6);    // new 010118 mhp
    var is_nav6up = (is_nav && is_minor >= 6) // new 010118 mhp

    var is_nav5   = (is_nav && is_major == 5 && !is_nav6); // checked for ns6
    var is_nav5up = (is_nav && is_minor >= 5);

    var is_nav7   = (is_nav && is_major == 7);
    var is_nav7up = (is_nav && is_minor >= 7);

    var is_ie   = ((iePos!=-1) && (!is_opera));
    var is_ie3  = (is_ie && (is_major < 4));

    var is_ie4   = (is_ie && is_major == 4);
    var is_ie4up = (is_ie && is_minor >= 4);
    var is_ie5   = (is_ie && is_major == 5);
    var is_ie5up = (is_ie && is_minor >= 5);
    
    var is_ie5_5  = (is_ie && (agt.indexOf("msie 5.5") !=-1)); // 020128 new - abk
    var is_ie5_5up =(is_ie && is_minor >= 5.5);                // 020128 new - abk
	
    var is_ie6   = (is_ie && is_major == 6);
    var is_ie6up = (is_ie && is_minor >= 6);

    // KNOWN BUG: On AOL4, returns false if IE3 is embedded browser
    // or if this is the first browser window opened.  Thus the
    // variables is_aol, is_aol3, and is_aol4 aren't 100% reliable.

    var is_aol   = (agt.indexOf("aol") != -1);
    var is_aol3  = (is_aol && is_ie3);
    var is_aol4  = (is_aol && is_ie4);
    var is_aol5  = (agt.indexOf("aol 5") != -1);
    var is_aol6  = (agt.indexOf("aol 6") != -1);
    var is_aol7  = ((agt.indexOf("aol 7")!=-1) || (agt.indexOf("aol7")!=-1));

    var is_webtv = (agt.indexOf("webtv") != -1);
    
    // new 020128 - abk
    
    var is_TVNavigator = ((agt.indexOf("navio") != -1) || (agt.indexOf("navio_aoltv") != -1)); 
    var is_AOLTV = is_TVNavigator;

    var is_hotjava = (agt.indexOf("hotjava") != -1);
    var is_hotjava3 = (is_hotjava && (is_major == 3));
    var is_hotjava3up = (is_hotjava && (is_major >= 3));

	
	document.write('<iframe style="height:auto" src="resources/help/void.html" name="helpFrame" id="helpContainer" class="hframeStyle" marginwidth="0" marginheight="0" frameborder="0" scrolling="no"></iframe>');
	// void.html just contains <html> and <body> tag. Calendar script writes into <body> tag.

	
	var g_Help;  // global to hold the temp reference, set by constructor


	// constructor for temp class
	function Help(){
	  g_Help = this;
	  // some constants needed throughout the program
    	  if (is_ie5up || is_nav6up) {
    	  	tmpIframeObject = document.getElementById('helpContainer');
  	  	this.targetIframe = tmpIframeObject;
  	  	// retrieve the iframe's inner document
  	  	if (is_ie5 || is_ie5_5) { this.targetDocument = frames['helpFrame'].document; this.targetDocument.createStyleSheet('temp.css') }
	  	else if (is_ie6up) { this.targetDocument = tmpIframeObject.contentWindow.document }
	  	else if (is_nav6up) { this.targetDocument = tmpIframeObject.contentDocument}
	  }
	  this.targetIframe.style.height=0;
	}

	// EXAMPLE: onclick="g_Help.show(event,helpMessage)
	Help.prototype.show = function(evt, helpMessage){

  	// hide IFRAME during computation (if already visible for another field)
  	if (this.targetIframe.style.visibility=='visible') {
  		  this.targetIframe.style.visibility='hidden';
  		  return;
  	}
  	var tmpStr = '<table width="100%" height="100%" border="0" cellspacing="0" cellpadding="1" class="hborderColor"><tr><td valign="top"><table height="100%" width="100%" border="0" cellspacing="2" cellpadding="2" class="hbgColor"><tr><td valign="top" height=100%">';
  	tmpStr += helpMessage;
	  tmpStr += '</td></tr></table></td></tr></table>';  	
  	
  	// move IFRAME to coordinates of mouse click (handle event)
  	evt = (evt) ? evt : ((window.event) ? window.event : "") // if Netscape6/DOM, "evt" already contains event, otherwise (IE) set to window.event
  	if (is_ie5up) {
  		this.targetIframe.style.left = evt.clientX + document.body.scrollLeft;
  		this.targetIframe.style.top = evt.clientY + document.body.scrollTop;
  	} else if (is_nav6up) {
  		this.targetIframe.style.left = evt.pageX;
  		this.targetIframe.style.top = evt.pageY;
  	}

  	this.writeString(tmpStr);  	
  	
  	this.iFrameHeight();
    this.targetIframe.style.visibility='visible';

	}

	Help.prototype.writeString = function(str){
	    // retrieve the (only) <body> tag in the void.html Iframe source
	    var innerBody = this.targetDocument.getElementsByTagName('body').item(0);
	    innerBody.innerHTML = str;
	}


	Help.prototype.hide = function(){
		this.targetIframe.style.visibility='hidden';
		this.targetIframe.style.height=0;
	}


	// function used to hide the temp upon a user click (outside the temp)
	function handleDocumentClick(e){
	e = (e) ? e : ((window.event) ? window.event : "") // if Netscape6/DOM, "e" already contains event, otherwise (IE) set to window.event
	if (g_Help) { // g_Help is initialized during the page "onload" event which is triggered when the page has been completely loaded, but the user could click BEFORE the page is not completely loaded.
	var bTest; // boolean used to test if user clicked inside the temp. TRUE=clicked inside.
	var tmpIframe = g_Help.targetIframe;
	if (is_nav6up) {
	    bTest = (e.pageX > parseInt(tmpIframe.style.left,10) && e.pageX <  (parseInt(tmpIframe.style.left,10)+125) && e.pageY < (parseInt(tmpIframe.style.top,10)+125) && e.pageY > parseInt(tmpIframe.style.top,10));
	} else if (is_ie5up) {
	   // we are catching a click event in the "window" object, so e.x gives the correct value
	   bTest = (e.x > parseInt(tmpIframe.style.left,10) && e.x <  (parseInt(tmpIframe.style.left,10)+125) && e.y < (parseInt(tmpIframe.style.top,10)+125) && e.y > parseInt(tmpIframe.style.top,10));
	}

	var tmpTargetElement; // object used to check if user clicked an item in the temp
        if (e.target) {
            tmpTargetElement = (e.target.nodeType == 3) ? e.target.parentNode : e.target
        } else {
            tmpTargetElement = e.srcElement
        }
	// if clicked
	if (tmpTargetElement.name!='imgHelp' && tmpTargetElement.name!='helpFrame' && !bTest)
	{
		g_Help.hide();
	}
	
	} // if (g_Help)

	} // end function
	
	Help.prototype.iFrameHeight = function(){
		
		
if(document.getElementById && !(document.all)) {
h = document.getElementById('helpContainer').contentDocument.body.scrollHeight;
document.getElementById('helpContainer').style.height = h;
}
else if(document.all) {
h = document.frames('helpContainer').document.body.scrollHeight;
document.all.helpFrame.style.height = h;
}
}
	
	
  //popups[popups.length]= handleDocumentClick;
	

