/***********************************************************
 * WebStatistics - Script
 *
 * Copyright by Josef Witt GmbH, Weiden
 * 
 * $Id: statistics.js 79801 2011-08-04 11:50:15Z stekop $
 ***********************************************************/

// ------------------------
// global definitions
// ------------------------
var specialParams = new Array();		// special parameters are added to parameter list (like searchPhrase, ...)

var LANDMARK_IMAGE_PATH = "/static/img/statistics/blind.jn";
var STATISTIC_COOKIE_NAME = "statistikcookie";
var STATISTIC_COOKIE_EXPIRE_DAYS = "30";
var SPECIAL_PARAMETER_SEPERATOR = "/";

var RETURNVALUE_NOT_DEFINED = "NA";

// ------------------------
// read cookie
// ------------------------
function getStatisticCookie() {

	value = readCookie(STATISTIC_COOKIE_NAME);

	if(value != null) {
		return value;
	}
	else {
	  // cookie holds time in milliseconds and the sessionid
		
	  // get time
	  date = new Date();
	  year = date.getFullYear();
	  month = date.getMonth() + 1;
	  day = date.getDate();
	  hour = date.getHours();
	  minute = date.getMinutes();
	  second = date.getSeconds();
	  date = Date.UTC(year, month, day, hour, minute, second);
	  
	  // write cookie
	  writeCookie(STATISTIC_COOKIE_NAME, date + removeStickySessionParameterFromSessionId(getSessionId()), STATISTIC_COOKIE_EXPIRE_DAYS);
	  // DEBUG: alert("Cookie " + STATISTIC_COOKIE_NAME + " written");
	  // DEBUG: alert("Cookie " + STATISTIC_COOKIE_NAME + " has value " + Cookie readCookie(STATISTIC_COOKIE_NAME));
      return readCookie(STATISTIC_COOKIE_NAME);
	}	
}


// -------------------------------
// convert returnvalue
// -------------------------------
function getReturnValue(value) {
	if (null != value && "" != value) {
		return value;
	}
	else {
		return RETURNVALUE_NOT_DEFINED;
	}
}

//-------------------------------
// add special parameters
//-------------------------------
function addSpecialParameter(key, value) {		
	specialParams.push(key);	
	specialParams.push(value);	
}

//-------------------------------
// get complete parameter list
//-------------------------------
function getParameterList() {	
	parameterlist = "";
	parameters = getParameterString();
	
	// add standard parameterlist from URL
	if (null != parameters) {
		parameterlist = parameters;		
	}
	
	// add special parameters (like searchPhrase, ...)
	if (specialParams.length > 0) {
		if (parameterlist.length > 0) {
			// add seperator if needed
			parameterlist = parameterlist + SPECIAL_PARAMETER_SEPERATOR;
		}
		parameterlist = parameterlist + specialParams.join(SPECIAL_PARAMETER_SEPERATOR);		
	}
		
	if (parameterlist.length > 0) {
		return parameterlist;
	}
	
	return null;
}

//-------------------------------
// remove sticky session part
// of sessionid 
//-------------------------------
function removeStickySessionParameterFromSessionId(sessionId) {
	if (sessionId != null) {
		position1 = sessionId.indexOf('.shop');
		position2 = sessionId.indexOf('.stseid');
		if (position1 > 0) {
			sessionId = sessionId.substring(0, position1);
			return sessionId;
		}

		if (position2 > 0) {
			sessionId = sessionId.substring(0, position2);		
			return sessionId;
		}
	}
	return sessionId;
}

// -------------------------------
// build landmark
// -------------------------------
function getLandmark(context, userIdentificationNumber) {		
	image = 			"<img src=\"" + LANDMARK_IMAGE_PATH;
	image_end = 		"\" width=\"1\" height=\"1\">";
	beginn = 			"?";
	trenner = 			"&";
	session = 			"SessionID=" + getReturnValue(getSessionId());
	gw = 				"Gewinnungsweg=" + getReturnValue(getGwParameter());
	page = 				"Pagename=" + getReturnValue(getCalledHTMLPage());
	host = 				"Host=" + getReturnValue(getHost());
	protocol = 			"Protocol=" + getReturnValue(getProtocol());
	cookie = 			"StatisticCookie=" + getReturnValue(getStatisticCookie());
	person = 			"UserIdentifier=" + userIdentificationNumber;
	resol = 			"ScreenResolution=" + getReturnValue(getResolution());
	browserEngine = 	"BrowserEngine=" + getReturnValue(getBrowserEngine());
	browserName = 		"BrowserName=" + getReturnValue(getBrowserName());
	browserVersion = 	"BrowserVersion=" + getReturnValue(getBrowserVersion());
	browserLanguage = 	"BrowserLanguage=" + getReturnValue(getBrowserLanguage());
	userAgent = 		"UserAgent=" + getReturnValue(getUserAgent());
	systemPlatform = 	"SystemPlatform=" + getReturnValue(getSystemPlatform());
	cpuClass = 			"CpuClass=" + getReturnValue(getCpuClass());
	cookiesEnabled = 	"CookiesEnabled=" + getReturnValue(cookiesEnabled());
	flashPlugin =		"FlashPluginInstalled=" + getReturnValue(flashInstalled());
	flashVersion =		"FlashPluginVersion=" + getReturnValue(getFlashVersion());
	parameterlist = 	"Parameterlist=" + getReturnValue(getParameterList());
	pathDecoration = 	"PathDecoration=" + getReturnValue(getPathDecoration())
	referrer = 			"Referrer=" + getReturnValue(getReferrer())
	paramend = 			"end_of_list";
	
	landmark = image 
			 + beginn 
			 + session + trenner 
			 + gw + trenner 
			 + page + trenner 
			 + host + trenner 
			 + protocol + trenner 
			 + cookie + trenner 
			 + person + trenner 
			 + browserEngine + trenner 
			 + browserName + trenner 
			 + browserVersion + trenner 
			 + browserLanguage + trenner 
			 + systemPlatform + trenner 
			 + cpuClass + trenner 
			 + cookiesEnabled + trenner
			 + flashPlugin + trenner
			 + flashVersion + trenner
			 + resol + trenner 
			 + parameterlist + trenner 
			 + pathDecoration + trenner
			 + userAgent + trenner
			 + referrer + trenner
			 + paramend 
			 + image_end;

	// DEBUG: alert(landmark);
	return landmark;
}

