// *******************************************************************
// Page processing code for analytics
// ------------------------------------------------------------------
// Updated: 30-NOV-2011 JAM
//
// *******************************************************************

// Process the categoryID pulled from Global Nav, if necessary
// *******************************************************************

getPageID(currentURL);							// Get core_pageID from URL
getRoleFromHeader();							// Get role name (string) from header info
pv_a1 = core_userRole;							// For Explore, assigns this attribute to user's role
// pv_a2 (user type) value assigned in footer
// pv_a3 (user ID) value assigned in footer
// pv_a4 (user Email) value assigned in footer
pv_a1 = pv_a1 + "-_-" + pv_a2 + "-_-" + pv_a3 + "-_-" + pv_a4;	// For Explore, combine all attributes into one variable

var getGlobalNav = document.getElementById("navGlobal");
// Check for no header or header with no id="navGlobal"
if (getGlobalNav == null) {
	setCategoryID(currentURL);
}

// Check if a document
else if (document.getElementById("CM_docExcerpt") || +
	document.getElementById("CM_docFull") || +
	currentURL.indexOf("/Research/Document/") != -1 || +
	currentURL.indexOf("ER/Research/Report/") != -1) {
	setCategoryID(currentURL);
}

// Check if a JForum topic page
else if (currentURL.indexOf("/forrforum/") != -1) {
	forrDiscussions();	
}

// Perform action based on currently selected Global Nav value 
else {
	var globalNavItem = getGlobalNav.getElementsByTagName("td");
	
	for (i=0; i<globalNavItem.length; i++) {
		if (globalNavItem[i].className.indexOf("current") != -1) {
			core_categoryID = globalNavItem[i].firstChild.innerHTML;
		}
	}

	switch (core_categoryID) {
		case "Analysts":
			confirmAnalysts(currentURL,core_pageID,roleName);
			break;
		case "Teleconferences":
			confirmTeleconferences(currentURL,core_pageID);
			break;
		case "Events":
			confirmEvents(currentURL,core_pageID);
			break;
		case "Consumer Data":
			confirmConsumerData(currentURL,core_pageID);
			break;
		case "Business Data":
			confirmBusinessData(currentURL,core_pageID);
			break;
		case "Executive Programs":
			core_categoryID = "ExecutivePrograms";
			cmCreatePageviewTag(core_pageID, core_categoryID, null, null, core_userRole, null, null, null, core_userType, pv_a1);
			break;
		case "Consulting":
			cmCreatePageviewTag(core_pageID, core_categoryID, null, null, core_userRole, null, null, null, core_userType, pv_a1);
			break;
		case "About Forrester":
			confirmAboutForrester(currentURL,core_pageID);
			break;
		case "Employee Tools":
			core_categoryID = "EmployeeTools";
			cmCreatePageviewTag(core_pageID, core_categoryID, null, null, core_userRole, null, null, null, core_userType, pv_a1);
			break;
		default:
			//core_categoryID = null;
			setCategoryID(currentURL);
	}
}
// *******************************************************************



