function ButtonTrackingObj(exp, titleName, cm, frame){
   this.VarTrivBtnTracking = new Variable( 'VarTrivBtnTracking', null, 0, cm, frame, exp, titleName, true );
   this.title = null;
}

ButtonTrackingObj.codeToStateMap =
{
	'N' : 'normalState',
	'O' : 'overState',
	'D' : 'downState',
	'A' : 'disabledState',
	'V' : 'visitedState',
	'S' : 'selectedState'
};
ButtonTrackingObj.stateToCodeMap = {};
for (var key in ButtonTrackingObj.codeToStateMap)
	ButtonTrackingObj.stateToCodeMap[ButtonTrackingObj.codeToStateMap[key]] = key;

ButtonTrackingObj.prototype.InitPageTracking = function ( )
{
	var THIS = this;
	var pageTrackData = this.VarTrivBtnTracking.getValue();
	var bDoInit = true;
	try {
	    if (pageTrackData && pageTrackData.length > 0 && pageTrackData != '~~~null~~~')
	    {
	        var topLevelSplit = pageTrackData.split('#');
	        if (topLevelSplit && topLevelSplit.length > 1)
            {
		        var arrIds = topLevelSplit[0].split(',');
		        var arrStatus = topLevelSplit[1].split(',');
		        for( var i=0; i<arrIds.length; i++ )
		        {
			        var id = parseInt( '0x' + arrIds[i] );
			        var status = arrStatus[i];
			        var node = this.FindNode( this.title, id );
			        if( node )
						node.v = ButtonTrackingObj.codeToStateMap[status] || status;
		        }
    		}
        }
    } catch (e) { }
}

ButtonTrackingObj.prototype.FindNode = function( node, id )
{
	if( node.id == id )
		return node;
	
	var match = null;
	if( typeof( node.c ) != 'undefined' ){
		for( var i=0; i<node.c.length; i++ ){
			match = this.FindNode( node.c[i], id );
			if( match != null )
				break;
		}
	}
	
	return match;
}

ButtonTrackingObj.prototype.InternalGetRangeStatus = function( node )
{
	if( node == null )
		return -1;
		
	if( typeof(node.c) == 'undefined' )
	{
		return node.v;
	}
	else
	{
		return 'normalState';
	}
}


ButtonTrackingObj.prototype.GetRangeStatus = function( id, bInit )
{
	var status = -1;
	if ( bInit ) 
		this.InitPageTracking();
	
	status = this.InternalGetRangeStatus( this.FindNode( this.title, id ) );

	return status;
}


ButtonTrackingObj.prototype.InternalSetRangeStatus=function( node, status )
{
	if( node == null )
		return;
	node.v = status;
	if( status == 0 && typeof(node.c)!='undefined')
	{
		for( var i=0; i<node.c.length; i++ )
			this.InternalSetRangeStatus( node.c[i], status ); 
	}
}

ButtonTrackingObj.prototype.SetRangeStatus = function( id, status /*0 or 1 or 2*/)
{
	this.InternalSetRangeStatus( this.FindNode(this.title, id), status );
	
	this.SavePageTracking();
}

ButtonTrackingObj.prototype.IterateTree = function( func )
{
	var stack = [];
	stack.push( this.title );
	var i = 0;
	while( stack.length > 0 )
	{
		var node = stack.shift();
		
		if( typeof(node.c) != 'undefined' )
			stack = node.c.concat(stack);
			
		//do the thing
		func( node, i, stack );
		i++;
	}	
}

ButtonTrackingObj.prototype.SavePageTracking = function()
{
	var fnIsSaveState = window.ObjButton && ObjButton.isSaveState || function () { return false; };
	var hexString = '';
	var arrayIds = [];
	var arrayStatus= [];
	
	this.IterateTree(function(node, i, stack){
		if (fnIsSaveState(node.v))
		{
			arrayIds.push(node.id);
			arrayStatus.push(node.v);
		}
	});
	
	for( var i=0; i<arrayIds.length; i++ )
		hexString += (i > 0 ? ',' : '') + arrayIds[i].toString(16);

	hexString += (arrayIds.length > 0 ? '#' : '');
	
	for (var i = 0; i < arrayStatus.length; i++)
		hexString += (i > 0 ? ',' : '') + (ButtonTrackingObj.stateToCodeMap[arrayStatus[i]] || arrayStatus[i]);

	//LD-8267 - Added a condition to avoid tracking null/empty data unnecessarily
	if (hexString.length > 0 || (myTop.suspendDataCache && myTop.suspendDataCache.indexOf('VarTrivBtnTracking') >= 0) || !this.VarTrivBtnTracking.bSCORM)
		this.VarTrivBtnTracking.set(hexString);
}

