        var targetConfirmationpage = null;
        function openDisclaimer() {
            // targetConfirmationpage = targetDownload;
            confirmSubmodal('/maonline/pages/confirmDownload.jsp', 'Confirmation');
            return false;
        }

        var OnLoadEvents = new function() {};
        var OnClickEvents = new function() {};

        var pageIsLoaded = false;
        function pageInit() {
            // do nothing
            pageChronometer.DISPLAY_WINDOW_STATUS = true;
            if (OnLoadEvents != null) {
                for (var i in OnLoadEvents) {
                    eval(OnLoadEvents[i]);
                }
            }
//            initjsDOMenu();
            initDropdownMenus();
            document.onclick = pageLeftClickHandler;
            window.onscroll = pageScrollHandler;
            document.onkeypress = pageKeypressHandler;
            window.onresize = pageResizeHandler;
            var preloadImgArray = new Array(
                "/images/x.gif", "/images/masthead/malogo.gif", "/images/icons/myMAnav.gif",
                "/images/masthead/searchButton.gif"
            );
            preloadImages(preloadImgArray);
            pageIsLoaded = true;
        }
        var activateJsDOMenu = false;
        var showResourcesExist = false;
        var evaluateHideProductResourcesDropdown = true;
        function pageLeftClickHandler(e) {
            if (pageIsLoaded) {
                var targ = getEventTarget(e);
                var escapePageClick = false;
                var evaluateSelectShield = false;
                evaluateHideProductResourcesDropdown = true;
                if (targ) {
                    /*
                        # nodeName, which contains the name of an element (e.g., table, a, meta, img)
                        # nodeValue, which holds the containing text of a text node
                        # nodeType, a number indicating one of the 12 node types. Text nodes share number 3.
                        ID    Node type             nodeName returns 	     nodeValue returns
                        9     Document              #document              null
                        11    DocumentFragment      #document fragment     null
                        10    DocumentType          doctype name           null
                        5     EntityReference       entity reference name  null
                        1     Element               element name           null
                        2     Attr 	                attribute name         attribute value
                        7     ProcessingInstruction target                 content of node
                        8     Comment               #comment               comment text
                        3     Text                  #text                  content of node
                        4     CDATASection          #cdata-section         content of node
                        6     Entity                entity name            null
                        12    Notation              notation name          null
                        # parentNode, a reference to the parent node
                        # firstChild, a reference to the first child node of a node. Corresponds to childNodes[0]
                        # childNodes, a list of nodes containing all child nodes in sequential order. A nodelist is actually its own object; however, current DOM implementations allow you to access a nodelist like an array with JavaScript.
                        var doc_root = document.documentElement;
                        var parent = foo_element.parentNode;
                        var grandpa = parent.parentNode;
                        var the_bunch = parent.childNodes;
                        var Jon_Boy = parent.childNodes[0];
                        document.getElementsByTagName("#text");
                     */
                    // climb tree to see if this node is a descendent of a clickDataType
                    function clickDataTypeTraverse(node) {
                        if (node && node.nodeType == 1) {  // element type
                            if (node.getAttribute('clickDataType')) {
                                escapePageClick = true;
                                var clickDataType = node.getAttribute('clickDataType');
                                if (clickDataType == 'menuNavClick') {
                                    var menuTargetURI = '';
                                    function traverse(node, node_type, node_name) {
                                        if (node.nodeType == node_type) {  // element type
                                            if (node.nodeName == node_name) {
                                                // input element
                                                menuTargetURI = node.getAttribute('href');
                                            }
                                        }
                                        if (node.childNodes != null) {
                                            for ( var i = 0; i < node.childNodes.length; i++) {
                                                traverse(node.childNodes.item(i), node_type, node_name);
                                            }
                                        }
                                    }
                                    traverse(node, 1, 'A');
                                    if (menuTargetURI != '') {
                                        window.location=menuTargetURI;
                                    }
                                } else if (clickDataType == 'tabClick') {
                                    // do nothing
                                } else if (clickDataType == 'toolClick') {
                                    // do nothing
                                } else if (clickDataType == 'dropdownPanelClick') {
                                    // if click in an area with a dropdown then handle ie select tag layer bugs
                                    escapePageClick = false;
                                    evaluateSelectShield = true;
                                } else if (clickDataType == 'productResourcesDropdown') {
                                    // do nothing
                                    evaluateHideProductResourcesDropdown = false;
                                } else {
                                    // do nothing
                                }
                                if (escapePageClick) {
                                    // hide all jsDOMenu items
//                                    hideAllPopupMenuItems();
                                }
                            } else {
                                clickDataTypeTraverse(node.parentNode);
                            }
                        }
                    }
                    clickDataTypeTraverse(targ);
                }
                if (!escapePageClick) {
                    if (activateJsDOMenu) {
//                        leftClickHandler(e); // for jsDOMenu
                        if (evaluateSelectShield) {
//                            menuMaskFrame('DOMenu1'); // for jsDOMenu
                        }
                    }
                }
                if (OnClickEvents != null) {
                    for (var i in OnClickEvents) {
                        eval(OnClickEvents[i]);
                    }
                }
            }
        }
        function pageScrollHandler(e) {
//            var betaLayer = document.getElementById("beta_label");
//            if (betaLayer) {
//                floatBeta();
//            }
        }
        function pageResizeHandler(e) {
//            var betaLayer = document.getElementById("beta_label");
//            if (betaLayer) {
//                floatBeta();
//            }
        }
        function floatBeta(){
            var betaLayer = document.getElementById("beta_label");
            if (betaLayer) {
				var leftSpace = getViewportSize('x', false) + getScrollSize('x') - pxToInt(betaLayer.style.width);
				var topSpace = getViewportSize('y', false) + getScrollSize('y') - pxToInt(betaLayer.style.height);
				betaLayer.style.left = leftSpace + "px";
				betaLayer.style.top = topSpace + "px";
			}
        }
        function pageKeypressHandler(e) {
            // check to see if a menu nav click
            if (getKeyEventCharacterCode(e, 'decimal') == 27) {
//                mainMenu.toggleVisibility();
//                mainMenu.setY('0');
//                mainMenu.setX('0');
            }
        }
        function initDropdownMenus() {
            var horizontalOffsetPixels = 4;
            var verticalOffsetPixels = 11;
            if (ua.ie) {
                verticalOffsetPixels = 12;
            } else if (ua.konqueror) {
                verticalOffsetPixels = 21;
            }
//            var homeNavBeaconImg = getImageCoordinates("homeNavBeacon", horizontalOffsetPixels, verticalOffsetPixels);

            var knowledgeCenterDropdownObj = document.getElementById("knowledgeCenterMenuLayer");
            var knowledgeCenterNavBeaconImg = getImageCoordinates("knowledgeCenterNavBeacon", horizontalOffsetPixels, verticalOffsetPixels);
            if (knowledgeCenterDropdownObj) {
                knowledgeCenterDropdownObj.style.left = knowledgeCenterNavBeaconImg.x + 'px';
                knowledgeCenterDropdownObj.style.top = knowledgeCenterNavBeaconImg.y + 'px';
            }
            var productsDropdownObj = document.getElementById("productMenuLayer");
            var productsNavBeaconImg = getImageCoordinates("productsNavBeacon", horizontalOffsetPixels, verticalOffsetPixels);
            if (productsDropdownObj) {
                productsDropdownObj.style.left = productsNavBeaconImg.x + 'px';
                productsDropdownObj.style.top = productsNavBeaconImg.y + 'px';
            }
            var researchDropdownObj = document.getElementById("researchMenuLayer");
            var researchNavBeaconImg = getImageCoordinates("researchNavBeacon", horizontalOffsetPixels, verticalOffsetPixels);
            if (researchDropdownObj) {
                researchDropdownObj.style.left = researchNavBeaconImg.x + 'px';
                researchDropdownObj.style.top = researchNavBeaconImg.y + 'px';
            }
            var toolsDropdownObj = document.getElementById("toolsMenuLayer");
            var toolsNavBeaconImg = getImageCoordinates("toolsNavBeacon", horizontalOffsetPixels, verticalOffsetPixels);
            if (toolsDropdownObj) {
                toolsDropdownObj.style.left = toolsNavBeaconImg.x + 'px';
                toolsDropdownObj.style.top = toolsNavBeaconImg.y + 'px';
            }
            var newsDropdownObj = document.getElementById("newsMenuLayer");
            var newsNavBeaconImg = getImageCoordinates("newsNavBeacon", horizontalOffsetPixels, verticalOffsetPixels);
            if (newsDropdownObj) {
                newsDropdownObj.style.left = newsNavBeaconImg.x + 'px';
                newsDropdownObj.style.top = newsNavBeaconImg.y + 'px';
            }
            var eventsDropdownObj = document.getElementById("eventsMenuLayer");
            var eventsNavBeaconImg = getImageCoordinates("eventsNavBeacon", horizontalOffsetPixels, verticalOffsetPixels);
            if (eventsDropdownObj) {
                eventsDropdownObj.style.left = eventsNavBeaconImg.x + 'px';
                eventsDropdownObj.style.top = eventsNavBeaconImg.y + 'px';
            }
            var communityDropdownObj = document.getElementById("communityMenuLayer");
            var communityNavBeaconImg = getImageCoordinates("communityNavBeacon", horizontalOffsetPixels, verticalOffsetPixels);
            if (communityDropdownObj) {
                communityDropdownObj.style.left = communityNavBeaconImg.x + 'px';
                communityDropdownObj.style.top = communityNavBeaconImg.y + 'px';
            }
            var magazineDropdownObj = document.getElementById("magazineMenuLayer");
            var magazineNavBeaconImg = getImageCoordinates("magazineNavBeacon", horizontalOffsetPixels, verticalOffsetPixels);
            if (magazineDropdownObj) {
                magazineDropdownObj.style.left = magazineNavBeaconImg.x + 'px';
                magazineDropdownObj.style.top = magazineNavBeaconImg.y + 'px';
            }
            var myMANavBeaconImg = getImageCoordinates("myMANavBeacon", horizontalOffsetPixels, verticalOffsetPixels);
        }
        var currentMouseOverPosition = '';
        function showDropdownMenu(dropdownMenuObjId) {
            if (pageIsLoaded) {
                currentMouseOverPosition = dropdownMenuObjId;
                var dropdownMenuObj = document.getElementById(dropdownMenuObjId);
                if (dropdownMenuObj.style.visibility == "hidden") {
                    hideAllDropdowns();
                    dropdownMenuObj.style.visibility = "";
                }
            }
        }
        var hideDropdownTimeout = 300;// in milliseconds  to wait before hiding dropdown after leaving focus
        function hideDropdownMenu(dropdownMenuObjId) {
            currentMouseOverPosition = '';
            var tmpNextFunction = "hideDropdownMenuRequest('" + dropdownMenuObjId + "')";
            setTimeout(tmpNextFunction, hideDropdownTimeout)
        }
        function hideDropdownMenuRequest (dropdownMenuObjId) {
            if (currentMouseOverPosition != dropdownMenuObjId) {
                var dropdownMenuObj = document.getElementById(dropdownMenuObjId);
                dropdownMenuObj.style.visibility = "hidden";
            }
        }
        function hideAllDropdowns(){
            document.getElementById("knowledgeCenterMenuLayer").style.visibility = "hidden";
            document.getElementById("productMenuLayer").style.visibility = "hidden";
            document.getElementById("researchMenuLayer").style.visibility = "hidden";
            document.getElementById("toolsMenuLayer").style.visibility = "hidden";
            document.getElementById("newsMenuLayer").style.visibility = "hidden";
            document.getElementById("newsMenuLayer").style.visibility = "hidden";
            document.getElementById("magazineMenuLayer").style.visibility = "hidden";
            document.getElementById("communityMenuLayer").style.visibility = "hidden";
        }


        function hideSelectDropdowns( oPopup ) {
            var arr = document.getElementsByTagName("SELECT");

            self._dropdowns_ = new Array( arr.length );
            self._dropdowns_state_ = new Array( arr.length );
            self._dropdowns_enabled_ = new Array( arr.length );
            for( var i=0,n=arr.length; i < n; i++ ) {
                self._dropdowns_[ i ] = arr[ i ];
                self._dropdowns_state_[ i ] = new String( arr[ i ].style.visibility );
                self._dropdowns_enabled_[ i ] = new String( arr[ i ].disabled );
                var overlap = ( self.isOverlapped ? self.isOverlapped( arr[ i ], oPopup ) : true );
                arr[ i ].style.visibility = ( overlap ? "hidden" : "visible" );
                arr[ i ].disabled = true;
                arr[ i ].style.cursor="wait";
            }
        }
        function restoreSelectDropdowns() {
            self._dropdowns_ = ( self._dropdowns_ ) || document.getElementsByTagName("SELECT");
            self._dropdowns_state_ = ( self._dropdowns_state_ ) || new Array( self._dropdowns_.length );
            for( var i=0, n=self._dropdowns_.length; i < n; i++ ) {
                self._dropdowns_[ i ].style.visibility = self._dropdowns_state_[ i ];
                self._dropdowns_[ i ].disabled = ( "true" == self._dropdowns_enabled_[ i ] );
                self._dropdowns_[ i ].style.cursor="default";
            }
        }
        function menuMaskFrame(handlerId) {
            var handlerObj = document.getElementById(handlerId);
            if (handlerObj) {
                if (gHideSelects == true) {
                    var showStateDisplay = handlerObj.style.display.toLowerCase();
                    var showStateVisibility = handlerObj.style.visibility.toLowerCase();
                    var showState = true;
                    if (showStateVisibility.indexOf('hidden') > -1 || showStateDisplay.indexOf('none') > -1) {
                        showState = false;
                    }
                    if (!showState) {
                        restoreSelectDropdowns();
                    } else {
                        hideSelectDropdowns( handlerObj );
                    }
                }
            }
        }

        // hitbox patches
        function hbxStrip(a) {
             a = a.split("|").join("");
             a = a.split("&").join("");
             a = a.split("'").join("");
             a = a.split("#").join("");
             a = a.split("$").join("");
             a = a.split("%").join("");
             a = a.split("^").join("");
             a = a.split("*").join("");
             a = a.split(":").join("");
             a = a.split("~").join("");
             a = a.split(";").join("");
             a = a.split(" ").join("+");
             return a;
        }
		// foldover javascript controls
		function activateTheFoldover() {
			var obj1 = document.getElementById("foldoverOpen");
			var obj2 = document.getElementById("foldoverClosed1");
			var obj3 = document.getElementById("foldoverClosed2");
			obj1.style.visibility = "visible";
			obj1.style.zIndex = "12";
			obj2.style.visibility = "hidden";
			obj3.style.visibility = "hidden";
		}
		
		function deactivateTheFoldover() {
			var obj1 = document.getElementById("foldoverOpen");
			var obj2 = document.getElementById("foldoverClosed1");
			var obj3 = document.getElementById("foldoverClosed2");
			obj1.style.visibility = "hidden";
			obj1.style.zIndex = "-12";
			obj2.style.visibility = "visible";
			obj3.style.visibility = "visible";
		}
		
		function foldover_DoFSCommand(command, args) {
			deactivateTheFoldover();
		}

        function checkCookieDisabled() {
            var tmpcookie = new Date();
            chkcookie = (tmpcookie.getTime() + '');
            document.cookie = "chkcookie=" + chkcookie + "; path=/";
            if (document.cookie.indexOf(chkcookie,0) < 0) {
                document.getElementById("cookieAlertMsg").style.display='';
            } else {
                // do nothing, it exists
            }
        }


        // global variables
        var thisIsAComparePage = false;
        var thisIsANewsletterPage = false;
        var thisIsANewsPage = false;
        var thisIsAnArticlePage = false;
        var thisIsAResourcesPage = false;

        // global tooltips
        var tooltip_myma = new TooltipKeyword("", "Update your profile, edit your product lists, manage your newsletter subscriptions.");
        var tooltip_awards = new TooltipKeyword("", "Nominate your project for inclusion in Managing Automation's Progressive Manufacturing 50 Awards Program &ndash; and get recognized for your company's extraordinary business accomplishments.");
        var tooltip_search = new TooltipKeyword("", "Search the Managing Automation site for news, articles, and product information.");
        var tooltip_vendor_central = new TooltipKeyword("", "Visit the MA Product Dashboard to list your products, update your company information, and more.");
 
        var tooltip_subscribe = new TooltipKeyword("", "Receive <i>Managing Automation</i> Magazine. Available in print or digital.");
//        var tooltip_signin = new TooltipKeyword("", "Sign in for complete access to articles, webcasts, tools, and other resources.");
//        var tooltip_signout = new TooltipKeyword("", "Sign-out/Log-off.");
 
        var tooltip_feedback = new TooltipKeyword("", "Let us know what you think!  Did our comparison tool meet your expectations?  How can it be improved?  You opinion matters to us.");

