var cnn_mynloadhtml = '<div align="center"><div class="cnn_loadimg30px"><img src="http://i.cdn.turner.com/cnn/.element/img/3.0/global/misc/loading.gif" width="30" height="30" alt="" border="0"></div><div class="cnn_loadimgtxt">Please wait while data loads.</div></div>';

//THE ALMIGHTY CONFIG
//STILL NEED TO ADD A RETRIEVE HTML FUNCTION FOR EACH TO PRETTY UP THE JS CODE THAT'S IN GLOBAL FUNCTIONS AT THE BOTTOM
var cnn_mynjcnfg = {

	"stories_followed_topics" : {
	
		"is_loaded" : 0,
		"pagi_limit" : 14,
		"max_page" : 0,
		"curr_page" : 1,
		"curr_tobj" : 0,
		"curr_length" : 0,
		"curr_arr" : 0,
		"curr_seltop" : "",
		"parse_func" : function(data_name, key_string) {
			
			//Clear out all html and show loading graphic
			Element.update(data_name + '_cntr', cnn_mynloadhtml);
			Element.update(data_name + '_nav', '');
			
			//Set topic tab to on state
			if(this.curr_seltop != "") { $('tsnfo_' + this.curr_seltop).removeClassName('tsnfo_on'); }
			$('tsnfo_' + key_string).addClassName('tsnfo_on');
			this.curr_seltop = key_string;
			
			CSIManager.getInstance().call('http://topics.cnn.com/classify/service/topic', 'view=json&tagKey=' + key_string + '&targetType=document&targetType=video&targetSite=cnn+only&targetSite=everyone', data_name + '_cntr', cnn_mynhandleftopics);
		
		}
	
	},
	"stories_saved_topics" : {
	
		"is_loaded" : 0,
		"pagi_limit" : 10,
		"max_page" : 0,
		"curr_page" : 1,
		"curr_sarr" : 0,
		"curr_length" : 0,
		"parse_func" : function(data_name, key_string) {
			
			cnn_mynloadSavS();
			
			//only load once per page refresh
			this.is_loaded = 1;

		}
	
	},
	"stories_mycomments" : {
	
		"is_loaded" : 0,
		"pagi_limit" : 10,
		"max_page" : 0,
		"curr_page" : 1,
		"curr_obj" : 0,
		"curr_arr" : 0,
		"curr_length" : 0,
		"cmmt_chrlngth" : 130,
		"parse_func" : function(data_name, key_string) {			
			this.curr_obj = key_string;
			this.curr_arr = key_string.comments;
			this.curr_length = this.curr_arr.length;
			this.max_page = Math.ceil(this.curr_length / this.pagi_limit);
			
			defaultComments();
			window.setTimeout(function() {cnn_myndisplaycmmts();}, 2500);

			//only load once per page refresh
			this.is_loaded = 1;

		}
	
	}

};


/* FOLLOW TOPIC JS  */

var cnn_followtopics = new Object();


//Disqus comments handler
function onUserInfoLoadComplete(obj) {cnn_myndataload('stories_mycomments', obj); }


//Default data loader for My News
function cnn_myndataload(data_name, key_string) {
	if(cnn_mynjcnfg[data_name].is_loaded == 0) {
		cnn_mynjcnfg[data_name].parse_func(data_name, key_string);
	}
}

//"Login or Sign Up" Hot Topic message flag for non-logged in users
var htTopicLoginMsgFlag;

function cnn_mynloadAFT() {

	if(ms_isLoggedIn() == true) {
		Element.update('all_followed_topics', cnn_mynloadhtml);
		ms_getFllwT('cnn_mynAFTInit');
	}
	else {
		
		//do hot topics
		cnn_mynAFTInit(t_jsonRes, 1);
		
		//Ad messaging inside of module & updated the stay12 div
		if(htTopicLoginMsgFlag == null){
			var blankDiv = '';
			var NotLoggedFllowTop = "<div id='NotLoggedFollowTop' style='font-size: 14px; margin: 15px 0 3px 0'><h3><a title='' onclick='showOverlay(\"profile_signin_overlay\");return false;' href='javascript:void(0);'>Log in</a> or <a title='' onclick='showOverlay(\"profile_signup_overlay\");return false;' href='javascript:void(0);'>sign up</a> to stay up-to-date on up to 12 topics. Meanwhile, check out the three hottest topics today.</h3></div>";
			$('stories_followed_topics').insert({top: NotLoggedFllowTop});
			Element.update('stay12', blankDiv);
			htTopicLoginMsgFlag = 1;
		} else {
			//
		}
		

	}
	
}


