


if (typeof audi_ngw === 'undefined') {
  audi_ngw = {};
}
if (typeof audi_ngw.cms === 'undefined') {
  audi_ngw.cms = {};
}
if (typeof audi_ngw.cms.usertracking === 'undefined') {
  audi_ngw.cms.usertracking = {};
}


audi_ngw.cms.usertracking.onCustomEvent = function(pParameters) {
  audi_ngw.cms.usertracking.sendCustomEvent(
      pParameters.eventType,
      pParameters.eventSourceUrl,
      audi_ngw.cms.usertracking.limitedUniqueString(pParameters.eventSourceTitle,100),
      pParameters.eventTargetUrl,
      audi_ngw.cms.usertracking.limitedUniqueString(pParameters.eventTargetTitle,100),
      pParameters.eventParameters,
      pParameters.eventUserId,
      pParameters.config
  );
};


audi_ngw.cms.usertracking.sendCustomEvent = function(pType, pSourceUrl, pSourceTitle, pTargetUrl, pTargetTitle, pParamters, pUserId, pConfig) {

  
  var eventType = pType;
  var eventSourceUrl = pSourceUrl;
  var eventSourceTitle = pSourceTitle;
  var eventTargetUrl = pTargetUrl;
  var eventTargetTitle = pTargetTitle;
  var eventParameters = pParamters;
  var eventUserId = pUserId;

  
  

  

}


audi_ngw.cms.usertracking.limitedUniqueString = function(pPageTitle, pMaxLength) {
  var title = pPageTitle;
  if (title!=null && title.length > 100) {
    var hashCodeString = "_" + audi_ngw.cms.usertracking.generateHashCode(title);
    title = title.substring(0, 100 - hashCodeString.length) + hashCodeString;
  }
  return title;
}


audi_ngw.cms.usertracking.generateHashCode = function(pString) {
  var h = 0;
  if (pString!=null) {
	  var len = pString.length;
	  var maxNumber = Math.pow(2, 32);
	  for (var i = 0; i < len; i++) {
	    h = (31*h + pString.charCodeAt(i)) % maxNumber;
	  }
	}
  return h;
}


audi_ngw.config.onClickTrack = audi_ngw.cms.usertracking.onCustomEvent;
audi_ngw.config.onAjaxLoadTrack = audi_ngw.cms.usertracking.onCustomEvent;

