/* LOAD */

function ms_initNewsletter() {
    if(ms_isLoggedIn() == true) {
       if(typeof(msStorage.confirmNewsletter) == 'undefined') { msStorage.confirmNewsletter = []; }
        ms_getNewsletters('ms_uiGetNewsletters');
		/*
        $('cnnNewsletterHeadlineLoggedIn').style.display = 'block';
        $('cnnNewsletterHeadlineLoggedOut').style.display = 'none';
        $('cnnNewsletterViewLoggedIn').style.display = 'block';
		*/
    } else {
        /*$('cnnNewsletterHeadlineLoggedIn').style.display = 'none';
        $('cnnNewsletterHeadlineLoggedOut').style.display = 'block';
        $('cnnNewsletterViewLoggedIn').style.display = 'none';
        $('cnnConnectNewsletterLoading').hide();
        $('cnnConnectNewsletterContainer').show();*/
    }
}

/* FORM */
function ms_formAddNewsletter(formId) {
    var email = $(formId).email.value;
    var newsletter = $(formId).newsletter.value;
    ms_addNewsletter(email, newsletter, 'ms_uiAddNewsletter');
}

function ms_formUpdateNewsletter(formObj, status){
	var emails = [];
	var emailsConfirmed = [];
	var emailsUnconfirmed = [];
	var newsAction = '';
	(status == 'sub') ? newsAction = 'subscribe' : newsAction = 'unsubscribe'; 	
	//like above
	//formObj.emails = string then push as lone object into actionArray
	//formObj.emails is its own array, make actionArray the array
	//formObj.emails is undefined, push primary from storage in
	if(typeof(formObj.email) == 'string'){
		//one item checked
		//console.log('form object is a string');
		//console.log(formObj.email);
		emails.push(formObj.email);
	} else if (typeof(formObj.email) == 'object'){
		//an array is returned with a list of selected emails
		//console.log('form object is an object');
		//console.log(formObj.email);
		emails = formObj.email;
	} else {
		//pull from storage - nothing specific so use primary
		//console.log('form object is something else');
		//console.log(typeof(formObj.email));
		for(i=0; i<msStorage.emails.length; i++){
			if(msStorage.emails[i].isPrimary == 'true'){
			emails.push(msStorage.emails[i].email);
			}
		}
	}
	//double loop, go through storage emails and check against submitted emails
	//if there is a match, test if it is confirmed
	//if it is confirmed we push to a confirmed array
	//if it is unconfirmed we push to an unconfirmed array
	//act on the confirmed
	//alert unconfirmed
	//console.log('reached for loop, emails');
	//console.log(emails);
	for(i=0;i<msStorage.emails.length;i++){
		for(j=0;j<emails.length;j++){
		//console.log('comparing: ' + emails[j] + ' and ' + msStorage.emails[i].email );
			if(emails[j] == msStorage.emails[i].email && msStorage.emails[i].status == 'confirmed'){
				emailsConfirmed.push(emails[j]);
				//console.log(emails[j]);
			} else if (emails[j] == msStorage.emails[i].email && msStorage.emails[i].status == 'unconfirmed'){
				emailsUnconfirmed.push(emails[j]);
				//console.log(emails[j]);
			}
		}
	}
	
	//console.log(emailsConfirmed);
	//console.log(emailsUnconfirmed);
	
	for(i=0; i<emailsConfirmed.length; i++){
		if(status == 'sub'){
			ms_addNewsletter(emailsConfirmed[i], formObj.newsletter, 'ms_uiAddNewsletter');
		} else {
			ms_removeNewsletter(emailsConfirmed[i], formObj.newsletter, 'ms_uiRemoveNewsletter')
		}
	};
	/*
	
	How are we handling the error message?
	
	for(i=0; i<emailsUnconfirmed.length; i++){
		var errorMsg = 'We could not ' + newsAction + ' the following emails because they are not confirmed: ';
		errorMsg += emailsUnconfirmed + ' / ';
	};
	*/
	//better error msg
	//console.log(errorMsg);
	
}
/* API */

