//client id and analytics domain will need to change from client to client and in test vs production

cmSetClientID('90375594',true,'data.coremetrics.com','childrens.com');

var cmStoreSearchTerm;
var cmStoreSearchResults;

dojo.subscribe("com.ibm.portal.search.RESULTS_ANALYTICS", function(e)
{
	// enable this statement for debugging
	console.log( "*** search term was '" + e.query
	 + "' with " + e.results
	 + " results in scope '" + e.scope.label + "' (" +
	 e.scope.id + ")"
	 );
	cmStoreSearchTerm=e.query;
	cmStoreSearchResults=e.results;
});


dojo.addOnLoad(function (){

	//Gather page id from Portal page title If undefined, set to null so Coremetrics will set default pageid
	//Get page category id from Portal Page metadata
	//Look for search term and pass in pageview tag if available

	LinkList;

	var pageID=new Array();
	getElementHTMLByClassName("span","asa.page.title",pageID);

	var cm_attributes;
	var cm_attrib=new Array();
	
	if(typeof(ibm_page_metadata) !== "undefined"){
		if (ibm_page_metadata.attributes){
			cm_attrib=ibm_page_metadata.attributes.split("-_-");
		}
	}

	var pageWSPID=new Array();
	getElementHTMLByClassName("span","asa.page.id",pageWSPID);
	if (pageWSPID[0]){
		cm_attrib[39]=pageWSPID[0];
	}

	var pageURL=new Array();
	getElementHTMLByClassName("span","asa.url",pageURL);
	if (pageURL[0]){
		var Starter=0;
		if (pageURL[0].length>100){
			Starter=pageURL[0].length-100;	
		}
		cm_attrib[40]=pageURL[0].substring(Starter);
	}

    var breadcrumb=new Array();
	getElementHTMLByClassName("span","asa.page.breadcrumb",breadcrumb);
	if (breadcrumb[0]){
		cm_attrib[41]=breadcrumb[0];
	}

	cm_attributes=cm_attrib.join("-_-");
	
	if(typeof(ibm_page_metadata) !== "undefined"){
		if (ibm_page_metadata.PageCatID){
			var catID;
			catID=ibm_page_metadata.PageCatID;
		}
	}
	//this allows WSP version 6 to pull the category id from a js variable, cm_PageCatID set on the page. This would allow any version to use the variable as an override to the standard category.
	//If they wanted to for whatever reason
	if (parent.cm_PageCatID){
		var catID=cm_PageCatID;
	}	

	if (!cmStoreSearchTerm){
		cmStoreSearchTerm=null;
	}
	if (!cmStoreSearchResults){
		cmStoreSearchResults=null;
	}
	cmCreatePageviewTag(pageID[0],catID,cmStoreSearchTerm,cmStoreSearchResults,cm_attributes);

	//capture portlet titles and generate element tags for each portlet
	var portletTitles = new Array();
	getElementHTMLByClassName("span", "asa.portlet.title", portletTitles);

	var portletIDs = new Array();
	getElementHTMLByClassName("span", "asa.portlet.id", portletIDs);

	for (var i=0;i<portletTitles.length ;i++ )
	{
		if (portletTitles[i]!='' && portletTitles[i])
		{
	       	cmCreateElementTag(pageID[0]+"-"+portletTitles[i],portletTitles[i]);
		}
	}

	//Generate a registration tag on the first page of a session where the Portal visitorID exists.  Set cmReg to prevent multiple
	//registration tags in same session

	var visitorID=new Array();
	getElementHTMLByClassName("span","asa.visitor",visitorID);
	if (cI("cmReg") != 'Y' && visitorID[0]) {
		if(typeof(ibmCfg) !== "undefined"){
			cmCreateRegistrationTag(visitorID[0],null,null,null,null,null,ibmCfg.userName);
		}
		document.cookie = "cmReg=Y; path=/";
	}
});

function trim11 (str) {
	str = str.replace(/^\s+/, '');
	for (var i = str.length - 1; i >= 0; i--) {
		if (/\S/.test(str.charAt(i))) {
			str = str.substring(0, i + 1);
			break;
		}
	}
	return str;
}

function getElementHTMLByClassName(strTagName, strClassName, arrReturnElements){
    var arrElements = document.getElementsByTagName(strTagName);
    strClassName = strClassName.replace(/\-/g, "\\-");
    var regex = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
    var elem;
    for(var i = 0; i < arrElements.length; i++){
        elem = arrElements[i];
        if(regex.test(elem.className)){
            arrReturnElements.push(elem.innerHTML);
        }
    }
    return (arrReturnElements)
}

//Because normalization of portal links does not provide unique href values, the inner html of the link is hashed and used as the name value in the link click tag
function LinkList() {
	for (i=0; i<document.links.length; i++) {
		if (document.links[i].name==""){
			if (document.links[i].innerHTML){
				document.links[i].name=cm_hex_sha1(document.links[i].innerHTML);
			} else {
				document.links[i].name=cm_hex_sha1("_Link"+i);
			}
		}
	}
}

