/* This script has to be referenced somewhere in your web page. I recomend 
   placing this script snippet at the beginning of the page.

  <script src="/js/tracker.js" type="text/javascript"></script>
      
*/

var AjaxTracker = new AjaxHelper();

var AlpsTracker = {
 url:'/forms/eventtracking', 
/**
 * send ajax request to EventTracking servlet to track clicking url in alps and write log file in frotend 
 * 
 * @param {String} eventName The name of action to write in alps, depends on clicking url, for example: clickToChat
 */ 
  trackLink: function(eventName) {
    var params = "alpsconv=true&event=" + eventName;  
    AjaxObject.getReq().open("GET", this.url + "?" + params); 
    AjaxObject.getReq().send(null); 
  }
};

var TuTracker = {
 url:'/forms/eventtracking', 
/**
 * send ajax request to EventTracking servlet to track clicking event and write log file in frotend 
 * 
 * @param {String} eventName The name of action, depends on clicking url, for example: tuClick
 */ 
  trackLink: function(eventName) {
    var params = "event=" + eventName;  
    AjaxObject.getReq().open("GET", this.url + "?" + params); 
    AjaxObject.getReq().send(null); 
  }
};

var AlpsCompTracker = {
 url:'/forms/eventtracking', 
/**
 * send ajax request to EventTracking servlet to track clicking event and write log file in frotend 
 * also requests Alps with the Component name specified as param
 * 
 * @param {String} eventName The name of action, depends on clicking url, for example: tuClick
 * @param {String} alpsComponentName The name of alpsComponent name which will ve requested from Alps
 */ 
  trackLink: function(eventName, alpsComponentName) {
    var params = "event=" + eventName + "&alpscompname=" + alpsComponentName;
    var hiddenEl = document.getElementsByName('H');
    if (hiddenEl && hiddenEl[0]) {
        var hiddenValue = escape(hiddenEl[0].value);
        hiddenValue = replaceAllInText(hiddenValue, "+", "%2B");
        params +='&H=' + hiddenValue;
     }
    AjaxObject.getReq().open("POST", this.url, false); 
    AjaxObject.getReq().setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
    AjaxObject.getReq().setRequestHeader("Cache-Control", "no-cache"); 
  
    AjaxObject.getReq().send(params);
  }
};


var DdiTracker = {
 url:'/forms/eventtracking', 
/**
 * send ajax request to EventTracking servlet to track clicking event and write log file in frotend 
 * 
 * @param {String} eventName The name of action, depends on clicking url, for example: ddiReminder
 */ 
  trackLink: function(eventName) {
    var params = "event=" + eventName;  
    AjaxObject.getReq().open("GET", this.url + "?" + params); 
    AjaxObject.getReq().send(null); 
  }
};

function replaceAllInText(strText, strTarget, replacement) {
        var intIndexOfMatch = strText.indexOf(strTarget);
        while (intIndexOfMatch >= 0) {
            strText = strText.replace(strTarget, replacement);
            intIndexOfMatch = strText.indexOf(strTarget);
        }
        return strText;
}