// Determine pageID from URL
// *******************************************************************
function getPageID(currentURL) {
			var startPageID = 0;
			var endPageID = 0;
	
	if (core_pageID != null) {
	} else {
		// If it's the contact form, the pageID is the title of the form
		// since all contact forms are: contact.jsp?id=xxx
		if (currentURL.indexOf("forr/reg/contact.jsp?") != -1) {
			return core_pageID; // value assigned in contactknown.jsp & contactunknown.jsp
		}
		else {
			// Default PageID pulled from URL (strips .com domain and parameters)
			if (currentURL.indexOf("forrester.com/") != -1) {
				startPageID = (currentURL.indexOf(".com/") + 5);
			} else {
				startPageID = 0;
			}
		
			// Strips long URL parameters starting with a "?"
										   
			if (currentURL.indexOf("my/alerts/detail?") != -1 || +
			currentURL.indexOf("My/Bookmarks?") != -1 || +
			currentURL.indexOf("rb/Alert.jsp?") != -1 || +
			currentURL.indexOf("rb/search/results.jsp?") != -1 || +
			currentURL.indexOf("rb/search/preferences.jsp?") != -1 || +
			currentURL.indexOf("findresearch/alert/raOnlypopup?") != -1 || +
			currentURL.indexOf("findresearch/alert/popup?") != -1 || +
			// forrreg files
			currentURL.indexOf("forr/reg/loginreg.jsp?") != -1 || +
			currentURL.indexOf("forr/reg/taxonomy_wizard.jsp?") != -1 || +
			currentURL.indexOf("forr/reg/guestregform.jsp?") != -1 || +
			currentURL.indexOf("forr/reg/tailorrole.jsp?") != -1 || +
			currentURL.indexOf("forr/reg/tailorrole2.jsp?") != -1 || +
			currentURL.indexOf("forr/reg/newsletters.jsp?") != -1 || +
			currentURL.indexOf("forr/reg/regdone.jsp?") != -1 || +
			currentURL.indexOf("forr/reg/campaignlogin.jsp?") != -1 || +
			currentURL.indexOf("forr/reg/getpassword.jsp?") != -1 || +
			currentURL.indexOf("forr/reg/rbwelcome_confirmation.jsp?") != -1 || +
			currentURL.indexOf("forr/reg/Briefings.jsp?") != -1 || +
			currentURL.indexOf("forr/reg/clientactivation.jsp?") != -1 || +
			currentURL.indexOf("forr/reg/contactknown.jsp?") != -1 || +
			currentURL.indexOf("forr/reg/contactunknown.jsp?") != -1 || +
			currentURL.indexOf("forr/reg/Inquiry.jsp?") != -1 || +
			currentURL.indexOf("forr/reg/myprofile.jsp?") != -1 || +
			// Home Pages
			currentURL.indexOf("rb/research?") != -1 || +
			currentURL.indexOf("rb/generalist?") != -1 || +
			currentURL.indexOf("rb/app_dev?") != -1 || +
			currentURL.indexOf("rb/biz_process?") != -1 || +
			currentURL.indexOf("rb/cio?") != -1 || +
			currentURL.indexOf("rb/ea?") != -1 || +
			currentURL.indexOf("rb/ikm?") != -1 || +
			currentURL.indexOf("rb/it_infrastructure?") != -1 || +
			currentURL.indexOf("rb/srm?") != -1 || +
			currentURL.indexOf("rb/svm?") != -1 || +
			currentURL.indexOf("rb/cmr?") != -1 || +
			currentURL.indexOf("rb/cps?") != -1 || +
			currentURL.indexOf("rb/cxp?") != -1 || +
			currentURL.indexOf("rb/dm?") != -1 || +
			currentURL.indexOf("rb/ebiz_channel_strategy?") != -1 || +
			currentURL.indexOf("rb/im?") != -1 || +
			currentURL.indexOf("rb/ml?") != -1 || +
			currentURL.indexOf("rb/ar?") != -1 || +
			currentURL.indexOf("rb/b2bmr?") != -1 || +
			currentURL.indexOf("rb/tech_marketing?") != -1 || +
			currentURL.indexOf("rb/strategy?") != -1) { 
			
				endPageID = currentURL.indexOf("?");
			}
			
			// Strips long URL parameters starting with a ";"
			
			else if (currentURL.indexOf("forr/reg/loginreg.jsp;") != -1 || +
			currentURL.indexOf("forr/reg/Briefings.jsp;") != -1 || +
			currentURL.indexOf("forr/reg/clientactivation.jsp;") != -1 || +
			currentURL.indexOf("forr/reg/contactknown.jsp;") != -1 || +
			currentURL.indexOf("forr/reg/contactunknown.jsp;") != -1 || +
			currentURL.indexOf("forr/reg/Inquiry.jsp;") != -1 || +
			currentURL.indexOf("forr/reg/myprofile.jsp;") != -1 || +
			currentURL.indexOf("rb/research;") != -1) {
				
				endPageID = currentURL.indexOf(";");
			}
			else {
				endPageID = 255;
			}
			// returns currentURL value
			core_pageID = currentURL.substring(startPageID,endPageID);
		}
	}
	return core_pageID;
}
// *******************************************************************