function ms_getNewsletters(view) {
    var queueItem = new ms_QueueItem(ms_baseStandard+'newsletters.api', 'get');
    queueItem.addParam('action', 'getActiveAndPendingNewsletters');
    queueItem.addParam('callback', view);
    var queueItemObj = queueItem.getQueueItem();
    msQueueManager.addRequest(queueItemObj);	
}

function ms_addNewsletter(email, newsletter, view) {
    var queueItem = new ms_QueueItem(ms_baseStandard+'newsletters.api', 'post');
    queueItem.addParam('action', 'addNewsletter');
    queueItem.addParam('email', email);
    queueItem.addParam('newsletter', newsletter);
    queueItem.addParam('callback', view);
    var queueItemObj = queueItem.getQueueItem();
    msQueueManager.addRequest(queueItemObj);
}

function ms_removeNewsletter(email, newsletter, view) {
    var queueItem = new ms_QueueItem(ms_baseStandard+'newsletters.api', 'post');
    queueItem.addParam('action', 'removeNewsletter');
    queueItem.addParam('email', email);
    queueItem.addParam('newsletter', newsletter);
    queueItem.addParam('callback', view);
    var queueItemObj = queueItem.getQueueItem();
    msQueueManager.addRequest(queueItemObj);
}
/* RESPONSE */
function ms_doNothing(jsonResponse) {
    msQueueManager.requestReceived();
}

function ms_uiGetNewsletters(jsonResponse) {
    msQueueManager.requestReceived(); // lets iJax know it can process the next request
    var error = (typeof jsonResponse.errors == 'undefined') ? false : true;
    if(error == false) {
        // update ui for successful
        drawNewsletters(jsonResponse);
        //$('cnnConnectNewsletterLoading').hide();
        //$('cnnConnectNewsletterContainer').show();

    } else {
        // update ui for errors
        //$('cnnConnectNewsletterLoadingContent').innerHTML = 'The service is temporarily unavailable, please <a href="javascript:void(0)" onclick="window.msReload();">try again</a> soon.<br/>Thank you for your patience!';
    }
}

var cnn_newsletterChange = '';

function ms_uiAddNewsletter(jsonResponse) {
    msQueueManager.requestReceived(); // lets iJax know it can process the next request
    var error = (typeof jsonResponse.errors == 'undefined') ? false : true;
    //console.log('inside uiAddNL');
	if(error == false) {
		//console.log('inside uiAddNL - error false');
		//for overlay
		if(cnn_newsletterChange.indexOf('main') < 0){
			$(cnn_newsletterChange).down('.news_subscribe2').removeClassName('displayon').addClassName('displayoff');
			$(cnn_newsletterChange).down('.news_unsubscribe2').removeClassName('displayoff').addClassName('displayon');
		} else {
			$(cnn_newsletterChange).down('.news_subscribe').removeClassName('displayon').addClassName('displayoff');
			$(cnn_newsletterChange).down('.news_unsubscribe2').removeClassName('displayoff').addClassName('displayon');			
		}
		newsletterReload++;
    } else {
		//console.log('inside uiAddNL - error true');
        // update ui for errors
    }
}

function ms_uiRemoveNewsletter(jsonResponse) {
	//console.log('inside uiremove');
    msQueueManager.requestReceived(); // lets iJax know it can process the next request
    var error = (typeof jsonResponse.errors == 'undefined') ? false : true;
    if(error == false) {
		//console.log('inside ui remove false');
		//console.log(cnn_newsletterChange);
		// update ui for successful
		if(cnn_newsletterChange.indexOf('main') < 0){
			$(cnn_newsletterChange).down('.news_subscribe2').removeClassName('displayoff').addClassName('displayon');
			$(cnn_newsletterChange).down('.news_unsubscribe2').removeClassName('displayon').addClassName('displayoff');
		} else {
			$(cnn_newsletterChange).down('.news_subscribe').removeClassName('displayoff').addClassName('displayon');
			$(cnn_newsletterChange).down('.news_unsubscribe').removeClassName('displayon').addClassName('displayoff');
		}		
		newsletterReload++;
    } else {
        // update ui for errors
		//console.log('inside uiRemoveNL - error true');
    }
}

