var numNewsletters = 11;
var newsletterIDs = new Array();
newsletterIDs[0] = new newsletter('whatsnew','What\'s New',0);
newsletterIDs[1] = new newsletter('crautos','Cars',0);
newsletterIDs[2] = new newsletter('cralert','Safety Alert',0);
newsletterIDs[3] = new newsletter('greenerc','Greener Choices',0);
newsletterIDs[4] = new newsletter('hnbbd','Best Buy Drugs',0);
newsletterIDs[5] = new newsletter('crmghanlp','Health Alert',0);
newsletterIDs[6] = new newsletter('hheart','Heart',0);
newsletterIDs[7] = new newsletter('hchildteen','Child and Teen',0);
newsletterIDs[8] = new newsletter('hdiabetes','Diabetes',0);
newsletterIDs[9] = new newsletter('hwomen','Women',0);
newsletterIDs[10] = new newsletter('hafter60','Healthy After 60',0);

var passedIdListSubs = '';

function newsletter(id,description,isRegistered) { 
    this.id = id; 
    this.description = description;  
	this.registered = isRegistered;
}  // newsletter

function newsletterLoginPageOnload(){
   // read data from vendor in the URL: first and last name, email address, list of newsletter IDs, DB request status
   // e.g.: ?firstName=Alan&lastName=Spar&email=sparal%40consumer.org&status=1&subsribedIds=whatsnew,crautos
   // display first and last name for user
   // put email address in hidden field

   var parmString = unescape(document.location.search);
   var passedStatus = null;


// NO PARAMETERS ********************************   
   if(parmString == ''){ return true; } // allow user to continue with fresh process if no parameters passed

   passedIdListSubs = passedEmail= '';
   var parmArray = parmString.split("\&");

 //LOOP THROUGH PARM ARRAY, ID PARMS & SPLIT-OUT
 //croNewsletterList=whatsnew::crautos&croNewsEmail=me@mydomain.com
   for(index=0;index<parmArray.length;index++){
	  var nvArray = parmArray[index].split("=");  
	  if(nvArray[0].indexOf('croNewsletterList') != -1){ passedIdListSubs = nvArray[1]; }
  	  if(nvArray[0].indexOf('croNewsEmail') != -1){ passedEmail = nvArray[1]; }  		  
	} // end for 
   
// NO STATUS, BUT PASSED EMAIL PARAMETER (from form ad) ********************************   
   if(passedEmail != ''){ // if we're coming from a form ad (email address filled-out)        
      passedEmailAddress = parmArray[0].substring(parmArray[0].indexOf("=")+1, parmArray[0].length);

   document.getElementById('email').value = passedEmail;
   document.getElementById('emailconfirm').value = passedEmail;   
   } // end if we're coming from a form ad (email address filled-out)

   
} // end newsletterLoginPageOnload




//**************** FORM ERROR CHECKING *************************

function loginPageErrorCheckNewUser(){
   var errorCount = 0;
   var fName = document.getElementById('fname').value;
   var lName = document.getElementById('lname').value;
   var email = document.getElementById('email').value;
   var emailConfirm = document.getElementById('emailconfirm').value;         
     
	 
  //make sure all error messages are reset	 
   document.getElementById('fNameError').innerHTML = ''; document.getElementById('fNameError').style.display='none';
   document.getElementById('lNameError').innerHTML = ''; document.getElementById('lNameError').style.display='none';
   document.getElementById('emailError').innerHTML = ''; document.getElementById('emailError').style.display='none';
   document.getElementById('emailconfirmError').innerHTML = ''; document.getElementById('emailconfirmError').style.display='none';
   document.getElementById('emailError').innerHTML = ''; document.getElementById('emailError').style.display='none';
   document.getElementById('emailconfirmError').innerHTML = ''; document.getElementById('emailconfirmError').style.display='none';
   
          
  //check that all required fields are filled-out 
  //check that all required fields are filled-out 
   if(fName == '') {        document.getElementById('fNameError').innerHTML = 'Please enter a first name'; errorCount++; document.getElementById('fNameError').style.display='block';}
   if(lName == '') {        document.getElementById('lNameError').innerHTML = 'Please enter a last name'; errorCount++; document.getElementById('lNameError').style.display='block';}
   if(email == '') {        document.getElementById('emailError').innerHTML = 'Please enter an e-mail address'; errorCount++; document.getElementById('emailError').style.display='block';}
   if(emailConfirm == '') { document.getElementById('emailconfirmError').innerHTML = 'Please confirm your e-mail address'; errorCount++; document.getElementById('emailconfirmError').style.display='block';}         
  
  //check that email address matches confirmation 
   if(email != emailConfirm){ 
      document.getElementById('emailError').innerHTML = 'E-mail addresses must match';document.getElementById('emailError').style.display='block';
	  document.getElementById('emailconfirmError').innerHTML = 'E-mail addresses must match'; document.getElementById('emailconfirmError').style.display='block';
	  errorCount++;
   }
      
   if(email.indexOf("\@") == -1){ 
      document.getElementById('emailError').innerHTML = 'Please enter a valid e-mail address';document.getElementById('emailError').style.display='block';
	  document.getElementById('emailconfirmError').innerHTML = 'Please enter an e-mail address'; document.getElementById('emailconfirmError').style.display='block';
	  errorCount++;
   } 
   
   //passedIdListSubs
   passedIdListSubs = unescape(passedIdListSubs);
   passedIdListSubs = passedIdListSubs.replace(/::/g, ",");
  //submit form if no errors 
   if(errorCount == 0){	 
	 var parmString = '?' + 'email=' + escape(email) +
	                        '&firstname=' + escape(fName) +
							'&lastName=' + escape(lName) +
							'&subs=' + escape(passedIdListSubs) +
							'&redirect=' + encodeURIComponent('http://www.consumerreports.org/cro/customer-service/email-service/e-mail-newsletters/newslettermgt.htm');
							
	 document.location.href = 'http://consumerreports.p.delivery.net/m/p/csu/sub/process.asp' + parmString;

   } // end if no errors
      
   return;
} // end loginPageErrorCheckNewUser