// Get user's role from header (core_userRole)
// *******************************************************************
function getRoleFromHeader() {
	var getHeader = document.getElementById("header");

	if (getHeader != null && getHeader.getElementsByTagName("h1")[0]) {
		var getRoleH1 = getHeader.getElementsByTagName("h1");
		var headerRole = getRoleH1[0].className;
		
		if (headerRole.indexOf("role_") != -1) {
			switch (headerRole) {
				case "role_-1":
					core_userRole = "Anonymous";
					break;
				case "role_2":
					core_userRole = "Security & Risk";
					break;
				case "role_4":
					core_userRole = "Interactive Marketing";
					break;
				case "role_5":
					core_userRole = "Customer Intelligence";
					break;
				case "role_6":
					core_userRole = "Application Development & Delivery";
					break;
				case "role_7":
					core_userRole = "Business Process";
					break;
				case "role_8":
					core_userRole = "CIO";
					break;
				case "role_9":
					core_userRole = "Enterprise Architecture";
					break;
				case "role_10":
					core_userRole = "Content & Collaboration";
					break;
				case "role_11":
					core_userRole = "Infrastructure & Operations";
					break;
				case "role_12":
					core_userRole = "Sourcing & Vendor Management";
					break;
				case "role_13":
					core_userRole = "Customer Experience";
					break;
				//case "role_14":
					//core_userRole = "Channel Product Management";	// (eBusiness Channel Strategy)
					//break;
				case "role_15":
					core_userRole = "CMO & Marketing Leadership";
					break;
				//case "role_16":
					//core_userRole = "Market Research";	// (post-split: B2B Market Research / Market Research)
					//break;
				case "role_17":
					core_userRole = "Vendor Strategy";
					break;
				case "role_18":
					core_userRole = "Analyst Relations";
					break;
				case "role_19":
					core_userRole = "Technology Product Management & Marketing";
					break;
				case "role_20":
					core_userRole = "Generalist";
					break;
				//case "role_21":
					//core_userRole = "B2B Market Research";
					//break;
				case "role_22":
					core_userRole = "Market Research";
					break;
				case "role_23":
					core_userRole = "eBusiness & Channel Strategy";
					break;
				case "role_24":
					core_userRole = "Consumer Product Strategy";
					break;
				case "role_25":
					core_userRole = "Technology Sales Enablement";
					break;
				default:
					// if "role_" exists with unrecognized number or no number
					core_userRole = null;
			}
		}
		// If unrecognizable content is in "header" div
		else {
			core_userRole = null;
		}
	}
	// if no id="header" is present
	else {
		core_userRole = null;
	}
	return core_userRole;
}
// *******************************************************************