/* GUI */
var noneSubscribed = false;
function drawNewsletters(jsonObj) {

    updatedList = updateNewsletters(jsonObj);
    msStorage.newsletters = updatedList;    
    var newsletters = msStorage.newsletters; // used to improve performance
    
    for(key in newsletters) { // sets  sub/unsub btn states for overlay
        if(newsletters[key].status=='sub') {
			jQuery("#"+key).find(".news_unsubscribe2").addClass('displayon').show();
			jQuery("#"+key).find(".news_subscribe2").removeClass('displayon').hide();
        } else if (newsletters[key].status=='unsub') {
			jQuery("#"+key).find(".news_unsubscribe2").removeClass('displayon').hide();
			jQuery("#"+key).find(".news_subscribe2").addClass('displayon').show();
		}
	}

    /*for(key in newsletters) { // sets  sub/unsub btn states for main page featured newsletters module
        if(newsletters[key].status=='sub') {
			jQuery("#"+key+"_main").find(".news_unsubscribe").toggleClass('displayon');
			jQuery("#"+key+"_main").find(".news_subscribe").hide();
        } else if (newsletters[key].status=='unsub') {
			jQuery("#"+key+"_main").find(".news_unsubscribe").hide();
			jQuery("#"+key+"_main").find(".news_subscribe").toggleClass('displayon');
		}
	}*/
	
	var newsletterhtml = [];
	var count = 100;
	var subnumber = 0;
	var newsletterList = getNewsletterList();
    for(key in newsletters) { // sets  sub/unsub btn states for main page featured newsletters module
		if (subnumber >= 6) { break; }
        if(newsletters[key].status=='sub') {
			newsletterhtml += '<div class="a_newsletter"><h3>'+newsletters[key].viewName+'</h3><span id="'+key+'_main"><a href="#" class="news_unsubscribe displayon" onclick="ms_formUpdateNewsletter($(\'cnnConnectUpdateNewsletterForm'+count+'\').serialize(true), \'unsub\'); return false;"></a><a href="#" class="news_subscribe displayoff" onclick="ms_formUpdateNewsletter($(\'cnnConnectUpdateNewsletterForm'+count+'\').serialize(true), \'sub\'); return false;"></a></span><form id="cnnConnectUpdateNewsletterForm'+count+'" onsubmit="return false;"><input type="hidden" value="'+key+'" name="newsletter"/>';
			if(newsletters[key].email.sub.email){
				newsletterhtml += '<input type="hidden" name="email" value="' + newsletters[key].email.sub.email + '" />';
			}
			newsletterhtml += '</form></div>';
			count++;
			subnumber++;
        }
	}
	newsletterhtml += '<div class="newsletter_viewall"><a href="#" onclick="fillNewsletterEmails();showOverlay(\'profile_newsletter_overlay\');return false"></a></div>';
	if (subnumber > 0) {
		jQuery("#newsletter_content").html(newsletterhtml); 
	} else { 
		jQuery("#featured_letter").hide();
		jQuery("#newsletter_content .news_subscribe").hide();
		jQuery("#newsletter_content .news_example").show();
		jQuery("#featured_letter_none").show();
		noneSubscribed = true;
	}
		
	jQuery(".news_unsubscribe").click(function () {  // newsletter unsub button on main
		/*jQuery(this).removeClass('displayon').addClass('displayoff').hide();
		jQuery(this).next().addClass('displayon').show().removeClass('displayoff');	
		$parent = jQuery(this).parent().attr('id');
		$parent = $parent.split('_main').join('');
		jQuery("#"+$parent+' .news_unsubscribe2').removeClass('displayon').addClass('displayoff').hide(); // sets duplicate on overlay
		jQuery("#"+$parent+' .news_subscribe2').addClass('displayon').show().removeClass('displayoff');*/
		cnn_newsletterChange = jQuery(this).parent().attr('id');
		//console.log(cnn_newsletterChange);
	});	
	
	jQuery(".news_subscribe").click(function () { // newsletter subscribe button on main
		/*jQuery(this).removeClass('displayon').addClass('displayoff').hide();
		jQuery(this).prev().addClass('displayon').removeClass('displayoff').show();
		$parent = jQuery(this).parent().attr('id');
		$parent = $parent.split('_main').join('');
		jQuery("#"+$parent+' .news_subscribe2').removeClass('displayon').addClass('displayoff').hide(); // sets duplicate on overlay 
		jQuery("#"+$parent+' .news_unsubscribe2').addClass('displayon').show().removeClass('displayoff');*/
		cnn_newsletterChange = jQuery(this).parent().attr('id');
		//console.log(cnn_newsletterChange);
	});	
}

