var hostname = document.location.host
var eventid = objQueryStringParameters.eventid?objQueryStringParameters.eventid:0;
var sessionid = objQueryStringParameters.sessionid?objQueryStringParameters.sessionid:0;
var key = objQueryStringParameters.key?objQueryStringParameters.key:"";
var eventuserid = null;
var partnerref = objQueryStringParameters.partnerref?objQueryStringParameters.partnerref:"";
var debug = (objQueryStringParameters && objQueryStringParameters.debug && objQueryStringParameters.debug=="true");
var email = null;


function spotlightInit() 
{
	// add onclick handler to links
	initializeEventObject();
	email = getUserEmail();
	
	if (!objSessionObject) 
	{
		alert("This page is missing required querystring parameters or the key parameter is incorrect.");
		return;
	}
	
    var on24trackinglinks = cssQuery('a.on24tracking');
    for (var i=0; i < on24trackinglinks.length; i++) {
        var on24trackinglink = on24trackinglinks[i];
        on24trackinglink.onclick = trackOn24Link;
		if (on24trackinglink.className.indexOf("appendemail")!=-1 && email && email!="null") on24trackinglink.href += "&email="+escape(email);
    }
	
	if (debug) 
	{
		debugLinks();
	}
	
	if (objQueryStringParameters && objQueryStringParameters.param1) 
	{
		var launchLinks = cssQuery('a#'+objQueryStringParameters.param1);
		if (!launchLinks[0]) return;
		trackHit(launchLinks[0].id,0,getDPID(launchLinks[0].id));
		if (launchLinks[0].click)
			launchLinks[0].click();
		else
			MozillaLinkClick(launchLinks[0]);
	}
}

function debugLinks() 
{
	var on24trackinglinks = cssQuery('a.on24tracking');
	var arrDisplayLinks = getDisplayLinksArray();
	
	// Declare variables and create the header, footer, and caption.
	var oTable = document.createElement("TABLE");
	var oTHead = document.createElement("THEAD");
	var oTBody0 = document.createElement("TBODY");
	var oTBody1 = document.createElement("TBODY");
	var oTFoot = document.createElement("TFOOT");
	var oCaption = document.createElement("CAPTION");
	var oRow, oCell;
	
	// Insert the created elements into oTable.
	oTable.appendChild(oTHead);
	oTable.appendChild(oTBody0);
	oTable.appendChild(oTBody1);
	oTable.appendChild(oTFoot);
	oTable.appendChild(oCaption);
	
	// Set the table's border width and colors.
	oTable.border=1;
	oTable.bgColor="lightslategray";
	
	// Insert a row into the header and set its background color.
	oRow = document.createElement("TR");
	oTHead.appendChild(oRow);
	oTHead.bgColor = "lightskyblue";
	
	// Create and insert cells into the header row.
	oCell = document.createElement("TH");
	oCell.innerHTML = "Database Link";
	oRow.appendChild(oCell);
	oCell = document.createElement("TH");
	oCell.innerHTML = "HTML Link";
	oRow.appendChild(oCell);
	
	// Create and insert rows and cells into the first body.

	
	for (var i in arrDisplayLinks)
	{
		oRow = document.createElement("TR");
		oTBody0.appendChild(oRow);
		
		oCell = document.createElement("TD");
		oCell.innerHTML = arrDisplayLinks[i].displayElementOptions[0].displayOptionValue
		oRow.appendChild(oCell);
		
		var trackLink = getTrackLinkById(arrDisplayLinks[i].displayElementOptions[0].displayOptionValue);
		
		oCell = document.createElement("TD");
		oCell.innerHTML = getTrackLinkText(arrDisplayLinks[i].displayElementOptions[0].displayOptionValue);
		if(oCell.innerHTML =="Not Found") oCell.bgColor = "#aaaaaa";
		if(oCell.innerHTML =="Duplicates Found") oCell.bgColor = "#cc0000";
		oRow.appendChild(oCell);
	}

	for (var i in on24trackinglinks)
	{
		if (!getDisplayLinkById(on24trackinglinks[i].id)) 
		{
			oRow = document.createElement("TR");
			oTBody1.appendChild(oRow);
			
			oCell = document.createElement("TD");
			oCell.innerHTML = "ORPHAN"
			oRow.appendChild(oCell);
			
			oCell = document.createElement("TD");
			oCell.innerHTML = on24trackinglinks[i].href +" ["+on24trackinglinks[i].id+"]";
			oRow.appendChild(oCell);
		}
	}
	
	oRow = document.createElement("TR"); 
	oTBody0.appendChild(oRow); 
	
	
	oCell = document.createElement("TD"); 
	oCell.innerHTML = "Total Database Links: " + arrDisplayLinks.length; 
	oCell.bgColor = "lightgreen";
	oRow.appendChild(oCell); 
	
	oCell = document.createElement("TD"); 
	oCell.innerHTML = "Total HTML Links: " + on24trackinglinks.length; 
	oCell.bgColor = "lightgreen";
	oRow.appendChild(oCell); 
	
	// Set the background color of the first body.
	oTBody0.bgColor = "lemonchiffon";
	oTBody1.bgColor = "goldenrod";
	
	//alert(oTable.innerHTML );

	//var winDebug = window.open("","winDebug");
	//winDebug.document.open();
	//winDebug.document.appendChild(oTable);
	
	// Insert the table into the document tree.
	document.body.insertBefore(oTable,document.body.childNodes[0]);

}

function getTrackLinkText(linkId) 
{
	var trackLink = getTrackLinkById(linkId);
	if (trackLink==null) return "Not Found";
	if (trackLink=="duplicate") return "Duplicates Found";
	if (trackLink.href) return trackLink.href;
}

