/*
 WebTrends Extension Code (WT 8.6+)
 - WebTrends dcsAdSearch() function
 - WebTrends dcsCleanTrack() function

Copyright (c) 2010, Unic AG. All rights reserved.
All code licensed under the BSD License:
BSD License (http://www.opensource.org/licenses/bsd-license.html)
Version: 0.1.8
*/

WebTrends.prototype.dcsAdSearch=function(){
	if (document.links){
		var param=this.adclickparam+"=";
		var paramlen=param.length;
		var paramre=new RegExp(param,"i");
		var len=document.links.length;
		var pos=end=-1;
		var anch=urlp=value="";
		var urlpre;
		var url=document.URL+"";
		var start=url.search(paramre);
		var adArray = [];
		if (start!=-1){
			end=url.indexOf("&",start);
			urlp=url.substring(start,(end!=-1)?end:url.length);
			urlpre=new RegExp(urlp+"(&|#)","i");
		}
		for (var i=0;i<len;i++){
			if (document.links[i].href){
				anch=document.links[i].href+"";
				if (urlp.length>0){
					anch=anch.replace(urlpre,"$1");
				}
				pos=anch.search(paramre);
				if (pos!=-1){
					start=pos+paramlen;
					end=anch.indexOf("&",start);
					value=anch.substring(start,(end!=-1)?end:anch.length);
					if (!adArray[value]){
						this.WT.ad=this.WT.ad?(this.WT.ad+";"+value):value;
						adArray[value]=true;
					}
				}
			}
		}
	}
}

function dcsCleanTrack(args){ 
  // saving old arrays
  var DCSold    = _tag.DCS;
  var WTold     = _tag.WT;
  var DCSextold = _tag.DCSext;

  // manual clearing of parameters 
  _tag.dcsCleanUp();    

  // set standard parameter
  // standard will be overwritten if parameter is set
  _tag.DCS.dcssip      = DCSold.dcssip;
  _tag.DCS.dcsuri      = DCSold.dcsuri;
  _tag.DCS.dcsaut      = DCSold.dcsaut;
  _tag.WT.ti           = WTold.ti;
  _tag.WT.es           = WTold.es;
  _tag.WT.cg_n         = WTold.cg_n;
  _tag.WT.cg_s         = WTold.cg_s;
  _tag.DCSext.cg_b     = DCSextold.cg_b;
  _tag.DCSext.hb_app   = DCSextold.hb_app;
  _tag.DCSext.hb_markt = DCSextold.hb_markt;

  // call dcsMultiTrack with applied arguments
  dcsMultiTrack.apply(this, arguments);

  // restoring old arrays
  _tag.DCS    = DCSold;
  _tag.WT     = WTold;
  _tag.DCSext = DCSextold;
}
 