function updateNewsletters(newsletters) {
    /*  get newsletter list contains the master list for the newsletters.
        the response from the server only sends the pending and active,
        here we match it against the master list to update it to reflect
        what the user has subscribed to */
    var masterList = getNewsletterList();
    var active = newsletters.activeNewsletters;
    for(key in active) {
        nlName = active[key].name
        if(typeof(masterList[nlName]) != 'undefined') {
            masterList[nlName].email.sub = active[key];
            masterList[nlName].status = 'sub';
        }
    }

    var pending = newsletters.pendingNewsletters;
    for(key in pending) {
        nlName = pending[key].name
        if(typeof(masterList[nlName]) != 'undefined') {
            masterList[nlName].email.pending = active[key];
            masterList[nlName].status = 'pending';
        }
    }

    return masterList;

}

var beenFilled = false;
function fillNewsletterEmails() { // setups up user email inputs
	//what a pos - resync master list needed
	var masterList = msStorage.newsletters;
    var emailList = msStorage.emails;
    var newsletter = masterList[name];
    var count = 0;
    var html = '';
    var description = '';
    var status = '';
	if (beenFilled === false) {
		for(var i=0; i<emailList.length; i++) { // add emails to each newletter
			html += '<input type="checkbox" name="email" value="'+emailList[i].email+'"/>'+emailList[i].email+'<br />';
		}
		jQuery(".newsletter_emails").append(html);
		var emailList = msStorage.emails;
		if (emailList.length > 1) {
			jQuery(".cnn_prfnwsox1").show();
		}
	}
	var newsletterList = getNewsletterList();
	for(key in newsletterList) { // selects email subbed status
		if (masterList[key].status == "sub") { 
		//console.log(key);console.log(masterList[key].status);
		var subbedemail = masterList[key].email.sub.email;
		var emailbox = key + "_emails";
		$emailCheck = jQuery("#"+emailbox);
		var len = $emailCheck.children().length;
		for(i=0; i<len; i++) {
			if ($emailCheck.children().eq(i).attr("value") == subbedemail) { 
				$emailCheck.children().eq(i).attr({ checked : "checked"});
			} 
		}
		}
	}
	// jQuery("#featured_newsletters").
	/*var len = jQuery('.newsletter_emails').size();
	for(var i=0; i<len; i++) { // default 1st selected email
		jQuery('.newsletter_emails').eq(i).children().eq(1).attr({ checked : "checked"});
	}*/
	beenFilled = true;

}

