function getactionurl()
{

  // The form and the radio button
  var theForm   = document.getElementById("frmSubscribe");
  var rbSpecial = document.getElementById("special");
  var rbMonthly = document.getElementById("monthly");
  var rbAnnual  = document.getElementById("annual");

  // DOM inputs
  var inputCmp;
  var inputHbxOu;
  var inputHbxPk;
  var inputExtKey;
  var inputPkey;

  // Get query string parameters by name
  var cmp     = document.getElementsByName("CMP");
  var hbxou   = document.getElementsByName("HBX_OU");
  var hbxpk   = document.getElementsByName("HBX_PK");
  var extkey  = document.getElementsByName("EXTKEY");
  var pkey    = document.getElementsByName("pkey");

  // Get the individual DOM inputs
  if (cmp.length > 0)
    inputCmp = cmp[0];
  if (hbxou.length > 0)
    inputHbxOu = hbxou[0];
  if (hbxpk.length > 0)
    inputHbxPk = hbxpk[0];
  if (extkey.length > 0)
    inputExtKey = extkey[0];
  if (pkey.length > 0)
    inputPkey = pkey[0];

  // The query string
  var qryString = window.location.search.substring(1);

  // Assign the input values
  var qs = qryString.split("&");
  for (i = 0; i < qs.length; i++)
  {
    var x = qs[i].split("=");

    if (x.length > 1)
    {
      switch (x[0])
      {
        case "CMP":
          inputCmp.value = x[1];
          break;
        case "HBX_OU":
          inputHbxOu.value = x[1];
          break;
        case "HBX_PK":
          inputHbxPk.value = x[1];
          break;
        case "EXTKEY":
          inputExtKey.value = x[1];
          break;          
        default:
          break;
      }
    }
  }
  
  // If the subscriber radio button is checked
  if (rbSpecial.checked)
    theForm.action = "http://www.consumerreports.org/main/commerce/agreement.jsp";
  else if (rbMonthly.checked)
  {
    theForm.action = "https://ec.consumerreports.org/ec/cro/order.htm";
    
    inputPkey.value = "croMonthlySubscriptionPromo";
  }
  else if (rbAnnual.checked)
  {
    theForm.action = "https://ec.consumerreports.org/ec/cro/order.htm";
   inputPkey.value = "croAnnualSubscriptionPromo";
  }
  
  return;
  
}

function Navigate(cat)
{
  var loc = "https://www.consumerreports.org/main/commerce/agreement.jsp?cat=" + cat;
  
  // The query string
  var qryString = window.location.search.substring(1);

  // Assign the input values
  var qs = qryString.split("&");
  for (i = 0; i < qs.length; i++)
  {
    var x = qs[i].split("=");

    if (x.length > 1)
    {
      switch (x[0])
      {
        case "CMP":
          loc += "&CMP=" + x[1];
          break;
        case "HBX_OU":
          loc += "&HBX_OU=" + x[1];
          break;
        case "HBX_PK":
          loc += "&HBX_PK=" + x[1];
          break;
        case "EXTKEY":
          loc += "&EXTKEY=" + x[1];
          break;
        default:
          break;
      }
    }
  }
  
  window.location.href = loc;
}

function join(category)
{

  // Get query string parameters by name
  var cat     = "?cat=" + category;
  var cmp     = "&CMP=";
  var hbxou   = "&HBX_OU=";
  var hbxpk   = "&HBX_PK=";
  var extkey  = "&EXTKEY=";
  var loc = "https://www.consumerreports.org/main/commerce/agreement.jsp";
  
  // The query string
  var qryString = window.location.search.substring(1);
  
  // Assign the input values
  var qs = qryString.split("&");
  for (i = 0; i < qs.length; i++)
  {
    var x = qs[i].split("=");

    if (x.length > 1)
    {
      switch (x[0])
      {
        case "CMP":
          cmp = cmp + x[1];
          break;
        case "HBX_OU":
          hbxou = hbxou + x[1];
          break;
        case "HBX_PK":
          hbxpk = hbxpk + x[1];
          break;
        case "EXTKEY":
          exkey = extkey + x[1];
          break;
        default:
          break;
      }
    }
  }
  
  window.location.href = loc + cat + cmp + hbxou + hbxpk + extkey;  
}

function rewriteLinks()
{ 
  var links = document.getElementsByTagName('a');

  for (var i = 0;i < links.length;i++)
  {

    // The query string
    var qryString = window.location.search.substring(1);
    
    // The temp href
    var loc = links[i].href;
    
    // The individual parameters
    var qs = qryString.split("&");
        
    // Location in the query string
    var pastFirstParam = false;
    
    // Whether already query string
    var alreadyQs = loc.indexOf('?') != -1;
    
    // Go through query string
    for (j = 0; j < qs.length; j++)
    {
      // Get name and value
      var x = qs[j].split("=");
            
      if (x.length > 1)
      {
        // Add a ? for first param
        if(pastFirstParam == false && !alreadyQs)
        {
          
          loc += "?" + x[0] + "=" + x[1];
          pastFirstParam = true;
        }
        // Add a & for subsequent
        else
        {
          loc += "&" + x[0] + "=" + x[1];
        }
      }
    }
            
    links[i].href = loc;
  }
}


function ld(){
		var links = document.getElementsByTagName('a');
		var t = isIE();
		for (var i = 0;i < links.length;i++){
			if (!t){
				links[i].addEventListener('click',k,true);
				links[i].addEventListener('click',n,true);
			}
			else{
				links[i].attachEvent('onclick',k);
				links[i].attachEvent('onclick',n);
			}
		}
	}

	function n(e){
		var targ;

		if (e.target) targ = e.target;
		else if (e.srcElement) targ = e.srcElement;

		var j = 0;
		while ((targ.nodeName != 'A') && (j < 5)){
			targ = targ.parentNode;
			j++;
		}
		var loc = targ.toString();

		if (loc.indexOf('EXTKEY') != -1){
			// The query string
		  	var qryString = window.location.search.substring(1);
			loc = loc.substring(0,loc.indexOf('?'));
		  	// Assign the input values
		  	var qs = qryString.split("&");
		  	var q = false;
		  	for (i = 0; i < qs.length; i++){
		  	  var x = qs[i].split("=");
		  	  if (x.length > 1){
		  	  if(q == false){
		  	  	loc += "?";
		  	  	q = true;
		  	  }
		  	  else{
		  	  	loc += "&";
		  	  }
		      	switch (x[0]){
					case "CMP":
					  loc += "CMP=" + x[1];
					  break;
					case "HBX_OU":
					  loc += "HBX_OU=" + x[1];
					  break;
					case "HBX_PK":
					  loc += "HBX_PK=" + x[1];
					  break;
					case "EXTKEY":
					  loc += "EXTKEY=" + x[1];
					  break;
					default:
					  break;
		    	}
		      }
		  	}
		}

		window.location.href = loc;
	}

	function gL(trgt, cat){
		var loc = trgt.toString();
		alert(loc);
		if (loc.indexOf('?') != -1 ){
			loc = loc += '&cat=' + cat;
		}
		else {
			loc = loc += '?cat=' + cat;
		}
		window.location.href = loc;
		return false;
	}

	function k(e){
		if (isIE()) {
			e.returnValue = false;
			e.cancelBubble = true;
		}
		else {
			e.preventDefault();
		}
		return false;
	}

	function isIE(){
		if (typeof(window.event ) == 'object') {
			return true;
		}
		else {
			return false;
		}
	}