/* Tracking in cookies

	Format is:

	track=url1:name1,url2:name2,url3:name3,...

	Oldest entry first
*/
var MAXIMUM_ENTRIES = 5;

// tracks the page pageToTrack as trackingTitle OR if pageToTrack is null, the page of the current content frame
function trackPage(language,pageToTrack,trackingTitle){
	// read cookie
	
	var pages = readTrackingCookie(language);

	// check if entry already exists and skip it
	var newPages = new Array();  // create temp array
	for(var i = 0; i < pages.length; i++){
		if (pageToTrack == pages[i].substring(0,pages[i].indexOf(":"))){
			// skip entry
		}else{
			newPages.push(pages[i]);
		}
	}
	// copy back temp array
	pages = newPages;

	if (pages.length >= MAXIMUM_ENTRIES){   // cookie is full so delete first entry (this is the oldest)
		pages.shift();
	}

	// put new entry only if it differs from the last one
	if ((pages.length == 0) || (pageToTrack != pages[pages.length-1].substring(0,pages[pages.length-1].indexOf(":")))){   // extract the filename
		pages.push(pageToTrack+":"+trackingTitle);		// add the page to track
		writeTrackingCookie(language,pages);						// save cookie
	}
	
}

// generates the history in HTML-format
function generateTrackingHTML(language){
	var pages = readTrackingCookie(language);

	var retHTML = "";
	retHTML += "<ul>";
	for (var i = pages.length-1; i >= 0; i--){
		var data = pages[i].split(":");
		retHTML += "<li><a href=\"/cgi-bin/mlp/show.ssp?report_id=gb2006&language="+language+"&fn=" +data[0]+ "\">" + data[1] + "</a></li>";
	}
	retHTML += "</ul>";

	document.write( retHTML );
}


// --------------------------------------------------------------------
// private functions:

// reads the tracking cookie and returns the array of the last n visited pages
function readTrackingCookie(language){
	
	var cookieName = "track";
	if (language == "English"){
		cookieName += "_en";
	}
	cookieName += "=";

	if (window.document.cookie){
		var cookieArray = new Array();
		if (window.document.cookie.indexOf(";") != -1){   // more than 1 entry in this cookie, ";"-seperated (test=1; a=2)
			cookieArray = window.document.cookie.split(";");     // split those entries
		}else{    // only one entry in this cookie
			cookieArray.push(window.document.cookie);   // use this one
		}
		for (var i = 0; i < cookieArray.length; i++){   // loop through all cookies
			var s = cookieArray[i];
			if (s.indexOf(cookieName) != -1){  // this is our cookie
				var pages = s.substr(s.indexOf(cookieName)+cookieName.length);
				var returnArray = pages.split(",");
				if (returnArray == null){
					return new Array();
				}else{
					if (returnArray.length > MAXIMUM_ENTRIES){
						returnArray = returnArray.slice(returnArray.length-MAXIMUM_ENTRIES-1,returnArray.length-1);
					}
					return returnArray;
				}
			}
		}
		return new Array();
	}else{
		return new Array();
	}
}

function writeTrackingCookie(language,pages){
	
	var cookieName = "track";
	if (language == "English"){
		cookieName += "_en";
	}
	cookieName += "=";

	window.document.cookie = cookieName+pages.join(",");
}

