/*
* Last edited by:  $Author: miazh $
*             on:  $Date: 2012/02/14 15:37:17 $
*       Filename:  $RCSfile: unica_03.js,v $
*       Revision:  $Revision: 1.17 $
*/

/*global window, document, ntptEventTag, NTPT_PGEXTRA:true */

var unicaTrackingGadget =
{
    "getEventTarget" : function (event, nodeName)
    {
	    var targetElement = null;
	    if(typeof event === "undefined")
	    {
		    event = window.event;
	    }
	    if(typeof event.target !== "undefined")
	    {
		    targetElement = event.target;
	    }
	    else
	    {
		    targetElement = event.srcElement;
	    }
	    //while(targetElement.nodeType === 3 && targetElement.parentNode !== null)
	    //{
		//    targetElement = targetElement.parentNode;
	    //}
	    while(targetElement.nodeName.toLowerCase() !== nodeName.toLowerCase() && 
	        targetElement.parentNode !== null)
	    {
		    targetElement = targetElement.parentNode;
	    }
	    return targetElement;
    }, "addLoadListener" : function (fn) 
    // end "getEventTarget" : function (event, nodeName)
    
    {
        if(typeof window.addEventListener !== "undefined")
        {
            window.addEventListener("load", fn, false);
        }
        else if(typeof document.addEventListener !== "undefined")
        {
            document.addEventListener("load", fn, false);
        }
        else if(typeof window.attachEvent !== "undefined")
        {
            window.attachEvent("onload", fn);
        }
        else
        {
            var oldFn = window.onload;
            if(typeof window.onload !== "function")
            {
                window.onload = fn;
            }
            else
            {
                window.onload = function()
                {
                    oldFn();
                    fn();
                };
            }
        }
    }, "attachEventListener" : function (target, eventType, functionRef, capture)
     // end "addLoadListener" : function (fn)
   
    
    {
        
		
		if(typeof target.addEventListener !== "undefined")
        {
            console.log(eventType);
			target.addEventListener(eventType, functionRef, capture);
        }
        else if(typeof target.attachEvent !== "undefined")
        {
            target.attachEvent("on" + eventType, functionRef);
        }
        else
        {
            eventType = "on" + eventType;
            if(typeof target[eventType] === "function")
            {
                var oldListener = target[eventType];
                target[eventType] = function()
                {
                    oldListener();
                    return functionRef();
                };
            }
            else
            {
                target[eventType] = functionRef;
            }
        }
    }, "inArray" : function (searchValue, array)  
    // end attachEventListener : function (target, eventType, functionRef, capture)
    
    {
        var index = -1;
        var i = 0;
        var len = 0;
        for(i = 0, len = array.length; i < len; i++)
        {
            if(array[i] === searchValue)
            {
                index = i;
                break;
            }
        }
        return index;
    }, "trim" : function (stringIn)
    // "inArray" : function (searchValue, array)
    
    {
        if(stringIn === "" || stringIn === null)
        {
            return "";
        }
        else
        {
            return stringIn.replace(/^\s+/, "").replace(/\s\s*$/, "");
        }
    }, "existsArray" : function (searchValue, array)
     {
       var index = -1;
       var i = 0;
       var len = 0;
       for(i = 0, len = array.length; i < len; i++)
       {
         if (array[i].indexOf(searchValue) >= 0)
         {
           index = i;
           break;
         }
       }
       return index;
     }, "setup" : function ()
     // end "trim" : function (stringIn)
    
    {
      $("a").live("click", function(){ 
            var jObj = $(this);
			var myArray = jObj.attr('name').split('|');
			var linkid,linkpos,linkvalue;
			var linkwebseg = '';
			var link = [];
			var linkweight;
			var myArrayLength = myArray.length;  							
			// IF ANCHOR clicked was in left nav do this block
			if ( jObj.parents('ul.treeGadgetRoot').length>0 ) {
				// call findParent for this anchor user clicked
				var parentStringForUnica = findParent(jObj);
				linkvalue = "left nav:" + parentStringForUnica + jQuery.trim(jObj.text());
				document.cookie="unicapagename="+jQuery.trim(jObj.text())+"; expires=Thu, 1 Nov 2083 14:45:11 UTC";
			}
			
			else { // ELSE (handle all the other a links on the page
		// Typical anchor tag metadata looks like this |pos=top+nav|id=Email 

		for(len=1;len<myArrayLength;len++){
			var myVariableArray=myArray[len].split("=");
			var myVariableArrayLength = myVariableArray.length;

			//This matches the variable with its value. like link["pos"]="top+nav" 
			for(varlen=0;varlen<myVariableArrayLength;varlen++)
			{
				link[myVariableArray[varlen]] = myVariableArray[varlen+1];
				varlen++;
			} 
		}
	 if(link['pos']){
			if(link['id']){
				linkvalue=link['pos']+":"+link['id'];
			}else{
				linkvalue=link['pos']+":"+jQuery.trim(jObj.text());
			}
		}else{ 
			if(link['id']){
				linkvalue =link['id'];
	        } else {
	        	  //linkvalue = "xx";
	            linkvalue = jObj.text();
	          }
		 }
   }

	if(typeof(linkvalue) != 'undefined' && linkvalue != null && linkvalue!=''){
		ntptEventTag('pv=0&ev=link&linkname='+jQuery.trim(encodeURIComponent(linkvalue.toLowerCase()))+linkwebseg);
	}

//	 if(typeof this != "undefined" && typeof this.href != "undefined" ){*/
 	          
                var hrefArray = [];
                var urlArray = [];
                var downloadArray = [];
                var downloadTypeArray = ["pdf","xls","ppt","csv","zip","mp3"];
                var contentArray = [];
                
                //this.href has to be defined to do this
                urlArray = jObj.attr("href").split('&');

                var url = urlArray[0];
                hrefArray = url.split('/');
                var filename=hrefArray[hrefArray.length-1];
                downloadArray = filename.split(".");
                
                // handle ssLINK links
                if (url.indexOf("ssLINK") >= 0) {
					ntptDownloadTag(filename);
                }
               // Handle estudio document links 
                if (url.indexOf("commonservice.asp") >= 0) {
                	var i1 = unicaTrackingGadget.existsArray("ContentID=", urlArray);
                  if (i1 > -1) {
                    var xContentId = urlArray[i1];
                    contentArray = xContentId.split("=");
                    ntptDownloadTag(contentArray[1]);
                  }  
                } 

                if(downloadArray.length >1)
                {
                    var downloadType = downloadArray[downloadArray.length-1];
                    // We choose to use a slightly different function for MP3s, so this logic is not applicable
                    if(downloadType==='mp3')
                    {
                        ntptEventTag('pv=0&ev=podcast&podcastname='+encodeURIComponent(filename));
                    }
                    else if(unicaTrackingGadget.inArray(downloadType, downloadTypeArray) > -1)
                    {
                        // Here we are parsing out the filename from our URL structure
                        if(downloadType==='pdf' || downloadType==='xls' || (downloadType==='csv' && url.split('fn=')[1]))
                        {
                            var queryparams=[];
                            var pdfurl=[];
                            queryparams = url.split('?');
                            if(queryparams[1])
                            {
                                pdfurl=queryparams[1].split('=');
                                if(pdfurl[1])
                                {
                                        filename=pdfurl[1];
                                }
                            }
                        }
                        
                        // clear NTPT_PGEXTRA to prevent any of the variables held within NTPT_PGEXTRA from being passed 
                        // into ntptEventTag calls 
                        if(typeof NTPT_PGEXTRA !== "undefined")
                        {
                            NTPT_PGEXTRA = "";
                        }
                        
                        // Unica function call is finally made with a "filedownload" event that passes a "filename" parameter
                        ntptDownloadTag(filename);
                        //ntptEventTag('pv=0&ev=filedownload&filename=' + unicaTrackingGadget.trim(encodeURIComponent(filename)));
                        //window.alert("handler. . .");
                    } // end if(downloadType=='mp3')
                } // end if(downloadArray.length >1)
     //          }
                return true;
	
									
	});   

    } 
}; // end unicaTrackingGadget = 