// Convert role name to number to append to Coremetrics categoryID
// *******************************************************************
function getRoleNumber(roleName) {

	switch (roleName) {
		case "Security &amp; Risk":
		case "Security & Risk":
			roleNumber = "_2";
			break;
		case "Interactive Marketing":
			roleNumber = "_4";
			break;
		case "Customer Intelligence":
			roleNumber = "_5";
			break;
		case "Application Development &amp; Delivery":
		case "Application Development & Delivery":
			roleNumber = "_6";
			break;
		case "Business Process":
			roleNumber = "_7";
			break;
		case "CIO":
			roleNumber = "_8";
			break;
		case "Enterprise Architecture":
			roleNumber = "_9";
			break;
		case "Content &amp; Collaboration":
		case "Content & Collaboration":
			roleNumber = "_10";
			break;
		case "Infrastructure &amp; Operations":
		case "Infrastructure & Operations":
			roleNumber = "_11";
			break;
		case "Sourcing &amp; Vendor Management":
		case "Sourcing & Vendor Management":
			roleNumber = "_12";
			break;
		case "Customer Experience":
			roleNumber = "_13";
			break;
		//case "Channel Product Management":
			//roleNumber = "_14";	// (eBusiness Channel Strategy)
			//break;
		case "CMO &amp; Marketing Leadership":
		case "CMO & Marketing Leadership":
			roleNumber = "_15";
			break;
		//case "Market Research":
			//roleNumber = "_16";	// (This is no longer in use post role split 2008)
			//break;
		case "Vendor Strategy":
			roleNumber = "_17";
			break;
		case "Analyst Relations":
			roleNumber = "_18";
			break;
		case "Technology Product Management &amp; Marketing":
		case "Technology Product Management & Marketing":
			roleNumber = "_19";
			break;
		case "Generalist":
			roleNumber = "_20";
			break;
		//case "B2B Market Research":
			//roleNumber = "_21";
			//break;
		case "Market Research":
			roleNumber = "_22";
			break;
		case "eBusiness &amp; Channel Strategy":
		case "eBusiness & Channel Strategy":
			roleNumber = "_23";
			break;
		case "Consumer Product Strategy":
			roleNumber = "_24";
			break;
		case "Technology Sales Enablement":
			roleNumber = "_25";
			break;
		default:
			roleNumber = "_noRoleSelected";
	}
	return roleNumber;
}
// *******************************************************************









// Analysts
// *******************************************************************
function confirmAnalysts(currentURL,core_pageID,roleName) {

	// if Inquiry or Briefing, change categoryID to "ContactForms"
	if (currentURL.indexOf("forr/reg/Inquiry.jsp") != -1 || currentURL.indexOf("forr/reg/Briefings.jsp") != -1) {
		core_categoryID = "ContactForms";
	}
	
	// if Analyst Profile page, get Analysts' primary role
	else if (currentURL.indexOf("rb/analyst/") != -1) {
		getRoleNumber(roleName);
		core_categoryID = "Analysts" + roleNumber;
	}
	else {
		core_categoryID = "Analysts";
	}
	cmCreatePageviewTag(core_pageID, core_categoryID, null, null, core_userRole, null, null, null, core_userType, pv_a1);
}
// *******************************************************************


// Teleconferences
// *******************************************************************
function confirmTeleconferences(currentURL,core_pageID) {
	core_categoryID = "Teleconferences"

	if (currentURL.indexOf("rb/search/results.jsp") != -1) {
		cmCreatePageviewTag(core_pageID, core_categoryID, core_searchTerm, core_searchResults, core_userRole, null, null, null, core_userType, pv_a1);
	}
	// Set Product View
	// Variables defined in VIGN: Events and Teleconferences > Events 2.0 > Events 2.0 - Event Details Component
	else if ((currentURL.indexOf("Teleconference/Overview/") != -1) || +
		(currentURL.indexOf("Teleconference/Previous/") != -1) || +
		// For new teleconference pages: April 2008
		(currentURL.indexOf("/rb/teleconference/teleconference.jsp?telid") != -1)) {
		
		cmCreateProductviewTag(core_productID, core_productName, core_categoryID);
	}
	
	// Set Page View
	else {
		cmCreatePageviewTag(core_pageID, core_categoryID, null, null, core_userRole, null, null, null, core_userType, pv_a1);
	}
}
// *******************************************************************


// Events
// *******************************************************************
function confirmEvents(currentURL,core_pageID) {
	core_categoryID = "Events"
	
	// Set Product View
	// Variables set in VIGN: Events and Teleconferences > Events 3.0 > Tabs Header
	if (currentURL.indexOf("events/eventdetail") != -1) {
		cmCreateProductviewTag(core_productID, core_productName, core_categoryID);
	}
	
	// Set Page View
	else {
		cmCreatePageviewTag(core_pageID, core_categoryID, null, null, core_userRole, null, null, null, core_userType, pv_a1);
	}
}
// *******************************************************************


