// 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='datalossbarometer.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(){
    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();
    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){
        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)
        {
            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]();
    }
}
// Das Pixel wird nur dann aufgerufen, wenn das Script im konfiguriertem Host ausgeführt wird.
if(window.location.hostname.indexOf(strHost)>-1)
{
    // Funktionsaufrufe für die Erstellung der Infoobjekte und Protokollierung
    // deaktiviert, da nur IIS Variablen (ergo keine Scriptsachen) geloggt werden. 
    dcsVar();
    dcsMeta();
    // Diese Funktion ist bei Cookietracking gültig und führt dieses aus.
    dcsFunc("dcsAdv");
    // überprüfung der required values
    dcsFunc("dcsCheckReqValues");
    // Erstellt das Image und führt das Tracking aus.
    dcsTag();
}