// Deklaration der Variablen
var gImages=new Array;
var gIndex=0;
var DCS=new Object();
var WT=new Object();
var DCSext=new Object();
var gQP=new Array();
var strHost='lol.de.kworld.kpmg.com';

// START OF general functions
// Copyright (c) Pietsch, Stefan
// V1
// $DateTime: 2007/02/20 09:30:16 $

function getCurrentFunction(calleeStr)
{
  calleeStr = calleeStr.substr('function '.length);
  calleeStr = calleeStr.substr(0, calleeStr.indexOf('('));
	return calleeStr;
}

function getErrorMessage(objErr,StrCallee)
{
	var ErrorText = "";
	
	ErrorText="There was an error in " + getCurrentFunction(StrCallee) + " .\n\n";
  ErrorText+="Error description: \n" + objErr.description + "\n\n";
  alert(ErrorText);
}

function Left(str, n)
{
	try
	{
		if (n <= 0)
		    return "";
		else if (n > String(str).length)
		    return str;
		else
		    return String(str).substring(0,n);
	}
	catch (err)
  {
      getErrorMessage(err, arguments.callee.toString());
  }	
}

function Right(str, n)
{
	try
	{	
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
  }
	catch (err)
  {
      getErrorMessage(err, arguments.callee.toString());
  }	
}

// END OF general functions

// START OF SDC Advanced Tracking Code
// Copyright (c) 1996-2009 WebTrends Inc.  All rights reserved.
// V8.0
// $DateTime: 2007/02/20 09:30:16 $

var gService = false;
var gTimeZone = 1;
// Code section for Enable First-Party Cookie Tracking
function dcsCookie(){
	if (typeof(dcsOther)=="function"){
		dcsOther();
	}
	else if (typeof(dcsPlugin)=="function"){
		dcsPlugin();
	}
	else if (typeof(dcsFPC)=="function"){
		dcsFPC(gTimeZone);
	}
}

function dcsGetCookie(name){
	var cookies=document.cookie.split("; ");
	var cmatch=[];
	var idx=0;
	var i=0;
	var namelen=name.length;
	var clen=cookies.length;
	for (i=0;i<clen;i++){
		var c=cookies[i];
		if ((c.substring(0,namelen+1))==(name+"=")){
			cmatch[idx++]=c;
		}
	}
	var cmatchCount=cmatch.length;
	if (cmatchCount>0){
		idx=0;
		if ((cmatchCount>1)&&(typeof(gFpc)!="undefined")&&(name==gFpc)){
			var dLatest=new Date(0);
			for (i=0;i<cmatchCount;i++){
				var lv=parseInt(dcsGetCrumb(cmatch[i],"lv"));
				var dLst=new Date(lv);
				if (dLst>dLatest){
					dLatest.setTime(dLst.getTime());
					idx=i;
				}
			}
		}
		return unescape(cmatch[idx].substring(namelen+1));
	}
	else{
		return null;
	}
}

function dcsGetCrumb(cval,crumb){
	var aCookie=cval.split(":");
	for (var i=0;i<aCookie.length;i++){
		var aCrumb=aCookie[i].split("=");
		if (crumb==aCrumb[0]){
			return aCrumb[1];
		}
	}
	return null;
}

function dcsGetIdCrumb(cval,crumb){
	var id=cval.substring(0,cval.indexOf(":lv="));
	var aCrumb=id.split("=");
	for (var i=0;i<aCrumb.length;i++){
		if (crumb==aCrumb[0]){
			return aCrumb[1];
		}
	}
	return null;
}

function dcsIsFpcSet(name,id,lv,ss){
	var c=dcsGetCookie(name);
	if (c){
		return ((id==dcsGetIdCrumb(c,"id"))&&(lv==dcsGetCrumb(c,"lv"))&&(ss=dcsGetCrumb(c,"ss")))?0:3;
	}
	return 2;
}