//Flag for the "Not Following Topics" Logged in user message
var notFollowingFlag;

function cnn_mynAFTInit(jsonResponse, is_hottopics) {

	var t_html = '';
	var f_key = '';
	var error = false;
	var data_s = '';
	var data_arr = new Array();

	
	//parse thru stored data
	if(is_hottopics != 1) {
		msQueueManager.requestReceived();
		error = (typeof jsonResponse.errors == 'undefined') ? false : true;
	}
 	
	if(error == false) {

    	//sanitize data and load into follow topics array
		data_s = ms_scrubdata(jsonResponse.data);
		if(data_s != '') { data_arr = data_s.split('|||'); }
		
		//init html storage vars
		var pre_html = '';
		var post_html = '';
		
		//put new topics first
		if(is_hottopics != 1) { data_arr.reverse(); }
		
		//just in case you were special but lost the internets
		Element.update('stay12', 'Stay up-to-date on up to 12 topics');
		
		
		//hmmm, tricky overriding because you don't like following topics :(
		if(is_hottopics != 1 && (data_arr.length < 1)) {
		
			//show those pesky hot topics
			data_s = ms_scrubdata(t_jsonRes.data);
			if(data_s != '') { data_arr = data_s.split('|||'); }
			
			is_hottopics = 1;
			
			//alert user that they've reached a special case and won the internets
			Element.update('stay12', 'Stay up-to-date on up to 12 topics');
			
			
			//throw up the "you aren't following topics" div			
			if(notFollowingFlag == null) {
				var NoFllowTop = '<div id="NoFollowTop" style="font-size: 14px; margin: 15px 0 3px 0"><h3>You are not currently following any topics. Check out the three hottest topics today.</h3></div>';
				$('stories_followed_topics').insert({top: NoFllowTop});
				notFollowingFlag = 1;		
				
			} else {
				//console.log(notFollowingFlag);
			}
			
			
			
			
			
			
		}
		
		for(i=0;i<data_arr.length;i++) {
		
			//another limit for only 12 topics
			if(i < 12) {
			
				var tb_html = '';
			
				var t_str = data_arr[i];
				var t_arr = t_str.split('||');
			
				if(is_hottopics != 1) { cnn_followtopics[t_arr[0]] = { "is_followed" : 1, "name" : t_arr[1], "is_saved" : 1 }; }
			
				if(f_key == '') { f_key = t_arr[0]; }
			
				//generate html for left tabs
				tb_html += '<div id="tsnfo_' + t_arr[0] + '" class="topic_story_nfo">';
				tb_html += '<a href="javascript:cnn_myndataload(\'stories_followed_topics\', \'' + t_arr[0] + '\');"><img src="http://i.cdn.turner.com/cnn/.element/img/3.0/topics/60x60/place_holder.gif" width="60" height="60" alt="Topic" align="left" /></a>';
				tb_html += '<a href="javascript:cnn_myndataload(\'stories_followed_topics\', \'' + t_arr[0] + '\');" class="topic_story_link">' + t_arr[1] + '</a>';
				tb_html += '<div class="topic_story_bdr"></div>';
				tb_html += '</div>';
			
				if(i == 5 && (data_arr.length > 6)) { tb_html += '<div id="morebtn"><a href="#" onclick="showOrHide(\'stories_followed_topics_more\');jQuery(\'#morebtn\').hide();return false;" class="stories_more"></a></div>'; }
			
				//pick which html var to save in
				if(i <= 5) { pre_html += tb_html; }
				else { post_html += tb_html; }
			
			}
			
		}
		
		//seperate out the visible topics and hidden ones
		t_html += pre_html;
		t_html += '<div id="stories_followed_topics_more">';
		t_html += post_html;
		t_html += '</div>';
		 
		//Add some HOT TOPIC specific html here; like a button :)
		if(is_hottopics == 1) {
			t_html += '<div class="hot_topics_browse"><a href="/topics/">More topics</a></div>'; // button code - <div class="hot_topics_browse"><a href="/topics/" class="hottopics_browse"></a></div>
		}
		
		//load the topic nav and the first topics' stories
		Element.update('all_followed_topics', t_html);
		if(f_key != '') { cnn_myndataload('stories_followed_topics',f_key); }
		else {
			//no topics available
			Element.update('stories_followed_topics_cntr', '<h2>You have no followed topics</h2>');
		}
	}
	else {
		
		// update ui for errors
		//console.log('get mrv failure');
		//console.log(jsonResponse);
		Element.update('stories_followed_topics_cntr', 'The service is temporarily unavailable, please <a href="javascript:void(0)" onclick="window.msReload();">try again</a> soon.<br/>Thank you for your patience!');

	}

}