// About Forrester
// *******************************************************************
function confirmAboutForrester(currentURL,core_pageID) {

	// Set Weekly Media Update form in About Forrester to ContactForms category ID
	if (currentURL.indexOf("Press/Media") != -1) {
		core_categoryID = "ContactForms";
	}
	
	// Press Releases
	else if (currentURL.indexOf("PressRelease") != -1) {
		core_categoryID = "PressReleases";
		core_pageID = "Press Releases (main page)";
	}
	else if (currentURL.indexOf("ER/Press/Release") != -1) {
		var comma = new Array();
		var commaCounter = currentURL;
		comma[0] = commaCounter.indexOf(",");
		
		for (i=1; i<=2; i++) {
			commaCounter = commaCounter.substring((comma[i-1]+1),200);
			comma[i] = (commaCounter.indexOf(",")+1);
		}
		
		var strStart = (comma[0] + comma[1])+1;
		var strEnd = (comma[0] + comma[1] + comma[2])+1;
		
		core_categoryID = "PressReleases";
		core_pageID = "Press Release " + (currentURL.substring(strStart,strEnd));
	}
	
	else {
		core_categoryID = "AboutForrester";
	}
	
	cmCreatePageviewTag(core_pageID, core_categoryID, null, null, core_userRole, null, null, null, core_userType, pv_a1);
}
// *******************************************************************


// Consumer Data
// *******************************************************************
function confirmConsumerData(currentURL,core_pageID) {
	if (currentURL.indexOf("rb/search/results.jsp") != -1) {
		setCategoryID(currentURL);
	}
	else {
		core_categoryID = "ConsumerData";
		cmCreatePageviewTag(core_pageID, core_categoryID, null, null, core_userRole, null, null, null, core_userType, pv_a1);
	}
}
// *******************************************************************


// Business Data
// *******************************************************************
function confirmBusinessData(currentURL,core_pageID) {
	if (currentURL.indexOf("rb/search/results.jsp") != -1) {
		setCategoryID(currentURL);
	}
	else {
		core_categoryID = "BusinessData";
		cmCreatePageviewTag(core_pageID, core_categoryID, null, null, core_userRole, null, null, null, core_userType, pv_a1);
	}
}
// *******************************************************************


