


	function disc_onloadForDisclaimers(){
	   // we had to hide the body in the component in case JS was disabled.  It's not so show it.
 	   document.getElementsByTagName("body")[0].style.display = "block";
	   // dynamically resize the disclaimer overlays so they cover the whole page body, not just the part showing
	   disc_resizeDisclaimerOverlays();
	   //	identify all disclaimer names and create an array of objects which are disclaimer name and priority, sort
	   var disclaimerNodes = getElementsByClassName(document.documentElement, 'disc_disclaimer');
	   var disclaimerArray = new Array();
	   for (i in disclaimerNodes){
             if (typeof disclaimerNodes[i] != 'function'){
	        var disclaimerName = disclaimerNodes[i].id;
	        var priorityNode = getElementsByClassName(disclaimerNodes[i], 'disc_priority')[0].firstChild;
	        var priority = 100;	// if priority is not set, it should be low
	        if (priorityNode != null)
	           priority = priorityNode.nodeValue * 1;
	        disclaimerArray.push(new disc_disclaimer(disclaimerName, priority));
             }
	   }
	   disclaimerArray.sort(disc_sortDisclaimerByPriority);

	   //	call recursive disc_loadMicrositeDisclaimers
	   disc_loadMicrositeDisclaimers(disclaimerArray, cookiesEnabled());
	}


	function disc_loadMicrositeDisclaimers(disclaimerArray, cookiesEnabled){
	   if (disclaimerArray.length == 0){
	      //	if there are no disclaimers left, show the page
	      disc_removeDisclaimer();
	   } else {
	      // disclaimer array is not empty, so shift off the highest priority element
	      var selectedDisclaimer = disclaimerArray.shift();
	      if (cookiesEnabled){
	        // if cookies are enabled, check if the disclaimer has been accepted and if so, recurse
	        if (getCookie(selectedDisclaimer.disclaimerName) == 'accepted'){
	           disc_loadMicrositeDisclaimers(disclaimerArray, cookiesEnabled);
	        } else {
	           disc_displayDisclaimer(selectedDisclaimer, disclaimerArray, cookiesEnabled);
	        }
	      } else {
	        // if cookies are not enabled, all disclaimers must be re-accepted.  and add a warning message to disclaimer
	        disc_displayDisclaimer(selectedDisclaimer, disclaimerArray, cookiesEnabled);
		  }
	   }
	}

	function disc_resizeDisclaimerOverlays(){
	   var overlayNodes = getElementsByClassName(document.documentElement, 'disc_disclaimer_overlay');
	   for (i in overlayNodes){
	      if (typeof overlayNodes[i] !== 'function') {
  	   	  overlayNodes[i].style.height = document.body.scrollHeight;
	   	  overlayNodes[i].style.width = document.body.scrollWidth;
             }
	   }	
	   // For IE, we must use iframes to conceal windowed controls behind the overlays
          if (navigator.appName == 'Microsoft Internet Explorer'){
             var iframeNodes = getElementsByClassName(document.documentElement, 'iframe_windowed_control_hack');
             for (i in iframeNodes){
                if (typeof iframeNodes[i] != 'function'){
                  iframeNodes[i].style.height = document.body.scrollHeight;
                  iframeNodes[i].style.width = document.body.scrollWidth;
                }
             }
          }
	}


	function disc_removeDisclaimer(){
	  // hide all disclaimers
	  var disclaimers = getElementsByClassName(document.documentElement, 'disc_disclaimer');
	  for (i in disclaimers){
            if (typeof disclaimers[i] != 'function'){
	        disclaimers[i].style.display = 'none';
            }
	  }
	}


	function disc_displayDisclaimer(selectedDisclaimer, disclaimerArray, cookiesEnabled){

	  var selectedNode = document.getElementById(selectedDisclaimer.disclaimerName);

	  //	hide all disclaimers
	  var disclaimers = getElementsByClassName(document.documentElement, 'disc_disclaimer');
	  for (i in disclaimers){
            if (typeof disclaimers[i] != 'function'){
	        disclaimers[i].style.display = 'none';
            }
	  }

	  // add onclick
	  var acceptButton = getElementsByClassName(selectedNode, 'disc_accept')[0];
	  acceptButton.onclick = function(){setCookie(selectedDisclaimer.disclaimerName, 'accepted', '', '/', '', ''); disc_loadMicrositeDisclaimers(disclaimerArray, cookiesEnabled);};

	  // if cookies aren't enabled, warn
	  if (!cookiesEnabled){
	    textNode = getElementsByClassName(selectedNode, 'disc_disclaimer_popup')[0];
	    noCookieWarn = getElementsByClassName(selectedNode, 'disc_no_cookies')[0];
	    var warningTextNode = document.createElement("div");
	    warningTextNode.innerHTML = noCookieWarn.innerHTML;
	    warningTextNode.className = 'disc_cookie_warning';
	    textNode.appendChild(warningTextNode);
	  }

	  // 	move selected disclaimer outside the templated area and display it
	  var bodyNode = document.getElementsByTagName("body")[0];
	  var selectedNode = document.getElementById(selectedDisclaimer.disclaimerName);
	  var selectedPop = getElementsByClassName(selectedNode, "disc_disclaimer_popup")[0];
	  selectedNode.style.display = 'block';
	  selectedPop.style.display = 'block';
	  bodyNode.appendChild(selectedNode);

	}


    // Constructor for disclaimer object
	function disc_disclaimer(disclaimerName, priority){
	  this.disclaimerName = disclaimerName;
	   this.priority = priority;
	}


    // Custom sort function for array of disclaimer objects
	function disc_sortDisclaimerByPriority(a,b){
	  var x = a.priority * 1;
	  var y = b.priority * 1;
	  return ((x < y) ? -1 :((x > y) ? 1 : 0));
	}


    // Onclick event for disclaimer
	function disc_declineMicrositeDisclaimer(rejectUrl){
		if (rejectUrl != null && rejectUrl.length > 0)
			location.href = rejectUrl;
	}