function initUnicaTrackingGadget()
{
    if(typeof unicaTrackingGadget !== "undefined")
    {
        unicaTrackingGadget.setup();
    }
} // end function initUnicaTrackingGadget()

unicaTrackingGadget.addLoadListener(initUnicaTrackingGadget);

function ntptDownloadTag(filename) {

	var n = filename.lastIndexOf('.');
	var contentId = (n >= 0) ? filename.substring(0, n) : filename;

	var xmlhttp;
	if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
		xmlhttp = new XMLHttpRequest();
	} else {// code for IE6, IE5
		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	}

	xmlhttp.onreadystatechange = function() {
		if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
			var s = xmlhttp.responseText;

			var docTitle = "";
			if (s.match(/dDocTitle=(.*)/)) {
				docTitle = unicaTrackingGadget.trim(RegExp.$1);
			}
			
			if (docTitle != "") {
				filename = docTitle + " [" + filename + "]";
			}
			ntptEventTag('pv=0&ev=filedownload&filename='
					+ unicaTrackingGadget.trim(encodeURIComponent(filename.toLowerCase())));
		}
	};

    var url = "/content/idcplg?IdcService=DOC_INFO_BY_NAME&dDocName="
		+ encodeURIComponent(contentId) + "&IsJava=1";
	if (window.location.href.indexOf("contributionemeadev02") > 0) {
	    url = "/content02/idcplg?IdcService=DOC_INFO_BY_NAME&dDocName="
			+ encodeURIComponent(contentId) + "&IsJava=1";
	}
	xmlhttp.open("GET", url, true);
	xmlhttp.send();
}

function unicaPageName(){
      var pathname = window.location.pathname;
      var urlarray = pathname.toLowerCase().split('/');
      var unicamap;

      //set the unica page variables
      if (urlarray[3] == "index.htm" || urlarray[1] == ""){
            unicamap = new Array("homepage", "main", "");
      } else if (urlarray[4] == "index.htm"){
            unicamap = new Array(urlarray[3], urlarray[3], "");
      } else if (urlarray[5] == "index.htm"){
            unicamap = new Array(urlarray[4],urlarray[3],urlarray[4]);
      } else if (urlarray[6] == "index.htm"){
            unicamap = new Array(urlarray[5],urlarray[3],urlarray[4]);      
      } else {
            unicamap = new Array(urlarray[urlarray.length-2],urlarray[3],urlarray[4]);          
      }
      return unicamap;  
  }
  
