/**
 * NetGenesis Page Dot Script
 *
 * This javascript uses system & user-assigned variables to
 * create a meaningful entry in the page dotting webserver access
 * log.
 **/

var gFpcDom = ""; 
var gNG = new Object();
var gTZ = 2;

function pagedot()
{

		// Version 125
		// modified by e-dynamics, 24.01.2008
		
		var ng_pdver = 125;
		var pd_image = new Image();		
		
		// Set Logging Server
		var zs_server = 'zs.dhl-globalmail.com';
		
		// Inherit protocol from Web Page requested
		//
		var loggingProtocol = window.document.location.protocol;
		        
		// Get Host
		//
		var webhost = window.location.host;
		var ng_url = document.URL;
		gFpcDom = webhost;

		// host name for logging server
		//     
		var loggingHost = "//" + zs_server;
		// 
		// name of path for location of gif
		//
		var loggingContextPath = "/pagedot" ;
		//
		// the tracking server returns the 1x1 invisible gif for all gif requests.
		var loggingGif = "/zsp.gif";
		//
		
		var loggingURL = loggingProtocol
		   + loggingHost
		   + loggingContextPath 
		   + loggingGif;
		
		// variables used to bust caches
		//
		var n = new Date;
		var r1 = n.getMilliseconds();
		var r2 = Math.floor(Math.random()*12345678);
		
		// get or set FP Cookie
		//
		var ngid = ngFPC( gTZ );
		
		// get PA_JSESSIONID Session Cookie
		var beaid = ngGetCookie( "PA_JSESSIONID" );
		
		// Building the query string of tracking information passed to the Page Dot Server.
		//
		var querystr = "?";
		querystr += "ng_id="         + ngid;
		querystr += "&ng_bea="       + beaid;
		querystr += "&ng_host="      + webhost;
		querystr += "&ng_resource="  + escape(ng_url);
		querystr += "&ng_pagetitle=" + escape(window.document.title);
		querystr += "&ng_referrer="  + escape((parent.window.document.referrer==""?"-":parent.window.document.referrer));
		querystr += "&ng_lang="  + escape((navigator.appName=="Netscape"?navigator.language:navigator.userLanguage));
		
		// Collect Browser Plugins - not active
		//
		// if(navigator.appName=="Netscape"){ 
		//    querystr += "&ng_plugins=";
		//    for(var _i = 0; _i < navigator.plugins.length; _i ++)querystr += escape(navigator.plugins[_i].name)+":";
		// }else querystr += "&ng_plugins=na";
		
		querystr += "&ng_scrres=" + window.screen.width+"*"+window.screen.height;
		querystr += "&ng_scrcol="+window.screen.colorDepth;
		querystr += "&ng_cookieOK="+(navigator.cookieEnabled?"Yes":"No");
		
		
		//   Meta Tag Support
		//
		var ng_Meta;
		var ng_DocumentElements = null;
		
		if( document.all )
		{ 
		   	ng_DocumentElements = document.all.tags("meta");
		}  
		else if( document.documentElement )
		{
		   	ng_DocumentElements = document.getElementsByTagName("meta");
		} 
		
		if( ng_DocumentElements )
		{
           	for( var i=1; i<=ng_DocumentElements.length; i++ )
           	{
             		ng_Meta = ng_DocumentElements.item(i-1);
   
             		// Code to only strip out certain META TAGS WITH ngmeta_ Naming Convention
             		//
             		if( ng_Meta.name.indexOf("ngmeta_")==0 ) 
            			querystr+="&"+ ng_Meta.name + "=" + escape(ng_Meta.content);
           	}
        }
   
   
        // Collect internal Search Engine Words
        //     
        if( document.all )
        { 
           	ng_DocumentElements = document.all.tags("input");
        }  
        else if( document.documentElement )
        {
           	ng_DocumentElements = document.getElementsByTagName("input");
        } 
   
        if( ng_DocumentElements )
        {
           	for( var i=1; i<=ng_DocumentElements.length;i++ )
           	{
             		ng_Meta = ng_DocumentElements.item(i-1);
   
             		if( ng_Meta.name == "APP.origQuestion" )
             		{
             			if( ng_Meta.value.length > 0 ) 
            				querystr += "&CQQUERY=" + escape(ng_Meta.value);
            		}
             		if( ng_Meta.name == "CQQUERY" )
             		{
             			if( ng_Meta.value.length > 0 ) 
            				querystr += "&CQQUERY=" + escape(ng_Meta.value);
            		}

           	}
        }
   	
      
        querystr += "&ng_pdver=" + ng_pdver;
        querystr += "&ng_r1=" + r1 + "&ng_r2=" + r2;
   
   
        //create the dot itself
        //
        pd_image.src = loggingURL + querystr;
        
     
}



function ngGetCookie( name )
{
	var pos = document.cookie.indexOf(name+"=");
	if( pos !=-1 )
	{
		var start = pos+name.length+1;
		var end = document.cookie.indexOf(";",start);
		if( end == -1 )
		{
			end = document.cookie.length;
		}
		return unescape(document.cookie.substring(start,end));
	}
	return null;
}

function ngGetCrumb( name, crumb )
{
	var aCookie = ngGetCookie(name).split(":");
	for( var i=0; i<aCookie.length; i++ )
	{
		var aCrumb = aCookie[i].split("=");
		if( crumb == aCrumb[0] )
		{
			return aCrumb[1];
		}
	}
	return null;
}

function ngFPC( offset )
{
	if( (offset == null) || (offset == "null") )
	{
		return 0;
	}
	
	if( document.cookie.indexOf("OPTOUT=") != -1 )
	{
		return 0;
	}
	
	// Set Cookiename here
	//
	var name = "ZS_SESSIONID";
	
	var dCur = new Date();
	var adj = dCur.getTimezoneOffset()*60000*(-1);
	dCur.setTime(dCur.getTime()+adj);
	// Expiration for 1 year
	var dExp = new Date(dCur.getTime()+31536000000);
	// Expiration for 1 week 
 	// var dExp = new Date(dCur.getTime()+604800000);
	var dSes = new Date(dCur.getTime());
	
	if( document.cookie.indexOf(name+"=") == -1 )
	{
		gNG.idval = "";
		var cur = dCur.getTime().toString();
		
		for( var i=1; i<=(32-cur.length); i++ )
		{
			gNG.idval += Math.floor(Math.random()*16.0).toString(16);
		}
		
		gNG.idval += cur;
	}
	else
	{
		var id = ngGetCookie( name );

		if ( (id==null) || (id=="null") )
		{
			return 0;
		}

		gNG.idval = id;
	}

	gNG.idval = escape(gNG.idval);
	gNG.session = gNG.idval+"."+(dSes.getTime()-adj);
	
	var expiry="; expires="+dExp.toGMTString();
	
	document.cookie = name+"="+gNG.idval+expiry+"; path=/"+(((typeof(gFpcDom)!="undefined")&&(gFpcDom!=""))?("; host="+gFpcDom):(""));
	
	if( document.cookie.indexOf(name+"=") == -1 )
	{
		gNG.idval = gNG.session = "null";
	}
	
	return gNG.idval;
}


pagedot();