function showEditNewsletter(name) {

    var masterList = msStorage.newsletters;
    var emailList = msStorage.emails;
    var newsletter = masterList[name];
    var count = 0;
    var html = '';
    var description = '';
    var status = '';

    if(typeof(msStorage.emails) != 'undefined') {
        html += '<input type="hidden" name="newsletter" value="'+name+'" />';
        for(var i=0; i<emailList.length; i++) {
            if(emailList[i].status == 'unconfirmed') {
                html += '<input disabled="disabled" type="checkbox" /><span class="cnngraytxt"><strong>'+emailList[i].email+'</strong></span> &nbsp;&nbsp;<span class="cnnredtxt">Unconfirmed</span> (<span id="cnnNewsletterResendEmailLink'+count+'"><a href="javascript:void(0);" onclick="sendConfirmEmailNewsletter(\'cnnNewsletterResendEmailLink'+count+'\', \''+emailList[i].email+'\')">resend e-mail</a></span>)<br />';
                count++;
            } else {
                var status = getStatusOfEmail(emailList[i].email, newsletter);
                if(status == 'sub') {
                    html += '<input type="checkbox" checked="checked" name="email" value="'+emailList[i].email+'"/><strong> '+emailList[i].email+'</strong><br />';
                } else {
                    html += '<input type="checkbox" name="email" value="'+emailList[i].email+'"/><strong> '+emailList[i].email+'</strong><br />';
                }
            }
        }
        if(newsletter.thumbnail != '') {
            description = '<img src="'+newsletter.thumbnail+'" width="160" height="90" alt="" align="left" alt="'+newsletter.viewName+'" />';
        } else {
            description = '<img width="160" height="90" align="left" alt="" src="/.element/img/2.0/sect/connect/160x90_placeholder.gif"/>';
        }
        $('cnnConnectUpdateNewsletterDescription').innerHTML = description + newsletter.description;
		$('cnnConnectSubUn').src = '/.element/img/2.0/sect/connect/save.gif';
        $('cnnConnectUpdateNewsletterName').innerHTML = newsletter.viewName;
        $('cnnConnectUpdateNewsletterInputs').innerHTML = html;
        $('cnnConnectNewsletter_RS').style.display = 'block';
    }
}
function showEditNewsletter2(name) {
    var masterList = msStorage.newsletters;
    var emailList = msStorage.emails;
    var newsletter = masterList[name];
    var count = 0;
    var html = '';
    var description = '';
    var status = '';

    if(typeof(msStorage.emails) != 'undefined') {
        html += '<input type="hidden" name="newsletter" value="'+name+'" />';
        for(var i=0; i<emailList.length; i++) {
            if(emailList[i].status == 'unconfirmed') {
                html += '<input disabled="disabled" type="checkbox" /><span class="cnngraytxt"><strong>'+emailList[i].email+'</strong></span> &nbsp;&nbsp;<span class="cnnredtxt">Unconfirmed</span> (<span id="cnnNewsletterResendEmailLink'+count+'"><a href="javascript:void(0);" onclick="sendConfirmEmailNewsletter(\'cnnNewsletterResendEmailLink'+count+'\', \''+emailList[i].email+'\')">resend e-mail</a></span>)<br />';
                count++;
            } else {
                var status = getStatusOfEmail(emailList[i].email, newsletter);
                if(status == 'sub') {
                    html += '<input type="checkbox" checked="checked" name="email" value="'+emailList[i].email+'"/><strong> '+emailList[i].email+'</strong><br />';
                } else {
                    html += '<input type="checkbox" name="email" value="'+emailList[i].email+'"/><strong> '+emailList[i].email+'</strong><br />';
                }
            }
        }
        if(newsletter.thumbnail != '') {
            description = '<img src="'+newsletter.thumbnail+'" width="160" height="90" alt="" align="left" alt="'+newsletter.viewName+'" />';
        } else {
            description = '<img width="160" height="90" align="left" alt="" src="/.element/img/2.0/sect/connect/160x90_placeholder.gif"/>';
        }
        //$('cnnConnectUpdateNewsletterDescription').innerHTML = description + newsletter.description;
		//$('cnnConnectSubUn').src = '/.element/img/2.0/sect/connect/save.gif';
       // $('cnnConnectUpdateNewsletterName').innerHTML = newsletter.viewName;
        //$('cnnConnectUpdateNewsletterInputs').innerHTML = html;
       // $('cnnConnectNewsletter_RS').style.display = 'block';
    }
}

