var isLoggedIn = ms_isLoggedIn();
//var baseStandardApi = 'http://audience.cnn.com/services/cnn/';
var baseStandardApi = 'http://aud-ite.cnn.com/services/cnn/';
var storage = null;

function ms_isLoggedIn() {
	var authid = allCookies[ 'authid' ] || null;
	return (authid!=null);
}

function saveMrvUrl(title,url)
{
	var data = (title + "|" + url);
//	alert("saving: " + data);
   storage = StorageManager.getInstance().getStorage();
	storage.load();
	window.setTimeout( function() { mrvSmOnload( data ); }, 1000 );
}

function mrvSmOnload(data)
{
	var mrvdata = storage.get('memberservices.mrv');
   if(mrvdata == undefined) {
		if(isLoggedIn) {
			getMrvApi('doMrvSave');
			return;
		}
		mrvdata = data;
   } else {
		mrvdata = (data + '||' + mrvdata);
	}

	doMrvSave({sync:true,data:mrvdata});
}

function doMrvSave(jsonResponse)
{
	if(!jsonResponse.sync) {
	   saveMrvQm.requestReceived();
	}
   var error = (typeof jsonResponse.errors == 'undefined') ? false : true;
   if(!error) {
		var mrvdata = jsonResponse.data;
		var truncds = deDupTrunc(mrvdata);
		//alert('storing: ' + truncds);
	   storage.put('memberservices.mrv', truncds);
	   storage.save();

		if ( isLoggedIn ) {
	      setMrvApi('setMrvApiDone',truncds);
		}
   } else {
      // console.log('get mrv failure');
      // console.log(jsonResponse);
   }
}

function getMrvApi(view) {
   var queueItem = new ms_QueueItem(baseStandardApi+'user.api', 'get');
   queueItem.addParam('action', 'getData');
   queueItem.addParam('name', 'mrv');
   queueItem.addParam('callback', view);
   var queueItemObj = queueItem.getQueueItem();
   saveMrvQm.addRequest(queueItemObj);
}

function setMrvApi(callback, data) {
   var queueItem = new ms_QueueItem(baseStandardApi+'user.api', 'get');
   queueItem.addParam('action', 'setData');
   queueItem.addParam('name', 'mrv');
   queueItem.addParam('data', data );
   queueItem.addParam('callback', callback);
   var queueItemObj = queueItem.getQueueItem();
   saveMrvQm.addRequest(queueItemObj);
}

function setMrvApiDone(jsonResponse) {
    saveMrvQm.requestReceived();
}

function deDupTrunc(mrvdater) {
	// console.log(mrvdater);
   var dater = scrubMrv(mrvdater).split('||');
//	var dater = mrvdater.split('||');
	var dedups = [];
	
	// dedup our array
	for(var i = 0 ; i < dater.length ; ++i ) {
	   if(dater[i].length > 0 && dedups.indexOf( dater[i], 0, false ) < 0 ) {
	      dedups.push( dater[i] );
	   }
	}
	// trunc our array
	mrvdater = dedups.splice(0,10);
	var r = mrvdater.join('||');
	// console.log(r);
	return r; // mrvdater.join('||');
}
