var cookieDomain = document.domain;
if (! cookieDomain) cookieDomain = "localdomain";

var bookmark = 1;
var slideArray = [];
var suspendData = new Cookie(document, "suspendData", 2400);

suspendData.load();
if (! suspendData.completedSlides) suspendData.completedSlides = "";
initSlides(totalSlides);


function getBookmark() {
  return "bookmark=" + verifyBookmark(suspendData.lessonLocation);
}

function getCompletedSlides() {
  return suspendData.completedSlides;
}

function scormStop() { 
  ////*** Enodo Tracking Code Start ****////	 
  SaveTracking('unload'); 
  ////*** Enodo Tracking Code End ****////

  suspendData.lessonLocation = verifyBookmark(bookmark);
  suspendData.completedSlides = getCompletedString(slideArray);	
  suspendData.store();
}

function slideEnd(curSlideOrder) {
  slideArray[curSlideOrder] = "completed";

  ////*** Enodo Tracking Code Start ****////
  SaveTracking('CompleteSlide' + curSlideOrder);
  ////*** Enodo Tracking Code End ****////
}

function initSlides(totalSlides) {
  var completedArray = suspendData.completedSlides.split(",");

  slideArray[0] = null;    // placeholder
  for (var i = 1; i <= totalSlides; i++) slideArray[i] = "incomplete";
  for (i in completedArray) slideArray[completedArray[i]] = "completed";
}

function setBookMark(bm) {
  bookmark = bm.toString();
}

/**
 * Checks if its argument is NaN, null or < 1. If so, returns 1; else
 * returns the argument after casting it to a Number. 1 is also
 * returned if the cast fails.
 */
function verifyBookmark(bm) {
  bm = Number(bm);
  if (bm == null || isNaN(bm) || bm < 1) return 1;
  return bm;
}

/**
 * Turns an array like slideArray into a comma-separated string. The
 * array is expected to be an array of strings. Any item which ==
 * "completed" will have its index added to the string. Index 0 of the
 * list will be ignored.
 */
function getCompletedString(list) {
  var cs = "";

  for (var i = 1; i <= list.length; i++) {
    if (list[i] == "completed") {
      if (cs == "") cs = i + "";
      else cs += "," + i;
    }
  }

  return cs;
}


/*****************************************************
 * 		Enodo Tracking Code 	             *
 *		                                     *
 *****************************************************/

var StartBookMark   = verifyBookmark(suspendData.lessonLocation);
var StartCompletedSlides = getCompletedString(slideArray);

SaveTracking('load') ;

function Enodo_SetCookie(sName, sValue)
{
  date = new Date();
  date.setTime(date.getTime() + (365 * 24 * 3600 * 1000));
  document.cookie = sName + "=" + escape(sValue) + "; expires=" + date.toGMTString();
}

function CtcIDInRequest()
{
	var url = document.URL.toLowerCase();
	var start = url.indexOf('ctcid=');
	if (start == -1)
		return(null);	
	start += 6;
	var end = url.indexOf('&',start);
	if (end == -1) end = url.length;
	var valctcid = url.substring(start,end);
	return( valctcid);
}

function Enodo_GetCookie(sName)
{
  // cookies are separated by semicolons
  var aCookie = document.cookie.split("; ");
  for (var i=0; i < aCookie.length; i++)
  {
    // a name/value pair (a crumb) is separated by an equal sign
    var aCrumb = aCookie[i].split("=");
    if (sName == aCrumb[0]) 
      return unescape(aCrumb[1]);
  }

  // a cookie with the requested name does not exist
  return null;
}

function SaveTracking(event)
{
	// Should be changed accordingly
	CustomerCode = 'AZ_eCME';
   	var CtcID = 	CtcIDInRequest();
   	var r     =	document.referrer;
        var pos   =     event.indexOf('CompleteSlide');
   	if (CtcID == null)
   		CtcID = Enodo_GetCookie('ctcid_cookie');
   	else		
   		Enodo_SetCookie('ctcid_cookie',CtcID);
    var WFId = Enodo_GetCookie('wfID');
 	if ((CtcID != null) ||	(WFId != null))
	{
		if (event == 'load')
			document.write('<IMG WIDTH="1" HEIGHT="1" NAME="EnodoTracking"  SRC="http://www.enodo.eu.com/customers/az/save_ecme.asp?CustomerCode=' + CustomerCode + '&CtcID=' + CtcID + '&WFID=' + WFId + '&p=' + document.URL + '&Referer=' + r + '&TotalSlides=' + totalSlides + '&StartCompletedSlides='+ StartCompletedSlides + '&StartBookMark=' + StartBookMark + '&Event=' + event + '">');
	    if (pos > -1 )
		{
		    document.EnodoTracking.src = 'http://www.enodo.eu.com/customers/az/save_ecme.asp?CustomerCode=' + CustomerCode + '&CtcID=' + CtcID + '&wfID=' + WFId + '&p=' + document.URL + '&Referer=' + r + '&TotalSlides=' + totalSlides + '&StartCompletedSlides='+ StartCompletedSlides + '&StartBookMark=' + StartBookMark + '&Event=' + event
		}
		if (event == 'unload')
		    document.write('<IMG WIDTH="1" HEIGHT="1" SRC="http://www.enodo.eu.com/customers/az/save_ecme.asp?CustomerCode=' + CustomerCode + '&CtcID=' + CtcID + '&wfID=' + WFId + '&p=' + document.URL + '&Referer=' + r + '&TotalSlides=' + totalSlides + '&StartCompletedSlides='+ StartCompletedSlides + '&StartBookMark=' + StartBookMark + '&EndCompletedSlides=' + getCompletedString(slideArray) + '&EndBookMark=' + verifyBookmark(suspendData.lessonLocation) + '&Event=' + event + '">');
        }
}