// Other Pages (When Global Nav = Research tab, popups, or no header/footer)
// *******************************************************************
function setCategoryID(currentURL) {

	var isHomePage = document.getElementById("sniffHP");
	var allLinks = document.getElementsByTagName("a");

	// Assign category to HomePages
	if (isHomePage) {
		var getHeader = document.getElementById("header");
		var getRoleH1 = getHeader.getElementsByTagName("h1");
		var roleClassName = getRoleH1[0].className;
		var roleNumber = roleClassName.substring(4,7);
		core_categoryID = "HomePages" + roleNumber;
	}
	
	// For blogs.forrester.com sites
	else if (currentURL.indexOf("blogs.forrester.com") != -1) {
		core_userRole = null;
		if (core_pageID == "" || core_pageID == null) {
			core_pageID = "blogs.forrester.com";
		}
	}		
	
	// Assign category to ContactForms
	else if (currentURL.indexOf("forr/reg/contact.jsp?") != -1 || +
	currentURL.indexOf("My/Contacts") != -1) {
		core_categoryID = "ContactForms";
	}
	
	// Assign category to AccountManagement
	else if (currentURL.indexOf("rb/myaccount/myaccount.jsp") != -1 || +
	currentURL.indexOf("my/alerts/list") != -1 || +
	currentURL.indexOf("rb/search/preferences.jsp") != -1 || +
	currentURL.indexOf("My/Bookmarks") != -1 || +
	currentURL.indexOf("my/alerts/detail") != -1 || +
	currentURL.indexOf("rb/Alert.jsp") != -1 || +
	currentURL.indexOf("findresearch/alert/popup?") != -1 || +
	currentURL.indexOf("findresearch/alert/popup/save") != -1 || +
	currentURL.indexOf("findresearch/alert/raOnlypopup?") != -1 || +
	currentURL.indexOf("findresearch/alert/raOnlypopup/save") != -1 || +
	currentURL.indexOf("alerts/alertPopup.jsp") != -1 || +
	currentURL.indexOf("alertsandnewsletters.jsp") != -1 || +
	currentURL.indexOf("forr/reg/") != -1) {
		core_categoryID = "AccountManagement";
	}
	
	// Assign category to Events
	else if (currentURL.indexOf("events/emailEvent") != -1 || +
	currentURL.indexOf("events/emailEventSave") != -1 || +
	currentURL.indexOf("Speaker_Bio/") != -1 || +
	currentURL.indexOf("events/agendabyday/print") != -1 || +
	currentURL.indexOf("events/agendabytrack/print") != -1 || +
	currentURL.indexOf("Events/Email/Popup") != -1 || +
	currentURL.indexOf("Events/Email/Save/Popup") != -1) {
		core_categoryID = "Events";
	}
	
	// Assign category to Teleconferences
	else if (currentURL.indexOf("Events/Email/Popup") != -1 || +
	currentURL.indexOf("Events/Email/Save/Popup") != -1) {
		core_categoryID = "Teleconferences";
	}
	
	// Assign category to AboutForrester
	else if (currentURL.indexOf("ER/Company/Locations") != -1 || +
	currentURL.indexOf("ER/Company/ExecProfiles") != -1 || +
	currentURL.indexOf("ER/Investor/FactSheet") != -1 || +
	currentURL.indexOf("ER/Investor/FactSheet/Email/Save") != -1 || +
	currentURL.indexOf("ER/Glossary") != -1 || +
	currentURL.indexOf("rb/copyright.jsp") != -1) {
		core_categoryID = "AboutForrester";
	}
	
	// Search Results Page 
	else if (currentURL.indexOf("rb/search/results.jsp") != -1) {
		core_categoryID = "Search";
	}
	
	// MiniSites
	else if (currentURL.indexOf("Groundswell") != -1) {
		core_categoryID = "Minisites_2";	
	}
	
	// Marketing Campaigns
	else if (currentURL.indexOf("Marketing/Campaign") != -1) {
		core_categoryID = "Campaign";
	}		
	
	// If no Category ID specified, set to null
	else {
		if (core_categoryID == "" || core_categoryID == null) {
			core_categoryID = "_noCategory";
		}
	}
	
	
	
	
	// DOCUMENTS ----
	// Doc meta ID (core_productID) and Doc title (core_productName) values are declared
	// in the document template
	
	if (document.getElementById("CM_docPrimaryRole")) {
		core_docRoleID = getRoleNumber(document.getElementById("CM_docPrimaryRole").innerHTML);
	} else {
		core_docRoleID = "_unknown"	
	}
	
	// Throw tag for Product View if Doc Excerpt
	if (document.getElementById("CM_docExcerpt") || +
		currentURL.indexOf("/Research/Document/Excerpt/") != -1 || +
		currentURL.indexOf("ER/Research/Report/Summary/") != -1) {
		
		if (document.getElementById("CM_docExcerpt")) {
			core_categoryID = "DocExcerpts" + core_docRoleID;
		} else {
			// For older docs
			core_categoryID = "DocExcerpts_" + core_docRoleID;
		}
		core_productName = "Excerpt: " + core_productName;
		cmCreateProductviewTag(core_productID, core_productName, core_categoryID);
	}

	// Check for permissioned Document
	else if (document.getElementById("CM_docFull") || +
		currentURL.indexOf("/Research/Document/") != -1 || +
		currentURL.indexOf("ER/Research/Report/") != -1) {
		
		if (document.getElementById("CM_docFull")) {
			core_categoryID = "Documents" + core_docRoleID;
		} else {
			// For older docs
			core_categoryID = "Documents_" + core_docRoleID;
		}
		
		
		// For figure-inside-a-doc and standalone figure views
		
		var metaTags = document.getElementsByTagName("meta");
		var isStandalone = new Boolean(false);
		// Check if it's a standalone figure
		for (m=0;m<metaTags.length;m++) {
			if (metaTags[m].name == "TITLE") {
				var tempFigureName = metaTags[m].content;
			} else if (metaTags[m].content = "Standalone Figures") {
				isStandalone = true;
			}
		}
		
		if (currentURL.indexOf("#figure") != -1) {
			core_figureName = getFigureName();			
			core_pageID = "DocFigure: (" + core_productID + ") " + core_figureName;
		} else if (isStandalone == true) {
			core_figureName = tempFigureName;
			core_pageID = "DocFigure: (" + core_productID + ") " + core_figureName;
		} else {
			// If it's a regular doc view
			core_pageID = "Doc: " + core_productName + " (" + core_productID + ")";
		}
		cmCreatePageviewTag(core_pageID, core_categoryID, null, null, core_userRole, null, null, null, core_userType, pv_a1);
	}
	
	// Check for Printer Friendly Document
	else if (currentURL.indexOf("/Research/Print/Document/") != -1 || currentURL.indexOf("ER/Print/Research/Report/") != -1) {
		core_pageID = "Print: " + core_productName + " (" + core_productID + ")";
		core_categoryID = "Documents_" + core_docRoleID;
		cmCreatePageviewTag(core_pageID, core_categoryID, null, null, core_userRole, null, null, null, core_userType, pv_a1);
	}
	
	// check for forresterbenchmarks.com
	else if (currentURL.indexOf("forresterbenchmarks.com") != -1) {
		core_pageID = currentURL.replace("http://", "");
		core_categoryID = "Benchmark";
		cmCreatePageviewTag(core_pageID, core_categoryID, null, null, core_userRole, null, null, null, core_userType, pv_a1);
	}
	
	
	
	
	// Check for error pages
	else if (document.getElementById("sniffError")) {
		core_categoryID = "Errors";
		cmCreatePageviewTag(core_pageID, core_categoryID, null, null, null, null, null, null, core_userType, pv_a1);
	}
	
	// Change pageID for campaignlogin.jsp Login and Profile pages (they share the same URL)
	else if (currentURL.indexOf("/forr/reg/campaignlogin.jsp") != -1) {
		// Login page
		if (document.getElementById("campaignregform")) {
			core_pageID = core_pageID + "(loginPage)"
		}
		// Profile page
		else if (document.getElementById("regform")) {	
			core_pageID = core_pageID + "(profilePage)"				
		}
		cmCreatePageviewTag(core_pageID, core_categoryID, null, null, null, null, null, null, core_userType, pv_a1);
	}
	

	// Throw default Page View tag
	else {
		cmCreatePageviewTag(core_pageID, core_categoryID, core_searchTerm, core_searchResults, core_userRole, null, null, null, core_userType, pv_a1);
	}
}
// *******************************************************************