//set up JSON, HTML, magic for following topics
function cnn_mynhandleftopics(obj, id, configObj) {

	var c_name = 'stories_followed_topics';

	//record max num of stories and determine which set to display
	if(obj.assets.length > 0) {
	
		cnn_mynjcnfg[c_name].curr_tobj = obj;
		cnn_mynjcnfg[c_name].max_page = Math.ceil(obj.assets.length / cnn_mynjcnfg[c_name].pagi_limit);
	
		var t_arrints = cnn_calcpagiarrlimit(cnn_mynjcnfg[c_name].curr_tobj.assets.length, cnn_mynjcnfg[c_name].pagi_limit, 1);
	
		//build out pagination
		cnn_mynupdpaginav(cnn_mynjcnfg[c_name].pagi_limit, cnn_mynjcnfg[c_name].max_page, 1, 'stories_followed_topics','cnn_mynpagicntrl');

		return cnn_displayFTopics(obj, t_arrints[0], t_arrints[1]);
	
	}
	else { return 'No Related Stories Found!'; 	}
		
}

function cnn_displayFTopics(obj, i_begin, i_end) {
	
	var t_switch = 0;
	var t_html = '';
	
	//iterate!!!
	for(i = i_begin;i < i_end;i++) {
		
		var d_str = '';
		if(obj.assets[i].publishDate) { d_str = cnn_parseISO8601(obj.assets[i].publishDate).toLocaleString(); }
		
		if(t_switch == 0) {
		
			t_html += '<div class="main_story">';
			t_html += '<div class="main_story_hdr">';
			
			if(!cnn_followtopics[obj.tag.key] || (cnn_followtopics[obj.tag.key].is_followed != 1)) {
				t_html += '<h3>' + obj.tag.name + '</h3>';
				if((obj.tag.key != '') && (ms_isLoggedIn() == true)) { t_html += '<div class="followthis"><a href="javascript:cnn_mynftopic(\'' + obj.tag.key + '\', \'' + obj.tag.name.replace(/'/gi, '\'') + '\');">FOLLOW THIS TOPIC</a></div>'; }
			}
			else { t_html += '<h3>' + obj.tag.name + '</h3><div class="followthis"><a href="javascript:cnn_mynremftopic(\'' + obj.tag.key + '\');">STOP FOLLOWING THIS TOPIC</a></div>'; }
			
			t_html += '</div><div class="cnn_clear"></div><div class="cnn_divline" style="margin:5px 0 10px 0;"></div>';
			//if(obj.assets[i].teaseImageUrl) { t_html += '<div id="cnn_mynfttopimg"><a href="' + obj.assets[i].siteId + '"><img src="http://i.dev.cdn.turner.com/cnnstatic' + obj.assets[i].teaseImageUrl + '" border="0" /></a></div>'; }
			t_html += '<h1><a href="' + obj.assets[i].siteId + '">' + obj.assets[i].headline + '</a></h4>';
			if(obj.assets[i].tease) { t_html += '<p>' + obj.assets[i].tease + ' <a href="' + obj.assets[i].siteId + '">FULL STORY</a></p>'; }
			t_html += '<h5>' + d_str + '</h5>';
			t_html += '</div>';
			t_switch = 1;
			
		}
		else { t_html += '<div class="sub_story"><h1><a href="' + obj.assets[i].siteId + '">' + obj.assets[i].headline + '</a></h4><h5>' + d_str + '</h5></div>\n'; }
	
	}
	
	return t_html;

}