function loginPageErrorCheckExistingUser(){
   var errorCount = 0;
   var email = document.getElementById('existingUserEmail').value;           
   
  //check that all required fields are filled-out 
   if(email == '') { document.getElementById('existingUserEmailError').innerHTML = 'Please enter an e-mail address'; errorCount++; }
          
   else if(email.indexOf("\@") == -1){ 
      document.getElementById('existingUserEmailError').innerHTML = 'Please enter a valid e-mail address';
	  errorCount++;
   }   
   
  //submit form if no errors 
   if(errorCount == 0){
   	 var parmString = '?' + 'email=' + escape(email) +
	                        '&firstname=' +
							'&lastName=' +
							'&redirect=' + encodeURIComponent('http://www.consumerreports.org/cro/customer-service/email-service/e-mail-newsletters/newslettermgt.htm');
	  
	document.location.href = 'http://consumerreports.p.delivery.net/m/p/csu/sub/process.asp' + parmString;
   
   } // end if no errors
      
   return;
} // end loginPageErrorCheckExistingUser
//**************** END FORM ERROR CHECKING *************************




function newsletterMgtPageOnload(){
   // read data from vendor in the URL: first and last name, email address, list of newsletter IDs, DB request status
   // e.g.: ?firstName=Alan&lastName=Spar&email=sparal%40consumer.org&status=1&subsribedIds=whatsnew,crautos
   // display first and last name for user 
   // put email address in hidden field

   var parmString = unescape(document.location.search);
   var passedStatus = passedEmail = passedFirstName = passedLastName = passedIdListSubs = passedIdListUnSubs = '';
   var parmArray = parmString.split("\&");

 //LOOP THROUGH PARM ARRAY, ID PARMS & SPLIT-OUT
   for(index=0;index<parmArray.length;index++){
	  var nvArray = parmArray[index].split("=");  
	  if(nvArray[0].indexOf('status') != -1){ passedStatus = nvArray[1]; }
  	  if(nvArray[0].indexOf('email') != -1){ passedEmail = nvArray[1]; }
	  if(nvArray[0].indexOf('firstname') != -1){ passedFirstName = nvArray[1]; }
	  if(nvArray[0].indexOf('lastname') != -1){ passedLastName = nvArray[1]; }
  	  if((nvArray[0].indexOf('subs') != -1) && (nvArray[0].indexOf('unsubs') == -1)){ passedIdListSubs = nvArray[1]; }
  	  if(nvArray[0].indexOf('unsubs') != -1){ passedIdListUnSubs = nvArray[1]; }	  		  
	} // end for 

	if((passedStatus == 1) && (passedFirstName == '') && (passedLastName == '')){
	   document.location.href = "/cro/customer-service/email-service/e-mail-newsletters/index.htm?croNewsEmail=" + passedEmail;
	   alert('Please complete the new user form on the left, with your first name, last name and email address.');
	}
	
   //ucUpper fn & ln
   engFirstNameFirstLetter = passedFirstName.charAt(0); engFirstName = engFirstNameFirstLetter.toUpperCase() + passedFirstName.substring(1);
   engLastNameFirstLetter = passedLastName.charAt(0); engLastName = engLastNameFirstLetter.toUpperCase() + passedLastName.substring(1);   
   
  //if bad lookup 
   if(passedStatus < 1){ 
      alert("I'm having trouble accessing my database. Please try again later."); 
   }
   else {
      document.getElementById('email').value = passedEmail;
      document.getElementById('status').value = passedStatus;   
   

      if(passedIdListSubs != ''){ // split & check-off ID list if passed
        //split out individual newsletter IDs from passed ID sub-parameter list
         var idListArray = passedIdListSubs.split(",");
   
        //check the checkboxes for existing newsletters based on parms 
         for(index=0; index < idListArray.length; index++){
	        document.getElementById(idListArray[index]).checked = true;
         } // end for
	  } // end split & check-off ID list if passed
   } // end else (ok status)
   
   document.getElementById('userEnglishName').innerHTML = '<p class="welcome" style="line-height:30px;">Welcome, ' + engFirstName + ' ' + engLastName + '</p>';
   
} // end newsletterMgtPageOnload



