
var cl_track = new Array();
var cl_trackgroups = new Array();
var cl_trackaux = new Array();


function clTrackInit(doc) {

	var sum=0;

	for (var i in cl_struct) {

		cl_trackaux[i] = sum;
		var np = clLogicGetPages(i);
		sum += np;
		var gl = clTrackGetGroupLength(i);

		for (var j=0; j<np; j++) {

			cl_track.push(0);	

			for (var k=0 ; k<gl; k++) {

				if (typeof (cl_trackgroups[clTrackGetGroup(i, k)]) == "undefined") {
			
					cl_trackgroups[clTrackGetGroup(i, k)] = [];
				}

				var m=cl_trackgroups[clTrackGetGroup(i, k)].length;
				var n=cl_track.length - 1;

				for (var l=m; l<n; l++) {

					cl_trackgroups[clTrackGetGroup(i, k)].push(0);

				}
			
				cl_trackgroups[clTrackGetGroup(i, k)].push(1);		
			}	
		}
	}
	
	switch (CL_TRACKINITBEHAVIOR) {

		case 0:
			if (clTrackCookieGet(doc, CL_COURSEID + CL_COOKIESUFFIX1)) {

				if (confirm(CL_LASTVISITEDTXT)) {

					cl_currentnode=clTrackCookieGet(doc,CL_COURSEID + CL_COOKIESUFFIX1);

					if (clTrackCookieGet(doc, CL_COURSEID + CL_COOKIESUFFIX2)) {

						cl_currentpage=parseInt(clTrackCookieGet(doc,CL_COURSEID + CL_COOKIESUFFIX2));
					}
				}		
			}

			break;

		case 1:
	
			if (clTrackCookieGet(doc, CL_COURSEID + CL_COOKIESUFFIX1)) {

				cl_currentnode=clTrackCookieGet(doc,CL_COURSEID + CL_COOKIESUFFIX1);

				if (clTrackCookieGet(doc, CL_COURSEID + CL_COOKIESUFFIX2)) {

					cl_currentpage=parseInt(clTrackCookieGet(doc,CL_COURSEID + CL_COOKIESUFFIX2));
				}	
			}

			break;

		case 2:
			if (clTrackCookieGet(doc, CL_COURSEID + CL_COOKIESUFFIX1)) {

				alert(CL_LASTVISITEDFTXT); 
				cl_currentnode=clTrackCookieGet(doc,CL_COURSEID + CL_COOKIESUFFIX1);

				if (clTrackCookieGet(doc, CL_COURSEID + CL_COOKIESUFFIX2)) {

					cl_currentpage=parseInt(clTrackCookieGet(doc,CL_COURSEID + CL_COOKIESUFFIX2));
					
				}		
			}


			break;

		case 3:

			break;

	}

	if (clTrackCookieGet(doc, CL_COURSEID + CL_COOKIESUFFIX3)) {

		cl_track=clTrackCookieGet(doc,CL_COURSEID + CL_COOKIESUFFIX3).split("");	
	}

	return;
}


function clTrackGetGroup(n, i) {

	return (cl_struct[n][4][i]);
}


function clTrackGetGroupLength (n) {

	return (cl_struct[n][4].length);
}



function clTrackSet(n, p) {

	cl_track[cl_trackaux[n] + p - 1] = 1;
		
	return;
}


function clTrackGetProgress(g, c) {

	var p=0;

	if (g) {

		var aux=cl_trackgroups[g].join("");
		var o=0;
		var n1=0;
		var n2=0;

		while ((o=aux.indexOf('1', o)) != -1) {

			n1+=parseInt(cl_track[o]);
			n2++;
			o++;
		}

		if (c) {

			p = Math.floor((n1/n2) * (CL_P1END-CL_P1BEGIN)) + CL_P1BEGIN;

		} else {

			p = Math.floor((n1/n2) * 100);

		}
	}

	return(p);

}	


function clTrackGetFAPIProgress(v) {

	var p=0;
	var i=0;
	var b="";

	for (g in cl_trackdict) {

		var aux=cl_trackgroups[g].join("");
		var o=0;
		var n1=0;
		var n2=0;

		while ((o=aux.indexOf('1', o)) != -1) {

			n1+=parseInt(cl_track[o]);
			n2++;
			o++;
		}

		p = Math.floor((n1/n2) * 100);

		eval("cl_document.all('__hwtSwf" + CL_TRACKSWFID + "').setVariable('" + v + "[" + i + "][0]', '" + p + " %');");
		eval("cl_document.all('__hwtSwf" + CL_TRACKSWFID + "').setVariable('" + v + "[" + i + "][1]', '" + cl_trackdict[g] + "');");
		eval("cl_document.all('__hwtSwf" + CL_TRACKSWFID + "').setVariable('" + v + "[" + i + "][2]', '" + n2 + "');");
		eval("cl_document.all('__hwtSwf" + CL_TRACKSWFID + "').setVariable('" + v + "[" + i + "][3]', '" + n1 + "');");
		eval("cl_document.all('__hwtSwf" + CL_TRACKSWFID + "').setVariable('" + v + "[" + i + "][4]', '" + (n2-n1) + "');");

		i++;

	}

	return(p);

}


function clTrackCookiePut(doc) {

	doc.cookie=CL_COURSEID + CL_COOKIESUFFIX1 + "=" + cl_currentnode + "; expires=" + CL_COOKIEEXPIRES.toGMTString();
	doc.cookie=CL_COURSEID + CL_COOKIESUFFIX2 + "=" + cl_currentpage + "; expires=" + CL_COOKIEEXPIRES.toGMTString();
	doc.cookie=CL_COURSEID + CL_COOKIESUFFIX3 + "=" + cl_track.join("") + "; expires=" + CL_COOKIEEXPIRES.toGMTString();

	return;
}


function clTrackCookieGet(doc, field) {

	var out="";
	var i=0;
	var j=0;

	if (doc.cookie.length > 0) {

		if ((i=doc.cookie.indexOf(field + "=")) > -1) {

			i += field.length + 1;

			if ((j=doc.cookie.indexOf(";", i)) == -1) {

				j=doc.cookie.length;
			}
			
			out = doc.cookie.substring(i, j);
		}
	}

	return (out);
}



CL_COOKIEEXPIRES=new Date(2015,12,31)
CL_COOKIESUFFIX1="_NODE";
CL_COOKIESUFFIX2="_PAGE";
CL_COOKIESUFFIX3="_TRACKMAP";