function getTrackLinkById(linkId) 
{
	var launchLinks = cssQuery('a#'+linkId);
	//alert(launchLinks.length);
	if (launchLinks.length==0) 
	{
		return null;
	} else if (launchLinks.length==1) 
	{
		return launchLinks[0];
	} else if (launchLinks.length>1) 
	{
		return "duplicate";
	}
}

function getDisplayLinkById(linkId) 
{
	var arrDisplayLinks = getDisplayLinksArray();
	for (var i in arrDisplayLinks)
	{
		if (arrDisplayLinks[i].displayElementOptions[0].displayOptionValue==linkId) return arrDisplayLinks[i];
	}
	return null;
}

function getDisplayLinksArray() 
{
	var arrLinks = new Array();
	if (!objSessionObject || !objSessionObject.displayplayer) return arrLinks;
	var displayplayerObj = objSessionObject.displayplayer;
	for(var i in displayplayerObj){
		if(displayplayerObj[i].displayElementTypeCode=='hyperlink') arrLinks[arrLinks.length] = displayplayerObj[i];
	}
	return arrLinks
}

function getDPID(param) {
	if (!objSessionObject || !objSessionObject.displayplayer) return null;
	var displayplayerObj = objSessionObject.displayplayer;
	for(var i in displayplayerObj){
		var temp=displayplayerObj[i];
		//alert(temp);
		if(temp.displayElementTypeCode=='hyperlink'){
			if(temp.displayElementOptions){
				//alert(temp.displayElementOptions[0].displayOptionValue)
				if(temp.displayElementOptions[0].displayOptionValue==param) {
					//alert(temp.displayElementID);
					return temp.displayElementID;
				}
			}
		}
	}
	return 0;
}

function trackOn24Link() 
{
	//alert(this.id + " - " + this.href + " - " + this.className);
	//alert(this.className)
	//alert(this.className.indexOf("requirereg")!=-1)
	//alert(this.className && this.className.indexOf("requirereg")!=-1)
	if (this.className && this.className.indexOf("requirereg")!=-1)
	{
	
		if (email==null || email=="null") {
			email = getUserEmail();
		}
		//alert(email)
		if (email==null || email=="null")
		{
			launchRegPage(this.id);
			return false;
		}
	}
	//alert(objSessionObject.displayplayer);
	
	//alert(getDPID(this.id));
	trackHit(this.id,0,getDPID(this.id));
	return true;
	
}

//alert(window.onload)
window.onload = function() {spotlightInit();}
//alert(window.onload)

function trackHit(contentname,mediaurlid,displayelementid)
{
	//alert(contentname);
	if(callStreamTrackServlet){
		callStreamTrackServlet(hostname, eventid, sessionid, "player", "TotalHits", eventuserid, contentname, mediaurlid, displayelementid, 1, 0, 0);
	}
}

function getUserId() {
	if (objQueryStringParameters.eventuserid) return objQueryStringParameters.eventuserid;
	return objCookieUtils.getCookieValue("eventid"+eventid)
}

eventuserid = getUserId();

if (!eventuserid) document.location.href = "http://"+hostname+"/r.htm?e="+eventid+"&s="+sessionid+"&k="+key+"&userreg=n&partnerref="+partnerref;

if (eventuserid) 
{
	//alert(getUserEmail())
}

function getUserEmail() 
{
	try {
		var xmlhttp = new XMLHttpRequest();
		var registrantUrl = "http://"+hostname+"/eventManager/includes/registrants.jsp?eventid="+eventid+"&key="+key+"&eventuserid="+eventuserid+"&t="+new Date().getTime();
		//alert(registrantUrl);
		if (debug) window.open(registrantUrl);
		xmlhttp.open("GET", registrantUrl, false);
		// if needed set header information 
		// using the setRequestHeader method
		xmlhttp.send('');
		//alert(Sarissa.serialize(xmlhttp.responseXML));
		
		var oDomDoc = Sarissa.getDomDocument();
		var xmlString = xmlhttp.responseText;
		//alert(xmlString);
		xmlString = xmlString.substr(xmlString.indexOf("<"));
		oDomDoc = (new DOMParser()).parseFromString(xmlString, "text/xml");
		//alert(Sarissa.serialize(oDomDoc));
		
		var oElem = (oDomDoc.documentElement.getElementsByTagName("EMAIL"))[0];

		if (oElem.firstChild.data) return oElem.firstChild.data;	
	} catch (err) {
	
	}

	return null;
}

function launchRegPage(idName) 
{
	//alert("You must register!");
	var strUrl = "https://"+hostname+"/eventRegistration/EventLobbyServlet"
		+"?target=registration.jsp"
		+"&eventid="+eventid
		+"&key="+key
		+"&partnerref="+partnerref
		+"&eventuserid="+eventuserid
		+"&lobby="+escape(location.protocol+"//"+location.host+location.pathname)
		+"&autoreg=true&param1="+idName;
	//alert(strUrl);
	document.location.href = strUrl;
}

//added by kamal to emulate click on Mozilla 
function MozillaLinkClick(plnkNode)
{
	var bolFollowLink = true;
	var strTarget = null;
	
	// Run the link onClick event.
	if (plnkNode.onclick)
	{
		if (plnkNode.onclick() == false)
		{
		bolFollowLink = false;
		}
	}
	
	// Get the link target.
	if (plnkNode.target)
	{
		strTarget = plnkNode.target;
	}
	if (bolFollowLink)
	{
		if (strTarget == null)
		{
			// Open using the default target if not set on the link.
			window.open(plnkNode.href);
		} else {
			// Open using the link target.
			window.open(plnkNode.href, strTarget);
		}
	}
}