function getStatusOfEmail(emailAddress, newsletter) { 

    // check if it is in the subscribed emails
    for(var i=0; i<newsletter.email.sub.length; i++) {
        if(emailAddress == newsletter.email.sub[i].email) { return 'sub'; }
    }
    // check if it is in the pending emails
    for(var i=0; i<newsletter.email.pending.length; i++) {
        if(emailAddress == newsletter.email.sub[i].email) { return 'pending'; }
    }
    return 'unsub';
}

function getNewsletterList() {

    var json = {
        "cnn-amanpour":{viewName:"Amanpour", description:"null", thumbnail:"null", status:"unsub", email: {sub:[], pending:[]}},
        "cnn-htmlquicknews":{viewName:"American Morning amFIX (HTML)", description:"Start your day with a rundown of the top news stories from CNN.com.", thumbnail:"/.element/img/2.0/content/email/connect/amfix_120x90.jpg", status:"unsub", email: {sub:[], pending:[]}},
        "cnn-textquicknews":{viewName:"American Morning amFIX (TEXT)", description:"Start your day with a rundown of the top news stories from CNN.com. ", thumbnail:"/.element/img/2.0/content/email/connect/amfix_text.gif", status:"unsub", email: {sub:[], pending:[]}},
        "cnn-bia":{viewName:"Black in America", description:"Get the latest news, exclusive behind-the-scenes content and programming alerts as CNN covers the innovative and unexpected ways Americans are transforming the black experience.", thumbnail:"/.element/img/2.0/content/email/connect/160x90_bia.jpg", status:"unsub", email: {sub:[], pending:[]}},
        "cnn-asia":{viewName:"CNN Asia editorial note", description:"null", thumbnail:"/.element/img/2.0/content/email/connect/160x90_bia.jpg", status:"unsub", email: {sub:[], pending:[]}},
        "cnn-europe":{viewName:"CNN Europe editorial note", description:"null", thumbnail:"/.element/img/2.0/content/email/connect/160x90_bia.jpg", status:"unsub", email: {sub:[], pending:[]}},
        "cnn-heroes":{viewName:"CNN Heroes", description:"Get monthly updates, news and exclusive behind-the-scenes coverage as we search the globe for the 2009 CNN Hero of the Year.", thumbnail:"/.element/img/2.0/content/email/connect/160x90_cnnheroes.jpg", status:"unsub", email: {sub:[], pending:[]}},
        "cnn-hotel":{viewName:"CNN Partner Hotel specials", description:"null", thumbnail:"/.element/img/2.0/content/email/connect/160x90_bia.jpg", status:"unsub", email: {sub:[], pending:[]}},
        "cnn-health":{viewName:"Health News", description:"Your weekly update on the latest health news.", thumbnail:"/.element/img/2.0/content/email/connect/160x90_health.gif", status:"unsub", email: {sub:[], pending:[]}},
        "cnn-africa":{viewName:"Inside Africa", description:"null", thumbnail:"/.element/img/2.0/content/email/connect/160x90_bia.jpg", status:"unsub", email: {sub:[], pending:[]}},
        "cnn-larryking":{viewName:"Larry King Live", description:"Which celebrity, newsmaker and/or politician will Larry King be talking to tonight? Get Mobile SMS alerts, too!", thumbnail:"/.element/img/2.0/content/email/connect/160x90_larry_king.gif", status:"unsub", email: {sub:[], pending:[]}},
        "cnn-loudobbs":{viewName:"Lou Dobbs Tonight", description:"A daily rundown of the day's issues, the issues that matter.", thumbnail:"/.element/img/2.0/content/email/connect/160x90_lou_dobbs.gif", status:"unsub", email: {sub:[], pending:[]}},
        "cnn-rcshow":{viewName:"Morning Express", description:"Wake up with \"Morning Express with Robin Meade\" and receive a daily \"Morning Sunshine\" e-mail from Robin.", thumbnail:"/.element/img/2.0/content/email/connect/160x90_express.jpg", status:"unsub", email: {sub:[], pending:[]}},
		"cnn-sundaysotu":{viewName:"Political Ticker", description:"Get a sneak peek from John King on what to watch this week in politics, in a special Sunday edition of the \"Political Ticker\" newsletter.", thumbnail:"/.element/img/2.0/content/email/connect/160x90_SOTU_political_ticker.jpg", status:"unsub", email: {sub:[], pending:[]}},		
        "cnn-primenews":{viewName:"Prime News", description:"Mike Galanos gives you an inside look at the day's most powerful headlines, giving you a chance to join in on the spirited debate.", thumbnail:"/.element/img/2.0/content/email/connect/160x90_prime_news.gif", status:"unsub", email: {sub:[], pending:[]}},
        "cnn-showbiz":{viewName:"Showbiz Tonight", description:"A daily update of the most provocative entertainment news from AJ Hammer and Brooke Anderson.", thumbnail:"/.element/img/2.0/content/email/connect/160x90_showbiz.gif", status:"unsub", email: {sub:[], pending:[]}},
        "cnn-situationroom":{viewName:"Situation Room", description:"A daily update on the world of raw, unfiltered and live news topics from the producers of \"The Situation Room,\" hosted by Wolf Blitzer.", thumbnail:"/.element/img/2.0/content/email/connect/160x90_situation.gif", status:"unsub", email: {sub:[], pending:[]}},
        "cnn-computing":{viewName:"Tech News", description:"Get a weekly round-up of the latest news in techonlogy.", thumbnail:"/.element/img/2.0/content/email/connect/160x90_tech_news.jpg", status:"unsub", email: {sub:[], pending:[]}},
        "cnn-dailytop10":{viewName:"Todays Top Video", description:"See the 10 most popular videos on CNN.com each day", thumbnail:"/.element/img/2.0/content/email/connect/160x90_daily_top10.gif", status:"unsub", email: {sub:[], pending:[]}},		
        "cnn-primetime":{viewName:"Tonight on CNN", description:"What's on CNN each night? Get a list of CNN prime-time show topics and guests each weekday.", thumbnail:"/.element/img/2.0/content/email/connect/160x90_tonight.gif", status:"unsub", email: {sub:[], pending:[]}},
        "cnn-vital":{viewName:"Vital Signs", description:"null", thumbnail:"/.element/img/2.0/content/email/connect/160x90_tonight.gif", status:"unsub", email: {sub:[], pending:[]}}
    };

    return json;
}