function cnn_mynftopic(t_key, t_name) {


	Element.update('stories_followed_topics_cntr', cnn_mynloadhtml);

	cnn_followtopics[t_key] = { "is_followed" : 1, "name" : t_name, "is_saved" : 1 };
	
	//turn this tidbit into a function that returns an array so it can be used on the remove topic
	var t_datastr = '';
	var t_dataarr = new Array();
	var t_i = 0;
	
	for(var t_key in cnn_followtopics) {
	
		if(cnn_followtopics[t_key].is_followed == 1) {
			t_dataarr.push(t_key + '||' + cnn_followtopics[t_key].name);
		}
		else { }
			
	}
	
	t_datastr = t_dataarr.join('|||');
	
	ms_setFllwT('cnn_mynftopicchngd', t_datastr);
	
	//Clear out the 'You aren't following topics' HTML
	NoFllowTop = '';
	Element.update('NoFollowTop', NoFllowTop);

}

//NEED TO DO OVERLAY FIRST
function cnn_mynremftopic(t_key) {

	Element.update('stories_followed_topics_cntr', cnn_mynloadhtml);

	cnn_followtopics[t_key].is_followed = 0;
	
	var t_datastr = '';
	var t_dataarr = new Array();
	var t_i = 0;
	
	for(var t_key in cnn_followtopics) {
	
		if(cnn_followtopics[t_key].is_followed == 1) {
			t_dataarr.push(t_key + '||' + cnn_followtopics[t_key].name);
		}
		else { }
			
	}
	
	//put old topics first and make sure the MAX saved is 11 (12 - the one that's removed)
	t_dataarr.reverse();
	
	t_datastr = t_dataarr.join('|||');
	
	ms_setFllwT('cnn_mynftopicchngd', t_datastr);

}

function cnn_mynftopicchngd(value) {

    msQueueManager.requestReceived();
	cnn_mynjcnfg['stories_followed_topics'].curr_seltop = '';
	cnn_mynloadAFT();
	
}

/* SAVED STORIES JS */


var cnn_savedstories = new Object();
var default_feed ='<h3 class="defaultSaved">You do not have any saved stories from <a href="http://www.cnn.com/">CNN.com</a></h3>';
var default_set_flag = 0;


function cnn_mynloadSavS() {

	if(ms_isLoggedIn() == true) {
		ms_getSaveS('cnn_parsesaveds');
	}	
}

function cnn_parsesaveds(jsonResponse) {

	msQueueManager.requestReceived();
 	var error = (typeof jsonResponse.errors == 'undefined') ? false : true;
	if(error == false) {

    	//sanitize data and load into follow topics array
		var data_s = ms_scrubdata(jsonResponse.data);
		var data_arr = new Array();
		
		if(data_s != '') { var data_arr = data_s.split('||||'); }
		
		cnn_mynjcnfg['stories_saved_topics'].max_page = Math.ceil(data_arr.length / cnn_mynjcnfg['stories_saved_topics'].pagi_limit);
		cnn_mynjcnfg['stories_saved_topics'].curr_length = data_arr.length;
		
		for(i=0;i<data_arr.length;i++) {
		
			var t_str = data_arr[i];
			var t_arr = t_str.split('|||');
			cnn_savedstories[t_arr[0]] = { "title" : t_arr[1], "is_saved" : 1 };
			
		}

		cnn_mynjcnfg['stories_saved_topics'].curr_sarr = data_arr;

		cnn_mynsavedstrydply(1);

	}
	else {
	
		var t_html = 'Sorry a member services error occurred!';
		Element.update('stories_saved_topics_cntr', t_html);
		
	}

}