function dcsFPC(offset){
try
{
	if (typeof(offset)=="undefined"){
		return;
	}
	if (document.cookie.indexOf("WTLOPTOUT=")!=-1){
		return;
	}

	var name=gFpc;
	var dCur=new Date();
	var adj=(dCur.getTimezoneOffset()*60000)+(offset*3600000);
	dCur.setTime(dCur.getTime()+adj);
	var dExp=new Date(dCur.getTime()+315360000000);
	var dSes=new Date(dCur.getTime());
	WT.co_f=WT.vt_sid=WT.vt_f=WT.vt_f_a=WT.vt_f_s=WT.vt_f_d=WT.vt_f_tlh=WT.vt_f_tlv="";
	if (document.cookie.indexOf(name+"=")==-1){
		if ((typeof(gWtId)!="undefined")&&(gWtId!="")){
			WT.co_f=gWtId;
		}
		else if ((typeof(gTempWtId)!="undefined")&&(gTempWtId!="")){
			WT.co_f=gTempWtId;
			WT.vt_f="1";
		}
		else{
			WT.co_f="2";
			var cur=dCur.getTime().toString();
			for (var i=2;i<=(32-cur.length);i++){
				WT.co_f+=Math.floor(Math.random()*16.0).toString(16);
			}
			WT.co_f+=cur;
			WT.vt_f="1";
		}
		if (typeof(gWtAccountRollup)=="undefined"){
			WT.vt_f_a="1";
		}
		WT.vt_f_s=WT.vt_f_d="1";
		WT.vt_f_tlh=WT.vt_f_tlv="0";
	}
	else{
		var c=dcsGetCookie(name);
		var id=dcsGetIdCrumb(c,"id");
		var lv=parseInt(dcsGetCrumb(c,"lv"));
		var ss=parseInt(dcsGetCrumb(c,"ss"));
		if ((id==null)||(id=="null")||isNaN(lv)||isNaN(ss)){
			return;
		}
		WT.co_f=id;
		var dLst=new Date(lv);
		WT.vt_f_tlh=Math.floor((dLst.getTime()-adj)/1000);
		dSes.setTime(ss);
		if ((dCur.getTime()>(dLst.getTime()+1800000))||(dCur.getTime()>(dSes.getTime()+28800000))){
			WT.vt_f_tlv=Math.floor((dSes.getTime()-adj)/1000);
			dSes.setTime(dCur.getTime());
			WT.vt_f_s="1";
		}
		if ((dCur.getDay()!=dLst.getDay())||(dCur.getMonth()!=dLst.getMonth())||(dCur.getYear()!=dLst.getYear())){
			WT.vt_f_d="1";
		}
	}
	WT.co_f=escape(WT.co_f);
	WT.vt_sid=WT.co_f+"."+(dSes.getTime()-adj);
	var expiry="; expires="+dExp.toGMTString();
	var cur=dCur.getTime().toString();
	var ses=dSes.getTime().toString();
	document.cookie=name+"="+"id="+WT.co_f+":lv="+cur+":ss="+ses+expiry+"; path=/"+(((typeof(gFpcDom)!="undefined")&&(gFpcDom!=""))?("; domain="+gFpcDom):(""));
	var rc=dcsIsFpcSet(name,WT.co_f,cur,ses);
	if (rc!=0){
		WT.co_f=WT.vt_sid=WT.vt_f_s=WT.vt_f_d=WT.vt_f_tlh=WT.vt_f_tlv="";
		WT.vt_f=WT.vt_f_a=rc;
	}
}
catch (err)
  {
      getErrorMessage(err, arguments.callee.toString());
  }	
}

// Code section for Use the new first-party cookie generated with this tag.
var gFpc="WT_FPC";
var gConvert=true;

function dcsAdv(){
	dcsFunc("dcsET");
	dcsFunc("dcsCookie");
	dcsFunc("dcsAdSearch");
	dcsFunc("dcsTP");
}

// END OF SDC Advanced Tracking Code