function newsletterMgtPageSubmit(){  
   //MAKE LIST OF CHECKED NEWSLETTER INDICATORS
      var newsletterCheckList = newsletterUnCheckList = '';
      for(index=0;index<numNewsletters;index++){ // loop through newsletter array and compare to passed IDs 
         if(document.getElementById(newsletterIDs[index].id).checked){ // add to list if checked
		    newsletterCheckList += newsletterIDs[index].id + ',';  
         }
		 else if (passedIdListSubs.indexOf(newsletterIDs[index].id) != -1) { 
		    newsletterUnCheckList += newsletterIDs[index].id + ',';
	     }
      } // end for  

   	 var parmString = '?' + 'email=' + escape(passedEmail) +
							'&subs=' + newsletterCheckList + 
							'&unsubs=' + newsletterUnCheckList +
							'&redirect=' + encodeURIComponent('http://www.consumerreports.org/cro/customer-service/email-service/e-mail-newsletters/postmgt.htm');
							
	 document.location.href = 'http://consumerreports.p.delivery.net/m/p/csu/sub/process.asp' + parmString;
   
} // end newsletterMgtPageSubmit

function postMgtPageOnload(){
   var parmString = unescape(document.location.search);
   var passedStatus = passedEmail = passedFirstName = passedLastName = passedIdListSubs = passedIdListUnSubs = '';
   var parmArray = parmString.split("\&");
   
  //split out main parameters	 
   var parmArray = parmString.split("\&");
 //LOOP THROUGH PARM ARRAY, ID PARMS & SPLIT-OUT
   for(index=0;index<parmArray.length;index++){
	  var nvArray = parmArray[index].split("=");  
	  if(nvArray[0].indexOf('status') != -1){ passedStatus = nvArray[1]; }
  	  if(nvArray[0].indexOf('email') != -1){ passedEmail = nvArray[1]; }
	  if(nvArray[0].indexOf('firstname') != -1){ passedFirstName = nvArray[1]; }
	  if(nvArray[0].indexOf('lastname') != -1){ passedLastName = nvArray[1]; }
  	  if((nvArray[0].indexOf('subs') != -1) && (nvArray[0].indexOf('unsubs') == -1)){ passedIdListSubs = nvArray[1]; }
  	  if(nvArray[0].indexOf('unsubs') != -1){ passedIdListUnSubs = nvArray[1]; }	  		  
	} // end for 
      
   if(passedIdListSubs != ''){  //split out individual newsletter IDs from passed ID sub-parameter list
  //indicate which IDs have been registered  
 //  document.getElementById('registeredNewsletterList').innerHTML = '<br />';   
   var atLeastOneUnselected = 0;
   var numNewslettersSelected = 0;
   for(index=0;index<numNewsletters;index++){ // loop through newsletter array and compare to passed IDs 
      if(passedIdListSubs.indexOf(newsletterIDs[index].id) != -1){
	     newsletterIDs[index].registered = 1;
	     document.getElementById('registeredNewsletterList').innerHTML +=  "<span class='newsletterList'>&#149; " + newsletterIDs[index].description + "</span>";
		 idToHide = 'container-' + newsletterIDs[index].id;
		 document.getElementById(idToHide).style.display =  'none';
		 document.getElementById(newsletterIDs[index].id).checked = true;
		 numNewslettersSelected++;		 
	  }    
	  else { atLeastOneUnselected = 1; }	  
   } // end for
   document.getElementById('registeredNewsletterList').innerHTML += '<br />'; 
      
      if(numNewsletters == numNewslettersSelected) { // if user has selected ALL newsletters, display appropriate message
   	     document.getElementById('instruct1a').style.display = 'none';
	     document.getElementById('additionalNewsletters1').style.display = 'none';
	     document.getElementById('additionalNewsletters2').style.display = 'none';	 
	     document.getElementById('additionalNewsletters3').style.display = 'none';			 
   	     document.getElementById('instruct2').style.display = 'block';	  
		 return;
	  }	  
   
   	  if(!atLeastOneUnselected){ // if user has selected at least one newsletter, display appropriate message
	     document.getElementById('additionalNewsletters1').style.display = 'none';
	     document.getElementById('additionalNewsletters2').style.display = 'none';	 
	     document.getElementById('additionalNewsletters3').style.display = 'none';		 
	  }

	  
    } // end if we're passed a newsletter ID list
   
   else { // if NOT passed an ID list (user opting out), display appropriate message  
   	  document.getElementById('instruct1a').style.display = 'none';
	  document.getElementById('additionalNewsletters1').style.display = 'none';	  
	  document.getElementById('instruct1b').style.display = 'block';
   } // end if NOT passed an ID list
   
} // end postMgtPageOnload