function cnn_mynsavedsrem(url_key) {
	//set ready to delete
	cnn_savedstories[url_key].is_saved = 0;

	
	//set loading
	Element.update('stories_saved_topics_cntr', cnn_mynloadhtml);
	
	//default after the last one is removed
	var next_num = cnn_mynjcnfg['stories_saved_topics'].curr_length - 1;

	if(next_num < 1) { window.setTimeout(function() {Element.update('stories_saved_topics_cntr', default_feed);}, 2000); }

	//rebuild saved story data
	var t_datastr = '';
	var t_dataarr = new Array();
	var t_i = 0;
	
	for(var t_key in cnn_savedstories) {
	
		if(cnn_savedstories[t_key].is_saved == 1) {
			t_dataarr.push(t_key + '|||' + cnn_savedstories[t_key].title);
		}
		else { }
			
	}
	
	//recalc values for object
	cnn_mynjcnfg['stories_saved_topics'].curr_sarr = t_dataarr;
	cnn_mynjcnfg['stories_saved_topics'].curr_length = t_dataarr.length;
	cnn_mynjcnfg['stories_saved_topics'].max_page = Math.ceil(t_dataarr.length / cnn_mynjcnfg['stories_saved_topics'].pagi_limit);
	
	//prepare for save
	t_datastr = t_dataarr.join('||||');

	//trigger save
	ms_setSaveS('cnn_mynsavedstrydply', t_datastr);
}

function cnn_mynsavedstrydply(is_forced) {
	if(is_forced != 1) { msQueueManager.requestReceived(); }
	
	var c_name = 'stories_saved_topics';
	var t_arrints = cnn_calcpagiarrlimit(cnn_mynjcnfg[c_name].curr_length, cnn_mynjcnfg[c_name].pagi_limit, cnn_mynjcnfg[c_name].curr_page);
	t_html = cnn_myndisplaySavedS(cnn_mynjcnfg[c_name].curr_sarr, t_arrints[0], t_arrints[1]);
	
	Element.update(c_name + '_cntr', loadingDiv);
	window.setTimeout(function(){Element.update(c_name + '_cntr', t_html);}, 1000); //timeout just so the updates don't pop in one after the other making the page look jumpy
	cnn_mynupdpaginav(cnn_mynjcnfg[c_name].pagi_limit, cnn_mynjcnfg[c_name].max_page, cnn_mynjcnfg[c_name].curr_page, c_name,'cnn_mynpagicntrl');

}