// Diese Funktion überträgt die ersten beiden Verzeichnisse in die Metafelder


// Auskommentiert 27.03.08 wegen überschreiben der Content und Content-Untergruppen 
// var strURL = document.getElementById("DCS.dcsuri").content.substring(1);
// var iPos = strURL.indexOf("/");
// if(iPos>0){
//    document.getElementById("WT.cg_n").content = strURL.substring(0,iPos);
//    strURL = strURL.substring(iPos+1);
//    var iPos = strURL.indexOf("/");
//    if(iPos>0)
//        document.getElementById("WT.cg_s").content = strURL.substring(0,iPos);
//}

// Das Includes des js wird nur bei Cookietracking ausgeführt. Das js wurde derzeit nicht gefunden und wird dementsprenchend auch nicht ausgeführt.
if ((typeof(gConvert)!="undefined")&&gConvert&&(document.cookie.indexOf(gFpc+"=")==-1)){
    document.write("<SCR"+"IPT Language='JavaScript' SRC='"+"http"+(window.location.protocol.indexOf('https:')==0?'s':'')+"://"+gDomain+"/"+gDcsId+"/wtid.js"+"'></SCR"+"IPT>");
}

// wird nur bei Version ab 1.2 ausgeführt.
if ((typeof(gVersion)!="undefined")&&(gVersion!="1.0")&&(gVersion!="1.1"))
    var RE={"%09":/\t/g,"%20":/ /g,"%23":/\#/g,"%26":/\&/g,"%2B":/\+/g,"%3F":/\?/g,"%5C":/\\/g};

// wird nur bei Version ab 1.3 ausgeführt.
if (window.ActiveXObject){
    var gFV="";
    for (var gVer=2;gVer<=10;gVer++){
        try{
            var gFlash = eval("new ActiveXObject('ShockwaveFlash.ShockwaveFlash."+gVer+"');");
            if (gFlash){
                gFV=gVer+".0";
                break;
            }
        }
        catch(e){
        }
    }
}

// Eingefügt am 18.04.08 für MultiTracking
function dcsMultiTrack(){
    dcsVar();
	for (var i=0;i<arguments.length;i++){
        if (arguments[i].indexOf('WT.')==0){
                WT[arguments[i].substring(3)]=arguments[i+1];
                i++;
        }
        if (arguments[i].indexOf('DCS.')==0){
                DCS[arguments[i].substring(4)]=arguments[i+1];
                i++;
        }
        if (arguments[i].indexOf('DCSext.')==0){
                DCSext[arguments[i].substring(7)]=arguments[i+1];
                i++;
        }
    }
    var dCurrent=new Date();
    DCS.dcsdat=dCurrent.getTime();
	dcsFunc("dcsAdv");
	dcsFunc("dcsCheckReqValues");
    dcsTag();
}

// überträgt alle Informationen zu der Seite in die Objekte WT, DCS und DCSext
function dcsVar(){
    var dCurrent=new Date();
    WT.tz=dCurrent.getTimezoneOffset()/60*-1;
    if (WT.tz==0){
        WT.tz="0";
    }
    WT.bh=dCurrent.getHours();
    WT.ul=navigator.appName=="Netscape"?navigator.language:navigator.userLanguage;
    if (typeof(screen)=="object"){
        WT.cd=navigator.appName=="Netscape"?screen.pixelDepth:screen.colorDepth;
        WT.sr=screen.width+"x"+screen.height;
    }
    if (typeof(navigator.javaEnabled())=="boolean"){
        WT.jo=navigator.javaEnabled()?"Yes":"No";
    }
    if (document.title){
        WT.ti=document.title;
    }
    WT.js="Yes";
    if (typeof(gVersion)!="undefined"){
        WT.jv=gVersion;
    }
    /*
    if (document.body&&document.body.addBehavior){
        document.body.addBehavior("#default#clientCaps");
        if (document.body.connectionType){
            WT.ct=document.body.connectionType;
        }
        document.body.addBehavior("#default#homePage");
        WT.hp=document.body.isHomePage(location.href)?"1":"0";
    }
    */
    if (parseInt(navigator.appVersion)>3){
        if ((navigator.appName=="Microsoft Internet Explorer")&&document.body){
            WT.bs=document.body.offsetWidth+"x"+document.body.offsetHeight;
        }
        else if (navigator.appName=="Netscape"){
            WT.bs=window.innerWidth+"x"+window.innerHeight;
        }
    }
    WT.fi="No";
    if (window.ActiveXObject){
        if ((typeof(gFV)!="undefined")&&(gFV.length>0)){
            WT.fi="Yes";
            WT.fv=gFV;
        }
    }
    else if (navigator.plugins&&navigator.plugins.length){
        for (var i=0;i<navigator.plugins.length;i++){
            if (navigator.plugins[i].name.indexOf('Shockwave Flash')!=-1){
                WT.fi="Yes";
                WT.fv=navigator.plugins[i].description.split(" ")[2];
                break;
            }
        }
    }

    DCS.dcsdat=dCurrent.getTime();
    DCS.dcssip=window.location.hostname;
	DCS.dcsuri=window.location.pathname;

    if (window.location.search){
        var qry = window.location.search.substring(1,window.location.search.length).split("&");
		DCS.dcsqry = "";
		
		for (var i=0;i<qry.length;i++){
			if (qry[i].indexOf('WT.')!=0 && qry[i].indexOf('DCS.')!=0 && qry[i].indexOf('DCSext.')!=0){
				DCS.dcsqry += qry[i] + "&";
				i++;
			}
		}
		
		//DCS.dcsqry=window.location.search.substring(1,window.location.search.length);
        if((Right(DCS.dcsqry,1) == "\\")||(Right(DCS.dcsqry,1) == "/"))
        {
					DCS.dcsqry=DCS.dcsqry.replace("\\","");
					DCS.dcsqry=DCS.dcsqry.replace("/","");        	
        }
        if (gQP.length>0){
            for (var i=0;i<gQP.length;i++){
                var pos=DCS.dcsqry.indexOf(gQP[i]);
                if (pos!=-1){
                    var front=DCS.dcsqry.substring(0,pos);
                    var end=DCS.dcsqry.substring(pos+gQP[i].length,DCS.dcsqry.length);
                    DCS.dcsqry=front+end;
                }
            }
        }

		// START OF adding the query parameters to the Webtrends objects
		//        
    //    try
    //    {
    //    	var queryArray = DCS.dcsqry.split("&");
    //    	var switchValue = "";
    //    	var wtAttribute = "";
    //    	var wtValue = "";
    //    	var wtObjectAttr = "";
    //    	
    //    	for (var j=0;j<queryArray.length;j++)
    //    	{
    //    		wtAttribute = queryArray[j].split("=")[0];
    //    		wtValue = queryArray[j].split("=")[1];
    //    		switchValue = wtAttribute.split(".")[0];
    //    		wtObjectAttr = wtAttribute.split(".")[1];
    //
		//				if((Right(wtValue,1) == "\\")||(Right(wtValue,1) == "/"))
		//				{
		//					wtValue = wtValue.replace("\\","");
		//					wtValue = wtValue.replace("/","");
		//				}
    //    		
    //    		switch (switchValue)
    //    		{
    //    			case "WT":
		//							WT[wtObjectAttr] = wtValue;
    //    				break;
    //    			case "DCS":
    //    					DCS[wtObjectAttr] = wtValue;
    //    				break;
    //    			case "DCSext":
    //    					DCSext[wtObjectAttr] = wtValue;
    //    				break;
    //    		}
    //    	}
    //    }
    //    catch (err)
		//	  {
    //  		getErrorMessage(err, arguments.callee.toString());
  	//		}	
    //
		// END OF adding the query parameters to the Webtrends objects

    }
    
    if ((window.document.referrer!="")&&(window.document.referrer!="-")){
        if (!(navigator.appName=="Microsoft Internet Explorer"&&parseInt(navigator.appVersion)<4)){
            DCS.dcsref=window.document.referrer;
        }
    }
}

// überträgt die Metainformationen in die Objekte WT, DCS und DCSext
function dcsMeta(){
    var elems;
    if (document.all){
        elems=document.all.tags("meta");
    }
    else if (document.documentElement){
        elems=document.getElementsByTagName("meta");
    }
    if (typeof(elems)!="undefined"){
        for (var i=1;i<=elems.length;i++){
            var meta=elems.item(i-1);
            if (meta.name){
                if (meta.name.indexOf('WT.')==0){
                    WT[meta.name.substring(3)]=meta.content;
                }
                else if (meta.name.indexOf('DCSext.')==0){
                    DCSext[meta.name.substring(7)]=meta.content;
                }
                else if (meta.name.indexOf('DCS.')==0){
                    DCS[meta.name.substring(4)]=meta.content;
                }
            }
        }
    }
}

// macht ein URL Encoding mit dem String S 
function dcsEscape(S){
    if (typeof(RE)!="undefined"){
        var retStr = new String(S);
        for (R in RE){
            retStr = retStr.replace(RE[R],R);
        }
        return retStr;
    }
    else{
        return escape(S);
    }
}

// erstellt einen URL Parameter N mit dem Wert V
function A(N,V){
    return "&"+N+"="+dcsEscape(V);
}

// erstellt das Tracking Image mit der URL dcsSrc als Imageobject oder Tag
function dcsCreateImage(dcsSrc){
		if (window.location.search.indexOf('debugMode=1')!=-1)
		{
			document.write(dcsSrc);
			dcsFunc("dcsPrintVariables");
			return
		}
		
    if (document.images){
        gImages[gIndex]=new Image;
        if ((typeof(gHref)!="undefined")&&(gHref.length>0)){
            gImages[gIndex].onload=gImages[gIndex].onerror=dcsLoadHref;
        }
        gImages[gIndex].src=dcsSrc;
        gIndex++;
    }
    else{
        document.write('<img alt="" border="0" name="DCSIMG" width="1" height="1" src="'+dcsSrc+'">');
    }
}

// erstellt die URL für das Trackting P und ruft dann dcsCreateImage auf
function dcsTag(){
    var P="http"+(window.location.protocol.indexOf('https:')==0?'s':'')+"://"+gDomain+(gDcsId==""?'':'/'+gDcsId)+"/dcs.gif?";
    for (N in DCS){
        if (DCS[N]) {
            P+=A(N,DCS[N]);
        }
    }
    for (N in WT){
        if (WT[N]) {
            P+=A("WT."+N,WT[N]);
        }
    }
    for (N in DCSext){
        if (DCSext[N]) {
            P+=A(N,DCSext[N]);
        }
    }
    if (P.length>2048&&navigator.userAgent.indexOf('MSIE')>=0){
        P=P.substring(0,2040)+"&WT.tu=1";
    }
    dcsCreateImage(P);
}

function dcsPrintVariables()
{
	document.write("<pre>");
	var tagVariables="\nDomain = "+gDomain;
	tagVariables+="\nDCSId = "+gDcsId;
	for (N in DCS)
	{
		tagVariables+="\nDCS."+N+" = "+DCS[N];
	}
	for (N in WT)
	{
		tagVariables+="\nWT."+N+" = "+WT[N];
	}
	for (N in DCSext)
	{
		tagVariables+="\nDCSext."+N+" = "+DCSext[N];
	}
	document.write(tagVariables);
	document.write("</pre>");
}

function dcsCheckReqValues()
{
	if (DCS['dcsuri'] == "") {
		DCS.dcsuri=window.location.pathname;
	}
}

// Überprüft ob func eine Funktion ist und führt sie dann aus.
function dcsFunc(func){
    if (typeof(window[func])=="function"){
        window[func]();
    }
}