function submitPostMgtForm(){


   var parmString = '?status=1&email=sparal%40consumer.org&firstname=Alan&lastname=Spar&subs=';
   
   //MAKE LIST OF CHECKED NEWSLETTER INDICATORS
      var newsletterCheckList = '';
      for(index=0;index<numNewsletters;index++){ // loop through newsletter array and compare to passed IDs 
	  
	     // add to list if checked
         if((document.getElementById(newsletterIDs[index].id).checked) && 
		    (document.getElementById('container-' + newsletterIDs[index].id).style.display != 'none')){
		    newsletterCheckList += newsletterIDs[index].id + ',';  
         }
      } // end for  

   	 var parmString = '?' + 'email=' + escape(passedEmail) +
							'&subs=' + newsletterCheckList + 
							'&unsubs=' +
							'&redirect=' + encodeURIComponent('http://www.consumerreports.org/cro/customer-service/email-service/e-mail-newsletters/thankyou.htm');

	 document.location.href = 'http://consumerreports.p.delivery.net/m/p/csu/sub/process.asp' + parmString;	 

} // end submitPostMgtForm

function adSubmitAutoFill(){

   var parmString = unescape(document.location.search); //?croNewsletterList=whatsnew::crautos&croNewsEmail=this@that.com
   
   var passedNewsletterCodes = parmString.substring(1,parmString.indexOf('&'));
   var passedEmailAddress = parmString.substring(parmString.indexOf('&')+1,parmString.length);
   
   passedNewsletterCodes = passedNewsletterCodes.substring(passedNewsletterCodes.indexOf('=')+1,passedNewsletterCodes.length);
   passedEmailAddress = passedEmailAddress.substring(passedEmailAddress.indexOf('=')+1,passedEmailAddress.length);
   
   var passedNewsletterCodeArray = new Array();
   
   var count=0;
   while(passedNewsletterCodes.length > 1){  
	  if(passedNewsletterCodes.indexOf('::') != -1){
	     passedNewsletterCodeArray[count] = passedNewsletterCodes.substring(0,passedNewsletterCodes.indexOf('::'));
   	     passedNewsletterCodes = passedNewsletterCodes.substring(passedNewsletterCodes.indexOf('::')+2, passedNewsletterCodes.length);
      }
	  else{ passedNewsletterCodeArray[count] = passedNewsletterCodes; passedNewsletterCodes = ''; }
      count++;    
   } // end while still delimiter
   
   document.forms.email_subscribe.email.value = passedEmailAddress;
   document.forms.email_subscribe.emailconfirm.value = passedEmailAddress;   
   
   for(var index=0;index<document.forms.email_subscribe.list.length;index++){
      for(var inner=0;inner<passedNewsletterCodeArray.length;inner++){
         if(document.forms.email_subscribe.list[index].value == passedNewsletterCodeArray[inner]){
	        document.forms.email_subscribe.list[index].checked = true;
         } //end if
	  } // end inner
   } // end index
   
} // end adSubmitAutoFill

//onload = adSubmitAutoFill;