function cnn_myndisplaySavedS(t_array, i_begin, i_end) {
	
	if(default_set_flag == 0){ // for the first time the page loads
		default_feed += $('stories_saved_topics_cntr').innerHTML;
		default_set_flag++;
	}

 	var t_html = '';
	
	for(i = i_begin;i < i_end;i++) {
		
		var t_str = t_array[i];
		var t_arr = t_str.split('|||');
		t_html += '<div class="sub_story"><h1><a href="' + t_arr[0] + '">' + t_arr[1] + '</a></h1><a href="javascript:cnn_mynsavedsrem(\'' + t_arr[0].replace(/'/gi, '%27') + '\');" class="remove_saved_story"></a></div>';
			
	}

	if(t_html == '') { 
	
		//t_html = '<h3 class="defaultSaved">You do no have any saved stories from <a href="http://www.cnn.com/">CNN.com</a></h3>';
		t_html=  default_feed;
	}
	
	
	return t_html;
	
}


/* MY COMMENTS JS */
var defaultArr;
var comments_url = '/.element/ssi/misc/3.0/disqus/latest_comments_csi.html';
var commentObj = {
	url: comments_url, 
	args: {}, 
	domId: false, 
	funcObj: commDefault, 
	breakCache: true
	};


function defaultComments() {	
	CSIManager.getInstance().callObject(commentObj);
	
	if(ms_isLoggedIn() == false) {
		window.setTimeout(function () {cnn_myndisplaycmmts();}, 2000);
	}	
} 


function commDefault (obj) {
	var jsonData = obj[0]['message'];
	def_length = jsonData.length;
	defaultArr = jsonData;
}


Element.observe(window, 'load', function() {
	if(ms_isLoggedIn() != true) {
		defaultComments();
	}
});

var is_default_comments;

function cnn_myndisplaycmmts() {
	
	var c_name = 'stories_mycomments';
	var default_true;

	if(cnn_mynjcnfg[c_name].curr_length < 1  || ms_isLoggedIn() == false) {
		cnn_mynjcnfg[c_name].curr_length = 25;
		//cnn_mynjcnfg[c_name].curr_arr = defaultArr;
		is_default_comments = true;
	} else {
		cnn_mynjcnfg[c_name].curr_length = cnn_mynjcnfg[c_name].curr_length;
		is_default_comments = false;
		
	}
	
	var t_arrints = cnn_calcpagiarrlimit(cnn_mynjcnfg[c_name].curr_length, cnn_mynjcnfg[c_name].pagi_limit, cnn_mynjcnfg[c_name].curr_page);
	
	t_html = cnn_mynretrcomments(cnn_mynjcnfg[c_name].curr_arr, t_arrints[0], t_arrints[1]);
	
	
	Element.update(c_name + '_cntr', t_html);
	cnn_mynupdpaginav(cnn_mynjcnfg[c_name].pagi_limit, cnn_mynjcnfg[c_name].max_page, cnn_mynjcnfg[c_name].curr_page, c_name,'cnn_mynpagicntrl');
	

}

function cnn_mynretrcomments(t_array, i_begin, i_end) {
	
 	var t_html = '';		
	var this_length = cnn_mynjcnfg['stories_mycomments'].curr_length;
	
		
		if(t_array != 0 && is_default_comments != true) {
			for(i = i_begin;i < i_end;i++) {
				var t_obj = t_array[i];
				t_html += '<div class="comment_box">';
				t_html += '<p id="cnn_myncmmt_' + i + '">';
				t_html += t_obj.body.substr(0,cnn_mynjcnfg['stories_mycomments'].cmmt_chrlngth);
				if(t_obj.body.length >= 130) { t_html += '... <a href="javascript:cnn_myncmmtexp(' + i + ');">more</a>'; }
				t_html += '</p>';
				t_html += '<span>commented on <a href="' + t_obj.url + '">' + t_obj.thread.title + '</a><!-- | <a href="#">CNN</a>--></span><br/>';
				t_html += '<span class="comment_num_box"><span class="comment_num">' + t_obj.num_likes + '</span> likes&nbsp;&nbsp|&nbsp;&nbsp <span class="comment_num">' + t_obj.num_replies + '</span> responses</span>';
				t_html += '</div>';
			}
		} else {			
			if(ms_isLoggedIn() == true) {
				t_html = '<div><h3>You have not made any comments on <a href="http://www.cnn.com/">CNN.com</a></h3></div>';
			} 
			cnn_mynjcnfg['stories_mycomments'].max_page = 3;
			t_html += '<h3 class="defaultComm">Latest comments made by others</h3>';
			for(i = i_begin;i < i_end;i++) {
				var entry = defaultArr[i];
				t_html += '<div class="comment_box">';
				t_html += '<p id="cnn_myncmmt_' + i + '">';
				t_html += entry['message'].substr(0, cnn_mynjcnfg['stories_mycomments'].cmmt_chrlngth);
				if(entry['message'].length >= 130) { t_html += '... <a href="javascript:cnn_myncmmtexp(' + i + ');">more</a>'; }
				t_html += '</p>';
				t_html += '<span>commented on <a href="' + entry['thread']['url'] + '">' + entry['thread']['title'] + '</a></span><br/>';
				//t_html += '<span class="comment_num_box"><span class="comment_num">' + entry.num_likes + '</span> likes&nbsp;&nbsp|&nbsp;&nbsp <span class="comment_num">' + entry.num_replies + '</span> responses</span>';
				t_html += '</div>';
			}
		}
	
	return t_html;	
}

function cnn_myncmmtexp(cmmt_id) {

	t_html = '';
	if(is_default_comments == true) {
		t_html += defaultArr[cmmt_id]['message'];
	} else {t_html += cnn_mynjcnfg['stories_mycomments'].curr_arr[cmmt_id].body;}
	
	t_html += ' <a href="javascript:cnn_myncmmtcllps(' + cmmt_id + ');">less</a>';
	
	Element.update('cnn_myncmmt_' + cmmt_id, t_html);
	
}


function cnn_myncmmtcllps(cmmt_id) {

	t_html = '';
	if(is_default_comments == true) {
		t_html += defaultArr[cmmt_id]['message'].substr(0,cnn_mynjcnfg['stories_mycomments'].cmmt_chrlngth);
	} else {t_html += cnn_mynjcnfg['stories_mycomments'].curr_arr[cmmt_id].body.substr(0,cnn_mynjcnfg['stories_mycomments'].cmmt_chrlngth);}
	t_html += '... <a href="javascript:cnn_myncmmtexp(' + cmmt_id + ');">more</a>';
	
	Element.update('cnn_myncmmt_' + cmmt_id, t_html);
	
}


/* GLOBAL MY NEWS FUNCTIONS  */

//determine the max / min nodes of an array to iterate
function cnn_calcpagiarrlimit(array_length, pagi_limit, page_num) {

	var begin_i = (page_num - 1) * pagi_limit;
	var end_i = page_num * pagi_limit;
	if(end_i >= array_length) { end_i = array_length; }
	return new Array(begin_i, end_i);
	
}


//print out page navigation
function cnn_mynupdpaginav(pagi_limit, max_pages, curr_page, pagi_divpar, func_name) {

	var t_html = '';
	
	if(max_pages > 1) {
	
		t_html += '<div class="page_sel"><span>page ' + curr_page + ' of ' + max_pages + '</span></div>';
		t_html += '<div class="page_sel">';
		t_html += '<a href="#' + pagi_divpar + '" onclick="return ' + func_name + '(\'left\', \'' + pagi_divpar + '\');" class="pageleft"></a>';
	for(i = 1;i <= max_pages;i++) {
		t_html += '<a href="#' + pagi_divpar + '" onclick="return ' + func_name + '(' + i + ', \'' + pagi_divpar + '\');"><img src="http://i.cdn.turner.com/cnn/.element/img/3.0/profile/page_';
		if(i == curr_page) { t_html += 'on'; }
		else { t_html += 'off'; }
			t_html += '.gif" width="8" height="20" height="" /></a>';
		}
		t_html += '<a href="#' + pagi_divpar + '" onclick="return ' + func_name + '(\'right\', \'' + pagi_divpar + '\');" class="pageright"></a>';
		t_html += '</div>';
		t_html += '<div class="clear"></div>';
	
	}
	Element.update(pagi_divpar + '_nav', t_html);
		
}



//handle page nav call
function cnn_mynpagicntrl(cntrl_var, c_name) {

	scrollTo(0, 0);
	if(cntrl_var == 'left') {
		if(cnn_mynjcnfg[c_name].curr_page == 1) { cnn_mynjcnfg[c_name].curr_page = cnn_mynjcnfg[c_name].max_page; }
		else { cnn_mynjcnfg[c_name].curr_page--; }
	}
	else if(cntrl_var == 'right') {
		if(cnn_mynjcnfg[c_name].curr_page == cnn_mynjcnfg[c_name].max_page) { cnn_mynjcnfg[c_name].curr_page = 1; }
		else { cnn_mynjcnfg[c_name].curr_page++; }
	}
	else { cnn_mynjcnfg[c_name].curr_page = cntrl_var; }

	var t_arrlngth = 0;
	var t_html = '';
	
	if(c_name == 'stories_followed_topics') { t_arrlngth = cnn_mynjcnfg[c_name].curr_tobj.assets.length; }
	else { t_arrlngth = cnn_mynjcnfg[c_name].curr_length; }
	
	var t_arrints = cnn_calcpagiarrlimit(t_arrlngth, cnn_mynjcnfg[c_name].pagi_limit, cnn_mynjcnfg[c_name].curr_page);
	
	if(c_name == 'stories_followed_topics') { t_html = cnn_displayFTopics(cnn_mynjcnfg[c_name].curr_tobj, t_arrints[0], t_arrints[1]);	}
	else if(c_name == 'stories_mycomments') { t_html = cnn_mynretrcomments(cnn_mynjcnfg[c_name].curr_arr, t_arrints[0], t_arrints[1]); }
	else { t_html = cnn_myndisplaySavedS(cnn_mynjcnfg[c_name].curr_sarr, t_arrints[0], t_arrints[1]); }
	
	cnn_mynupdpaginav(cnn_mynjcnfg[c_name].pagi_limit, cnn_mynjcnfg[c_name].max_page, cnn_mynjcnfg[c_name].curr_page, c_name,'cnn_mynpagicntrl');
	Element.update(c_name + '_cntr', t_html);

	return false;
	
}

function cnn_parseISO8601(time) {

var date = new Date((time || "").replace(/-/g,"/").replace(/[TZ]/g," ")),
		diff = (((new Date()).getTime() - date.getTime()) / 1000),
		day_diff = Math.floor(diff / 86400);

 return date;
 
}