var trivBtnTracking = new ButtonTrackingObj(365,'inside_technology', 0, 'scorm');
trivBtnTracking.title={id:1,v:0,c:[{id:655155,v:'normalState'},{id:47849,v:'normalState'},{id:50838,v:'normalState'},{id:50845,v:'normalState'},{id:50852,v:'normalState'},{id:50859,v:'normalState'},{id:265103,v:'normalState'},{id:52029,v:'normalState'},{id:58646,v:'normalState'},{id:598617,v:'normalState'},{id:176645,v:'normalState'},{id:293612,v:'normalState'},{id:9201,v:'normalState'},{id:9947,v:'normalState'},{id:575907,v:'normalState'},{id:792169,v:'normalState'},{id:792160,v:'normalState'},{id:1244730,v:'normalState'},{id:1244740,v:'normalState'},{id:1244750,v:'normalState'},{id:1244767,v:'normalState'},{id:1244782,v:'normalState'},{id:1244790,v:'normalState'},{id:1244804,v:'normalState'},{id:720758,v:'normalState'},{id:720746,v:'normalState'},{id:720722,v:'normalState'},{id:720710,v:'normalState'},{id:720698,v:'normalState'},{id:802069,v:'normalState'},{id:1244863,v:'normalState'},{id:1156962,v:'normalState'},{id:1157006,v:'normalState'},{id:1245138,v:'normalState'},{id:1245149,v:'normalState'},{id:1254204,v:'normalState'},{id:1254593,v:'normalState'},{id:1245165,v:'normalState'},{id:1255228,v:'normalState'},{id:1255220,v:'normalState'},{id:1245452,v:'normalState'},{id:1245466,v:'normalState'},{id:1245484,v:'normalState'},{id:1258162,v:'normalState'},{id:1245920,v:'normalState'},{id:1245934,v:'normalState'},{id:1245952,v:'normalState'},{id:1258989,v:'normalState'},{id:1245842,v:'normalState'},{id:1245856,v:'normalState'},{id:1259284,v:'normalState'},{id:1259408,v:'normalState'},{id:1245764,v:'normalState'},{id:1245778,v:'normalState'},{id:1365128,v:'normalState'},{id:1245796,v:'normalState'},{id:1260749,v:'normalState'},{id:1260739,v:'normalState'},{id:1246127,v:'normalState'},{id:1246137,v:'normalState'},{id:1246147,v:'normalState'},{id:1246157,v:'normalState'},{id:1246173,v:'normalState'},{id:1266140,v:'normalState'},{id:1267504,v:'normalState'},{id:1246221,v:'normalState'},{id:1157990,v:'normalState'},{id:1271015,v:'normalState'},{id:1246761,v:'normalState'},{id:1246801,v:'normalState'},{id:1246813,v:'normalState'},{id:1246825,v:'normalState'},{id:1246866,v:'normalState'},{id:1246889,v:'normalState'},{id:1278735,v:'normalState'},{id:1278997,v:'normalState'},{id:1246933,v:'normalState'},{id:1246942,v:'normalState'},{id:1279305,v:'normalState'},{id:1279317,v:'normalState'},{id:1279329,v:'normalState'},{id:1279348,v:'normalState'},{id:1279371,v:'normalState'},{id:1279389,v:'normalState'},{id:1279407,v:'normalState'},{id:1279415,v:'normalState'},{id:1279424,v:'normalState'},{id:1280103,v:'normalState'},{id:1280115,v:'normalState'},{id:1280127,v:'normalState'},{id:1280146,v:'normalState'},{id:1280169,v:'normalState'},{id:1281578,v:'normalState'},{id:1281771,v:'normalState'},{id:1280213,v:'normalState'},{id:1280222,v:'normalState'},{id:1247830,v:'normalState'},{id:1283217,v:'normalState'},{id:1283226,v:'normalState'},{id:1283235,v:'normalState'},{id:1288899,v:'normalState'},{id:1289856,v:'normalState'},{id:1290698,v:'normalState'},{id:1247935,v:'normalState'},{id:1247945,v:'normalState'},{id:1247955,v:'normalState'},{id:1247975,v:'normalState'},{id:1247989,v:'normalState'},{id:1293858,v:'normalState'},{id:1157307,v:'normalState'},{id:1159665,v:'normalState'},{id:1159688,v:'normalState'},{id:1296166,v:'normalState'},{id:1296154,v:'normalState'},{id:1296142,v:'normalState'},{id:1296130,v:'normalState'},{id:1187723,v:'normalState'},{id:1187748,v:'normalState'},{id:1302498,v:'normalState'},{id:1302700,v:'normalState'},{id:1187799,v:'normalState'},{id:1187809,v:'normalState'},{id:1303278,v:'normalState'},{id:1303290,v:'normalState'},{id:1303302,v:'normalState'},{id:1303314,v:'normalState'},{id:1303331,v:'normalState'},{id:1303355,v:'normalState'},{id:1304322,v:'normalState'},{id:1304515,v:'normalState'},{id:1303402,v:'normalState'},{id:1303412,v:'normalState'},{id:1304959,v:'normalState'},{id:1304971,v:'normalState'},{id:1304983,v:'normalState'},{id:1304995,v:'normalState'},{id:1305012,v:'normalState'},{id:1305036,v:'normalState'},{id:1306690,v:'normalState'},{id:1306954,v:'normalState'},{id:1305083,v:'normalState'},{id:1305093,v:'normalState'},{id:1308147,v:'normalState'},{id:1308159,v:'normalState'},{id:1308171,v:'normalState'},{id:1308183,v:'normalState'},{id:1308200,v:'normalState'},{id:1308224,v:'normalState'},{id:1310296,v:'normalState'},{id:1310556,v:'normalState'},{id:1308271,v:'normalState'},{id:1308281,v:'normalState'},{id:1311363,v:'normalState'},{id:1207515,v:'normalState'},{id:1207538,v:'normalState'},{id:1313087,v:'normalState'},{id:1313488,v:'normalState'},{id:1248735,v:'normalState'},{id:1248744,v:'normalState'},{id:1248760,v:'normalState'},{id:1248775,v:'normalState'},{id:1320096,v:'normalState'},{id:1320030,v:'normalState'},{id:1317897,v:'normalState'},{id:1318849,v:'normalState'},{id:1315026,v:'normalState'},{id:1315035,v:'normalState'},{id:1315044,v:'normalState'},{id:1315053,v:'normalState'},{id:1160145,v:'normalState'},{id:1160163,v:'normalState'},{id:1160180,v:'normalState'},{id:1160196,v:'normalState'},{id:1160212,v:'normalState'},{id:1160228,v:'normalState'},{id:1160244,v:'normalState'},{id:1160260,v:'normalState'},{id:1160276,v:'normalState'},{id:1160292,v:'normalState'},{id:1160308,v:'normalState'},{id:1160646,v:'normalState'},{id:1160657,v:'normalState'},{id:1160673,v:'normalState'},{id:1324733,v:'normalState'},{id:1249131,v:'normalState'},{id:1249139,v:'normalState'},{id:1249147,v:'normalState'},{id:1249155,v:'normalState'},{id:1249170,v:'normalState'},{id:1249187,v:'normalState'},{id:1249201,v:'normalState'},{id:1249217,v:'normalState'},{id:1249316,v:'normalState'},{id:1249328,v:'normalState'},{id:1248410,v:'normalState'},{id:1248421,v:'normalState'},{id:1248432,v:'normalState'},{id:1338615,v:'normalState'},{id:1338643,v:'normalState'},{id:1340889,v:'normalState'},{id:1249413,v:'normalState'},{id:1249423,v:'normalState'},{id:1249433,v:'normalState'},{id:1249443,v:'normalState'},{id:1344098,v:'normalState'},{id:1249459,v:'normalState'},{id:1350235,v:'normalState'},{id:1350404,v:'normalState'},{id:1350499,v:'normalState'},{id:1350631,v:'normalState'},{id:1160849,v:'normalState'},{id:1160893,v:'normalState'},{id:70221,v:'normalState'},{id:1387442,v:'normalState'},{id:1249969,v:'normalState'},{id:1249983,v:'normalState'},{id:1388239,v:'normalState'},{id:1388253,v:'normalState'},{id:1025256,v:'normalState'},{id:1025270,v:'normalState'},{id:1388604,v:'normalState'},{id:1388618,v:'normalState'},{id:1388724,v:'normalState'},{id:1388738,v:'normalState'},{id:194542,v:'normalState'},{id:294732,v:'normalState'},{id:1025142,v:'normalState'},{id:1025156,v:'normalState'},{id:788049,v:'normalState'},{id:788063,v:'normalState'},{id:1055301,v:'normalState'},{id:1055315,v:'normalState'},{id:1389374,v:'normalState'},{id:1389388,v:'normalState'},{id:1389504,v:'normalState'},{id:1389518,v:'normalState'},{id:1389641,v:'normalState'},{id:1389655,v:'normalState'},{id:321023,v:'normalState'},{id:321015,v:'normalState'},{id:323409,v:'normalState'},{id:323401,v:'normalState'},{id:1389967,v:'normalState'},{id:1389981,v:'normalState'},{id:1390090,v:'normalState'},{id:1390104,v:'normalState'},{id:1390213,v:'normalState'},{id:1390227,v:'normalState'},{id:323733,v:'normalState'},{id:323725,v:'normalState'},{id:1055430,v:'normalState'},{id:1055444,v:'normalState'},{id:1390627,v:'normalState'},{id:1390641,v:'normalState'},{id:1353206,v:'normalState'},{id:325221,v:'normalState'},{id:325757,v:'normalState'},{id:329044,v:'normalState'},{id:327409,v:'normalState'},{id:625193,v:'normalState'},{id:625135,v:'normalState'},{id:625143,v:'normalState'},{id:625151,v:'normalState'},{id:625159,v:'normalState'},{id:625167,v:'normalState'},{id:233645,v:'normalState'},{id:233637,v:'normalState'},{id:590305,v:'normalState'},{id:590317,v:'normalState'},{id:673002,v:'normalState'},{id:674262,v:'normalState'},{id:590337,v:'normalState'},{id:590345,v:'normalState'},{id:233060,v:'normalState'},{id:233308,v:'normalState'},{id:135253,v:'normalState'},{id:234172,v:'normalState'},{id:233847,v:'normalState'},{id:233839,v:'normalState'},{id:69966,v:'normalState'}]};