// Gets a figure number (e.g., "figure2") from a URL
// *******************************************************************
function getFigureNumber(URL) {
	var figNumStart = (URL.indexOf("#figure")+1);
	var figNumEnd = (URL.indexOf("#figure")+9);
	var figureNum = URL.substring(figNumStart,figNumEnd);
	return figureNum;
}
// *******************************************************************


// Gets a figure title
// *******************************************************************
function getFigureName() {
	var allLinks = document.getElementsByTagName("a");
	var figureNumber = getFigureNumber(currentURL);
	var figureName;
	
	for (q=0;q<allLinks.length;q++) {
		if (allLinks[q].name.indexOf(figureNumber) != -1) {
			// Calls nextSibling function from globalFooter.js
			figureName = nextSibling(allLinks[q]).innerHTML;
			break;
		} else {
			// If requested figure number does not exist
			figureName = figureNumber + " does not exist";
		}
	}
	return figureName;
}
// *******************************************************************




// Tracking Charts & Figures downloads from search results
// *******************************************************************
function applyTrackFigureDL() {
	if ((currentURL.indexOf("rb/search/results.jsp") != -1) && (document.getElementById("radio133005").checked == true)) {
	// Checks if you're on the search results page and if the "Charts & Figures" radio button is selected
		var allLinks = document.getElementsByTagName("a");
		for (i=0;i<allLinks.length;i++) {
			if (allLinks[i].className == "xls" || allLinks[i].className == "ppt") {
				allLinks[i].onclick = function(){trackFigureDL(this.parentNode.parentNode, this.className, this.href);};
			}
		}	
	}
}
applyTrackFigureDL();