function sendConfirmEmailNewsletter(id, email) {

    msStorage.confirmNewsletter[msStorage.confirmNewsletter.length] = {"id": id, "email": email};
    $(id).innerHTML = 'sending...';
    ms_sendConfirmEmailAgain(email, 'updateConfirmEmailNewsletter');
}

function updateConfirmEmailNewsletter(jsonResponse) {

    msQueueManager.requestReceived(); // lets iJax know it can process the next request
    var confirmNewsletterLocal = msStorage.confirmNewsletter;
    var error = (typeof jsonResponse.errors == 'undefined') ? false : true;
    if(error == false) {
        // update ui for successful
        $(confirmNewsletterLocal[0].id).innerHTML = 'e-mail sent, <a href="javascript:void(0);" onclick="sendConfirmEmailNewsletter(\''+confirmNewsletterLocal[0].id+'\', \''+confirmNewsletterLocal[0].email+'\')">resend</a>';
    } else {
        $(confirmNewsletterLocal[0].id).innerHTML = '<a href="javascript:void(0);" onclick="sendConfirmEmailNewsletter(\''+confirmNewsletterLocal[0].id+'\', \''+confirmNewsletterLocal[0].email+'\')">error, try again</a>';
    }
    // update the local storage object
    if(confirmNewsletterLocal[0].length > 1) {
        var newConfirmNewsletter = msStorage.confirmNewsletter.slice(1);
        msStorage.confirmNewsletter = newConfirmNewsletter;
    } else {
        msStorage.confirmNewsletter = [];
    }
}