function trackFigureDL(searchResult, fileType, linkHref) {
	var figureNumber;
	var core_figureName;
	
	// Get the figure number (e.g., "figure2")
	var allSRlinks = searchResult.getElementsByTagName("a");
	for (i=0;i<allSRlinks.length;i++) {
		if (allSRlinks[i].href.indexOf("#figure") != -1) {
			figureNumber = getFigureNumber(allSRlinks[i].href);
		}
	}
	
	// Get the doc ID
	var docIDstart = linkHref.lastIndexOf("/")+1;
	var docIDend = docIDstart+5;
	core_productID = linkHref.substring(docIDstart,docIDend);

	// Get the figure name from the innerHTML of the first link (<a>) in the search result
	core_figureName = allSRlinks[0].innerHTML;
	core_figureName = figureNumber.replace('figure','Figure ') + ": " + core_figureName.trim();
	core_pageID = "DocFigure: (" + core_productID + ") " + core_figureName + " (" + fileType + ") SR";
	cmCreatePageviewTag(core_pageID, "Documents", null, null, core_userRole, null, null, null, core_userType, pv_a1);
} 	




// Tracking Figures downloads (PPT/XLS) from inside a document
// *******************************************************************
function applyTrackDocFigureDL() {
	if (document.getElementById("CM_docFull")) {
		var allLists = document.getElementsByTagName("ul");
		for (i=0;i<allLists.length;i++) {
			if (allLists[i].className == "downloadFigure") {
				var figLinks = allLists[i].getElementsByTagName("a");
				for (j=0;j<figLinks.length;j++) {
					figLinks[j].onclick = function() {trackDocFigureDL(this.href);};
				}
			}
		}
	}
}
applyTrackDocFigureDL();

function trackDocFigureDL(linkHref) {
	
	// Get the figure number
	var figNumStart = linkHref.indexOf("_")+1;
	var figNumEnd = linkHref.length-4;	
	var figureNum = linkHref.substring(figNumStart,figNumEnd);
	
	// Get the DL file's filetype
	var fileTypeStart = linkHref.lastIndexOf(".")+1; 
	var fileTypeEnd = fileTypeStart+3;
	var fileType = linkHref.substring(fileTypeStart,fileTypeEnd);

	// Find the h4 that contains the figure number in its innerHTML
	var h4s = document.getElementsByTagName("h4");
	for (i=0;i<h4s.length;i++) {
		if (h4s[i].innerHTML.indexOf("Figure " + figureNum + ":") != -1) {
			core_figureName = h4s[i].innerHTML
			break;
		}
	}
	
	core_pageID = "DocFigure: (" + core_productID + ") " + core_figureName.trim() + " (" + fileType + ") DOC";
	cmCreatePageviewTag(core_pageID, core_categoryID, null, null, core_userRole, null, null, null, core_userType, pv_a1);
}

// *******************************************************************

