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

// -- Revision 8.1.3.11
// -- Copyright (c) 2007-2009 e-dynamics GmbH  All rights reserved. -->
// -- $DateTime: 2009/11/11 11:21:26 $ -->

// 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){
	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();
	((typeof(gFpcDom)!="undefined")&&(gFpcDom=="lufthansa.com"))?(gFpcDom = ".lufthansa.com"):(gFpcDom = gFpcDom);
	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;
	}
}

// Code section for Use the new first-party cookie generated with this tag.

// Code section for Enable Event Tracking
function dcsParseSvl(sv){
	sv=sv.split(" ").join("");
	sv=sv.split("\t").join("");
	sv=sv.split("\n").join("");
	var pos=sv.toUpperCase().indexOf("WT.SVL=");
	if (pos!=-1){
		var start=pos+8;
		var end=sv.indexOf('"',start);
		if (end==-1){
			end=sv.indexOf("'",start);
			if (end==-1){
				end=sv.length;
			}
		}
		return sv.substring(start,end);
	}
	return "";
}
function dcsIsOnsite(host){
	var doms="lufthansa.com,www.lufthansa.com,book.lufthansa.com,miles-and-more.com,www.miles-and-more.com,book.miles-and-more.com";
    var aDoms=doms.split(',');
    for (var i=0;i<aDoms.length;i++){
		if (host.indexOf(aDoms[i])!=-1){
		       return 1;
		}
    }
    return 0;
}
function dcsIsHttp(e){
	return (e.href&&e.protocol&&(e.protocol.indexOf("http")!=-1))?true:false;
}
function dcsTypeMatch(path, typelist){
	var type=path.substring(path.lastIndexOf(".")+1,path.length);
	var types=typelist.split(",");
	for (var i=0;i<types.length;i++){
		if (type==types[i]){
			return true;
		}
	}
	return false;
}
function dcsEvt(evt,tag){
	var e=evt.target||evt.srcElement;
	while (e.tagName&&(e.tagName!=tag)){
		e=e.parentElement||e.parentNode;
	}
	return e;
}
function dcsBind(event,func){
	if ((typeof(window[func])=="function")&&document.body){
		if (document.body.addEventListener){
			document.body.addEventListener(event, window[func], true);
		}
		else if(document.body.attachEvent){
			document.body.attachEvent("on"+event, window[func]);
		}
	}
}
function dcsET(){
	var e=(navigator.appVersion.indexOf("MSIE")!=-1)?"click":"mousedown";
	dcsBind(e,"dcsDownload");
//	dcsBind(e,"dcsDynamic");
//	dcsBind(e,"dcsFormButton");
//	dcsBind(e,"dcsOffsite");
//	dcsBind(e,"dcsAnchor");
//	dcsBind("mousedown","dcsRightClick");
}


// Code section for Track clicks to download links.
function dcsDownload(evt){
	evt=evt||(window.event||"");
	if (evt&&((typeof(evt.which)!="number")||(evt.which==1))){
		var e=dcsEvt(evt,"A");
		if (e.hostname&&dcsIsOnsite(e.hostname)){
			var types="xls,doc,pdf,txt,csv,zip";
			if (dcsTypeMatch(e.pathname,types)){
				var qry=e.search?e.search.substring(e.search.indexOf("?")+1,e.search.length):"";
				if (qry.toUpperCase().indexOf("WT.SVL=")==-1){
					WT.svl=dcsParseSvl(e.name?e.name.toString():(e.onclick?e.onclick.toString():""));
				}
				var path=e.pathname?((e.pathname.indexOf("/")!=0)?"/"+e.pathname:e.pathname):"/";
				if (path.search(/^\/online/)!=-1) {
					var sp = path.split("/");
						if(sp.length == 6) {
							path = "/" + sp[1] + "/" + sp[3] + "/" + sp[5];
						};
				};
				dcsMultiTrack("DCS.dcssip",e.hostname,"DCS.dcsuri",path,"DCS.dcsqry",e.search||"","WT.ti","Download:"+(e.innerHTML||""),"WT.dl","1");
				DCS.dcssip=DCS.dcsuri=DCS.dcsqry=WT.ti=WT.svl=WT.dl="";
			}
		}
	}
}

// Code section for Track clicks to links leading offsite.
function dcsOffsite(evt){
	evt=evt||(window.event||"");
	if (evt&&((typeof(evt.which)!="number")||(evt.which==1))){
		var e=dcsEvt(evt,"A");
		if (e.hostname&&!dcsIsOnsite(e.hostname)&&e.protocol&&e.protocol.indexOf('http')!=-1){
			var qry=e.search?e.search.substring(e.search.indexOf("?")+1,e.search.length):"";
			if (qry.toUpperCase().indexOf("WT.SVL=")==-1){
				WT.svl=dcsParseSvl(e.name?e.name.toString():(e.onclick?e.onclick.toString():""));
			}
			var path=e.pathname?((e.pathname.indexOf("/")!=0)?"/"+e.pathname:e.pathname):"/";
			var trim=true;
			dcsMultiTrack("DCS.dcssip",e.hostname,"DCS.dcsuri",path,"DCS.dcsqry",trim?"":qry,"WT.ti","Offsite:"+e.hostname+path+qry,"WT.dl","20");
			DCS.dcssip=DCS.dcsuri=DCS.dcsqry=WT.ti=WT.svl=WT.os="";
		}
	}
}

// Add event handlers here


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

var ED = new Object();
var gImages=new Array;
var gIndex=0;
var DCS=new Object();
var WT=new Object();
var DCSext=new Object();
var gQP=new Array();
var gI18n=false;
if (window.RegExp){
	var RE=gI18n?{"%25":/\%/g}:{"%09":/\t/g,"%20":/ /g,"%23":/\#/g,"%26":/\&/g,"%2B":/\+/g,"%3F":/\?/g,"%5C":/\\/g,"%22":/\"/g,"%7F":/\x7F/g,"%A0":/\xA0/g};
	if (gI18n){
		var EXRE=/dcs(uri)|(ref)|(aut)|(met)|(sta)|(sip)|(pro)|(byt)|(dat)|(p3p)|(cfg)|(redirect)|(cip)/i;
	}
}

// Add customizations here

function dcsMultiTrack(){
	if (arguments.length%2==0){
		for (var i=0;i<arguments.length;i+=2){
			if (arguments[i].indexOf('WT.')==0){
				WT[arguments[i].substring(3)]=arguments[i+1];
			}
			else if (arguments[i].indexOf('DCS.')==0){
				DCS[arguments[i].substring(4)]=arguments[i+1];
			}
			else if (arguments[i].indexOf('DCSext.')==0){
				DCSext[arguments[i].substring(7)]=arguments[i+1];
			}
		}
		var dCurrent=new Date();
		DCS.dcsdat=dCurrent.getTime();
		dcsFunc("dcsCookie");
		dcsTag();
	}
}


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){
		if (window.RegExp){
			var tire=new RegExp("^"+window.location.protocol+"//"+window.location.hostname+"\\s-\\s");
			WT.ti=document.title.replace(tire,"");
		}
		else{
			WT.ti=document.title;
		}
	}
	WT.js="Yes";
	WT.jv=dcsJV();
	if (document.body&&document.body.addBehavior){
		document.body.addBehavior("#default#clientCaps");
		WT.ct=document.body.connectionType||"unknown";
		document.body.addBehavior("#default#homePage");
		WT.hp=document.body.isHomePage(location.href)?"1":"0";
	}
	else{
		WT.ct="unknown";
	}
	if (document.all){
		WT.bs=document.body?document.body.offsetWidth+"x"+document.body.offsetHeight:"unknown";
	}
	else{
		WT.bs=window.innerWidth+"x"+window.innerHeight;
	}
	WT.fi="No";
	if (window.ActiveXObject){
		for(var i=10;i>0;i--){
			try{
				var flash = new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+i);
				WT.fi="Yes";
				WT.fv=i+".0";
				break;
			}
			catch(e){
			}
		}
	}
	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;
			}
		}
	}
	if (gI18n){
		if (typeof(document.defaultCharset)=="string"){
			WT.le=document.defaultCharset;
		} 
		else if (typeof(document.characterSet)=="string"){
			WT.le=document.characterSet;
		}
		else{
			WT.le="unknown";
		}
	}
	WT.tv="8.0.3";
	DCSext.ed_tv="8.1.3.11";
//	WT.sp="@@SPLITVALUE@@";
	DCS.dcsdat=dCurrent.getTime();
	DCS.dcssip=window.location.hostname;
	
	if((typeof(DCS.dcsuri)=="undefined")||(DCS.dcsuri=="")){	
		DCS.dcsuri=window.location.pathname;
	} else {
		DCS.dcsuri = DCS.dcsuri.toLowerCase();
		var sd = DCS.dcsuri.split("?");
		if(typeof(sd[0])!="undefined"){
			DCS.dcsuri = sd[0];
		};
		if(typeof(sd[1])!="undefined"){
		sd[1] = sd[1].replace(/amp;/g, "");
		var ed_urlparam = sd[1].split("&");
		for (var i = 0; i < ed_urlparam.length;i++) {
			var ed_urlparamkv = ed_urlparam[i].split("=");
			if(ed_urlparamkv[0]=="nodeid"){ED.nodeid=ed_urlparamkv[1];};
			if(ed_urlparamkv[0]=="l"){ED.l=ed_urlparamkv[1];};
			if(ed_urlparamkv[0]=="cid"){ED.cid=ed_urlparamkv[1];};
		};
		};
	}		
	if (window.location.search){
		DCS.dcsqry=window.location.search;
		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;
				}
			}
		}
		var ed_wlsparam = DCS.dcsqry.replace(/\?/, "");
		ed_wlsparam = ed_wlsparam.split("&");
		for (var i = 0; i < ed_wlsparam.length;i++) {
			var ed_wlsparamkv = ed_wlsparam[i].split("=");
			if(ed_wlsparamkv[0]!="cid" && ed_wlsparamkv[0]!="nodeid" && ed_wlsparamkv[0]!="l"){
				ED[ed_wlsparamkv[0]] = ed_wlsparamkv[1];				
				};			
		};
	}
	DCS.dcsqry="";
	for(var param in ED){
		DCS.dcsqry+=(DCS.dcsqry=="")?param+'='+ED[param]:'&'+param+'='+ED[param];
	};
	if(DCS.dcsqry!=""){
		DCS.dcsqry="?"+DCS.dcsqry;
	};
	
	if ((window.document.referrer!="")&&(window.document.referrer!="-")){
		if (!(navigator.appName=="Microsoft Internet Explorer"&&parseInt(navigator.appVersion)<4)){
			DCS.dcsref=window.document.referrer;
		}
	}
}

function dcsA(N,V){
	if (gI18n&&!EXRE.test(N)){
		if (N=="dcsqry"){
			var newV="";
			var params=V.substring(1).split("&");
			for (var i=0;i<params.length;i++){
				var pair=params[i];
				var pos=pair.indexOf("=");
				if (pos!=-1){
					var key=pair.substring(0,pos);
					var val=pair.substring(pos+1);
					if (i!=0){
						newV+="&";
					}
					newV+=key+"="+dcsEncode(val);
				}
			}
			V=V.substring(0,1)+newV;
		}
		else{
			V=dcsEncode(V);
		}
	}
	return "&"+N+"="+dcsEscape(V, RE);
}

function dcsEscape(S, REL){
	if (typeof(REL)!="undefined"){
		S=S.toString();
		for (var R in REL){
			S=S.replace(REL[R],R);
		}
		return S;
	}
	else{
		return escape(S);
	}
}

function dcsEncode(S){
	return (typeof(encodeURIComponent)=="function")?encodeURIComponent(S):escape(S);
}

function dcsCreateImage(dcsSrc){
	if (document.images){
		gImages[gIndex]=new Image;
		gImages[gIndex].src=dcsSrc;
		gIndex++;
	}
	else{
		document.write('<IMG ALT="" BORDER="0" NAME="DCSIMG" WIDTH="1" HEIGHT="1" SRC="'+dcsSrc+'">');
	}
}

function dcsMeta(){
	var elems;
	if (document.all){
		elems=document.all.tags("meta");
	}
	else if (document.documentElement){
		elems=document.getElementsByTagName("meta");
	}
	
	if (typeof(elems)!="undefined"){
		var length=elems.length;
		for (var i=0;i<length;i++){
			var name=elems.item(i).name;
			var content=elems.item(i).content;
			var equiv=elems.item(i).httpEquiv;
			if (name.length>0){
				if (name.indexOf("WT.")==0){
					WT[name.substring(3)]=content;
				}
				else if (name.indexOf("DCSext.")==0){
					DCSext[name.substring(7)]=content;
				}
				else if (name.indexOf("DCS.")==0){
					DCS[name.substring(4)]=content;
				}
			}
		}
	}
	if((typeof(DCS.dcsqry)!="undefined")&&(DCS.dcsqry.search(/nodeid=/)!=-1)&&(typeof(DCSext.Nodeid)!="undefined")) {
		DCSext.nodeid_meta = DCSext.Nodeid; 
		delete DCSext.Nodeid;
	};
	if((typeof(DCS.dcsqry)!="undefined")&&(DCS.dcsqry.search(/nodeid=/)!=-1)&&(typeof(DCSext.nodeid)!="undefined")) {
		DCSext.nodeid_meta = DCSext.nodeid; 
		delete DCSext.nodeid;
	};
}

function dcsTag(){
	if (document.cookie.indexOf("WTLOPTOUT=")!=-1){
		return;
	}
	var P="http"+(window.location.protocol.indexOf('https:')==0?'s':'')+"://"+gDomain+(gDcsId==""?'':'/'+gDcsId)+"/dcs.gif?";
	for (var N in DCS){
		if (DCS[N]){
			P+=dcsA(N,DCS[N]);
		}
	}
	var keys=["co_f","vt_sid","vt_f_tlv"];
	for (var i=0;i<keys.length;i++){
		var key=keys[i];
		if (WT[key]){
			P+=dcsA("WT."+key,WT[key]);
			delete WT[key];
		}
	}
	for (N in WT){
		if (WT[N]){
			P+=dcsA("WT."+N,WT[N]);
		}
	}
	for (N in DCSext){
		if (DCSext[N]){
			if (gI18n){
				WT.dep=(typeof(WT.dep)=="undefined")?N:(WT.dep+";"+N);
			}
			P+=dcsA(N,DCSext[N]);
		}
	}
	if (gI18n&&(typeof(WT.dep)!="undefined")){
		P+=dcsA("WT.dep",WT.dep);
	}
	if (P.length>2048&&navigator.userAgent.indexOf('MSIE')>=0){
		P=P.substring(0,2040)+"&WT.tu=1";
	}
	dcsCreateImage(P);
}

function dcsJV(){
	var agt=navigator.userAgent.toLowerCase();
	var major=parseInt(navigator.appVersion);
	var mac=(agt.indexOf("mac")!=-1);
	var ff=(agt.indexOf("firefox")!=-1);
	var ff0=(agt.indexOf("firefox/0.")!=-1);
	var ff10=(agt.indexOf("firefox/1.0")!=-1);
	var ff15=(agt.indexOf("firefox/1.5")!=-1);
	var ff2up=(ff&&!ff0&&!ff10&!ff15);
	var nn=(!ff&&(agt.indexOf("mozilla")!=-1)&&(agt.indexOf("compatible")==-1));
	var nn4=(nn&&(major==4));
	var nn6up=(nn&&(major>=5));
	var ie=((agt.indexOf("msie")!=-1)&&(agt.indexOf("opera")==-1));
	var ie4=(ie&&(major==4)&&(agt.indexOf("msie 4")!=-1));
	var ie5up=(ie&&!ie4);
	var op=(agt.indexOf("opera")!=-1);
	var op5=(agt.indexOf("opera 5")!=-1||agt.indexOf("opera/5")!=-1);
	var op6=(agt.indexOf("opera 6")!=-1||agt.indexOf("opera/6")!=-1);
	var op7up=(op&&!op5&&!op6);
	var jv="1.1";
	if (ff2up){
		jv="1.7";
	}
	else if (ff15){
		jv="1.6";
	}
	else if (ff0||ff10||nn6up||op7up){
		jv="1.5";
	}
	else if ((mac&&ie5up)||op6){
		jv="1.4";
	}
	else if (ie5up||nn4||op5){
		jv="1.3";
	}
	else if (ie4){
		jv="1.2";
	}
	return jv;
}

function dcsFunc(func){
	if (typeof(window[func])=="function"){
		window[func]();
	}
}

function sendWTData(){
	dcsVar();
	dcsMeta();
	dcsFunc("dcsAdv");
	ed_do_all_stuff();
	dcsTag();
	ed_start_blt();
};

// END OF SDC Advanced Tracking Code -->

// START OF e-dynamics Banner Link Tracking -->
function ed_c_v(){
    var s_val = '';
    for(var val in bl_params){s_val +=val+'='+bl_params[val]+'&';} // POS, Lang, Tax
    return s_val;
}
function ed_base_values(){
// used WebTrends Parameters
    bl_pos = 'blt_p';
    bl_lang = 'blt_l';
    bl_tax = 'blt_t';
    bl_ele = 'blt_e'; // Element
    bl_ln = 'blt_n'; // Link Name
    bl_lt = 'blt_z'; // Link Target
    bl_com = 'blt_c'; // Combined 
    bl_params = {}
    bl_params[bl_pos] = DCSext.Market;
    bl_params[bl_lang] = DCSext.Language;
    bl_params[bl_tax] = DCSext.Taxonomy;
// global
    bl_doms = 'lufthansa.com,www.lufthansa.com,book.lufthansa.com'; // Domains
    bl_ln_dummy = 'empty'; // Placeholder for Link Name if none can be found
    wt_global = ''; // globaler Query String
    wt_base_val = ed_c_v();
    wt_max_length = 20;

// <div> - list
    h_divs = {
        'header':['Header','ed_header'], // LN = LT
        'footer':['Footer','ed_header'], // LN = LT
        'hero':['Homepage - Hero','ed_onsite'], // LT = LN or Text
        'note':['Homepage - Note','ed_onsite'], // LT = LN or Text
        'flightmanager':['Flightmanager','ed_onsite'], // Link Name(wt_ln). Link Target(Text). will be the same in most cases
        'keyvis':['Key Visual','ed_keyvis'], // LN = LT = alt or div.title or ''
        'passinglane':['Passinglane','ed_passing'], // Link Name(wt_ln). If PLNR_ then Link Target = Link Name else Link Target = Text
        'infositemap':['Info Service Sitemap','ed_onsite'], // Link Name(wt_ln). Link Target(Text)
        'content':['Content','ed_onsite'], // Link Name(wt_ln). if not wt_ln then dummy. Link Target = Text
        'hoteloffer':['Hotel Offer','ed_offsite'], // Link Name(wt_ln) is Domain. Link Text(wtname). externel
        'caroffer':['Car Offer','ed_offsite'], // Link Name (wt_ln) is Domain. Link Text(wtname). externel
        'to_banner':['COFD Offer','ed_onsite','ed_offsite'], // Link Name(wt_ln). Link Target(wtname)  
        'st_banner':['Banner','ed_onsite','ed_offsite'] // Link Name(wt_ln). Link Target(wtname)  
    };
}
// offsite
function ed_offsite(node,s_nme){	
	if (node.hostname&&!dcsIsOnsite(node.hostname)&&node.protocol&&node.protocol.indexOf('http')!=-1){
		var qry=node.search?node.search.substring(node.search.indexOf("?")+1,node.search.length):"";
		if (qry.toUpperCase().indexOf("WT.SVL=")==-1){
			WT.svl=dcsParseSvl(node.name?node.name.toString():(node.onclick?node.onclick.toString():""));
		}
		var path=node.pathname?((node.pathname.indexOf("/")!=0)?"/"+node.pathname:node.pathname):"/";
		var trim=true;
		var p = [];
		var v = [];
		p[0] = 'DCS.dcssip';
		v[0] = node.hostname;
		p[1] = 'DCS.dcsuri';
		v[1] = path;
		p[2] = 'DCS.dcsqry';
		v[2] = trim?'':qry;
		p[3] = 'WT.ti';
		v[3] = 'Offsite:'+node.hostname+path+qry;
		p[4] = 'WT.dl';
		v[4] = '24';
		p[5] = 'DCSext.'+bl_pos;
		v[5] = bl_params[bl_pos];
		p[6] = 'DCSext.'+bl_lang;
		v[6] = bl_params[bl_lang];
		p[7] = 'DCSext.'+bl_tax;
		v[7] = bl_params[bl_tax];
		p[8] = 'DCSext.'+bl_ele;
		v[8] = h_divs[s_nme][0];
		p[9] = 'DCSext.'+bl_ln;
		v[9] = ed_get_link_name(node,s_nme);
		p[10] = 'DCSext.'+bl_lt;
		v[10] = ed_get_link_target(node);
		p[11] = 'DCSext.'+bl_com;
		v[11] = v[5]+'|'+v[6]+'|'+v[7]+'|'+v[8]+'|'+v[9]+'|'+v[10];
		dcsMultiTrack(p[0],v[0],p[1],v[1],p[2],v[2],p[3],v[3],p[4],v[4],p[5],v[5],p[6],v[6],p[7],v[7],p[8],v[8],p[9],v[9],p[10],v[10],p[11],v[11]);
		DCS.dcssip=DCS.dcsuri=DCS.dcsqry=WT.ti=WT.svl=WT.os="";		
	}
}
// header & footer
function ed_header(node,s_nme){ 
    var l_tgt = ed_get_link_target(node);
    var s_val = ed_build_query(s_nme,l_tgt,l_tgt);    
    ed_add_href(node,s_val);
}
// passing lane
function ed_passing(node,s_nme){
    var l_nme = ed_get_link_name(node,s_nme);  
    var l_tgt = l_nme.indexOf('PLNR_')!=-1?l_nme:ed_get_link_target(node);
    var s_val = ed_build_query(s_nme,l_nme,l_tgt);    
    ed_add_href(node,s_val);
}
// basic onsite
function ed_onsite(node,s_nme){
    var s_val = ed_build_query(s_nme,ed_get_link_name(node,s_nme),ed_get_link_target(node));    
    ed_add_href(node,s_val);
}
// key visual
function ed_keyvis(node,s_nme){    
    var l_tgt= '';
    var img = dojo.query('img',node);
    if(img.length>0 && img[0].alt && img[0].alt!=''){
        l_tgt = img[0].alt.slice(0,wt_max_length);
    }else{
        var div = node;
        while(div.tagName && (div.tagName.toUpperCase()!='DIV')){
		    div=div.parentElement||div.parentNode;
	    }
	    l_tgt = div.title?div.title.slice(0,wt_max_length):'notitle';
    }
    var s_val = ed_build_query(s_nme,l_tgt,l_tgt);
	ed_add_href(node,s_val);
}
function ed_add_href(node,s_val){
    if(node.hostname && !dcsIsOnsite(node.hostname)){wt_global = '';return;}
    if(node.onclick && node.attributes['onclick'].value.search(/popupwin\(|popupextwin\(/i)!=-1){return;}
    s_val = (node.href.indexOf('?')==-1?'?':'&') + s_val;
    if(node.href.indexOf('#') != -1){ 
        if(window.location.href.replace(/#.*?$/i ,'') == node.href.replace(/#.*?$/i ,'')){;return;}               
        node.href = node.href.replace('#',s_val+'#');
    }else {
        node.href = node.href + s_val;
    }       
}
// build query string
function ed_build_query(le,ln,lt){
    var drill = bl_params[bl_pos]+'|'+bl_params[bl_lang]+'|'+bl_params[bl_tax]+'|'+h_divs[le][0]+'|'+ln+'|'+lt;
    var s_val = wt_base_val;
    s_val += ed_build_value(bl_ele,h_divs[le][0]); 
    s_val += ed_build_value(bl_ln,ln);
    s_val += ed_build_value(bl_lt,lt);
    s_val += ed_build_value(bl_com,drill);
    wt_global = s_val.slice(0,-1);
    return wt_global;
}
// returns the link name if it exists else dummy
function ed_get_link_name(node,div){
    var a_class = dojo.query('.wt_ln',node);
    if(a_class.length > 0){
        return ed_get_first_text(a_class[0]).slice(0,wt_max_length);
    }
    while(!node.id || node.id != div){
        node = node.parentElement||node.parentNode;
        var a_class = dojo.query('.wt_ln',node);
        if(a_class.length > 0){
            return ed_get_first_text(a_class[0]).slice(0,wt_max_length);
        }        
    }
    return bl_ln_dummy.slice(0,wt_max_length);
}
// returns the value of wtname if set else returns ed_get_first_text
function ed_get_link_target(node){
    if(dojo.hasAttr(node,'wtname')){
        return dojo.attr(node,'wtname').slice(0,wt_max_length);
    }else{
        return ed_get_first_text(node).slice(0,wt_max_length);
    }    
}
// returns the value of the first textnode found (recursive) or ''
function ed_get_first_text(el){
    if( el.childNodes && el.childNodes[0].nodeType == 3 && el.firstChild.nodeValue != '\n') {return el.firstChild.nodeValue;}
    for(var child in el.childNodes){
        if(el.childNodes[child].firstChild && el.childNodes[child].firstChild.nodeType == 3){            
            return el.childNodes[child].firstChild.nodeValue;
        }else if(el.childNodes[child].firstChild){
            return ed_get_first_text(el.childNodes[child].firstChild);
        }
    }
    return '';    
}
// builds an escaped name value pair (name=value&) 
function ed_build_value(p_name,p_value){
    return p_name+'='+encodeURIComponent(p_value)+'&';
}
// event listener to all <a> in <div>
function ed_add_event(element,func){
    nodes = dojo.query('a',document.getElementById(element));
    nodes.forEach(function(node, index, nodeList){
        if (node.attachEvent){
            node.attachEvent('onclick',function(event){ed_catch_event(event,element,func);});
        }else if(node.addEventListener){
            node.addEventListener('click',function(event){ed_catch_event(event,element,func);},false);    
        }
    });               
}
// event handling
function ed_catch_event(e,s_nme,func){
    if ( typeof(window[func])=="function" ){
        e = e || window.event;
        var rc;   
        if (e.which){rc = (e.which == 3);}
        else if (e.button){rc = (e.button == 2);}
        if(!rc){
            e = dcsEvt(e,"A");
            if(e.href && e.href.search(/^javascript/i)==-1){
                window[func](e,s_nme);
            }
        }
    }    
}
function ed_domains(dom){
    var a_doms=bl_doms.split(',');
    for (var i=0;i<a_doms.length;i++){
		if (dom.indexOf(a_doms[i])!=-1){
		    return true;
		}
    }
    return false;
}
function ed_wt_global(wurl){
    if(!dcsIsOnsite(wurl)){return '';}
    return wt_global;
}
// conncets an eventlistener to all divs
function ed_start_blt(){    
    ed_base_values();
    if(window.location.hostname && !ed_domains(window.location.hostname)){return;}
    for(var div in h_divs){
        if(document.getElementById(div)){
            for(var i = 1;i<h_divs[div].length;i++)
            ed_add_event(div,h_divs[div][i]);
        }        
    }
}
// END OF e-dynamics Banner Link Tracking -->

// START OF e-dynamics Campaign Tracking -->
// return campaign id if present
function ed_check_camp(){
    var s_coo = '';
    var d_now = new Date();
    d_now = Math.round(d_now.getTime()/1000000);
    if( typeof WT.mc_id != 'undefined'){
        s_coo = d_now.toString()+','+WT.mc_id;        
    }else if(typeof DCS.dcsqry != 'undefined'){
        /WT.mc_id=([^\&]*)/i.exec(DCS.dcsqry);
        if(RegExp.$1 && RegExp.$1 != ''){
            s_coo = d_now.toString()+','+RegExp.$1;}
    }    
    return s_coo;
}
// return false = new sessiom, true = running session
function ed_check_session(){
    if(dcsGetCookie('ed_ses') && dcsGetCookie('ed_ses') == '1'){return true;}
    else{return false;}
}
// set session cookie
function ed_set_session(){ 
    if(dcsGetCookie('ed_ses') && dcsGetCookie('ed_ses' == '1')){return;}
    else{ 
        document.cookie = 'ed_ses='+escape('1')+'; path=/'+(((typeof(gFpcDom)!='undefined')&&(gFpcDom!=''))?('; domain='+gFpcDom):(''));
    }  
}  
// start campaign tracking      
function ed_do_all_stuff(){
    var s_camp = ed_check_camp();    
    if(s_camp != ''){ // new campaign
        var a_wt = ed_kahi_cookie(s_camp);   
        DCSext.ed_kahi = a_wt[1]; // send campaign
        DCSext.ed_kavh = a_wt[0]; // send version
    }else if(!ed_check_session()){ // new session
        DCSext.ed_kahi = ed_get_camp(); // send campaign        
    }
    ed_set_session(); 
    
    for(param in DCSext){
        if(param.toLowerCase() == 'shownpage'){
            if( /book\.lufthansa\.com.*?\/COFD\.jsp/i.test(DCSext[param]) ){ed_on_cofd();}
        }
    }
}
// return content of campaign cookie
function ed_get_camp(){
    if(dcsGetCookie('e_coo')){
        var s_val = dcsGetCookie('e_coo'); 
        return s_val.replace(/^.*?\|.*?(\d*?,)/i,'$1');          
    }
    return '';
}
// tracking of cofd screen
function ed_on_cofd(){
    var d_now = new Date();
    DCSext.ed_buze = Math.round(d_now.getTime()/1000000).toString();    
    if(dcsGetCookie('e_coo')){
        var s_val = dcsGetCookie('e_coo');
        s_val = s_val.slice(s_val.lastIndexOf('|')+1);
        var a_val = s_val.split(',');        
        d_now = d_now.getTime();
        var old = parseInt(a_val[0],10)*1000000;
        old = d_now - old;
        if(old > 1814400000){return;}
        DCSext.ed_leki = a_val[1];
        DCSext.ed_zest = a_val[0];          
    }
}
// helper function version handling
function ed_vis_count(s_val){
    var a_val = s_val.split('.');
    if(ed_check_session()){   
        s_val = a_val[0]+'.'+(parseInt(a_val[1],10)+1).toString();
    }else{
        s_val = (parseInt(a_val[0],10)+1).toString()+'.0';
    }
    return s_val;    
}
// helper function campaign cookie handling
function ed_kahi_cookie(s_val){    
    var s_coo = '';
    var s_vis = '';
    var s_camp = '';
    var d_now = new Date();
    if( dcsGetCookie('e_coo') ){
        s_coo2 = dcsGetCookie('e_coo');
        var a_coo = s_coo2.split('|');
        s_coo+= a_coo[0];
        s_vis+=a_coo[1]?'|'+ed_vis_count(a_coo[1]):'|1.0';
        s_camp+=a_coo[2]?'|'+a_coo[2]:'';           
        var d_min = Math.round((d_now.getTime() - 34214490250)/1000000);
        var i = a_coo.length>23?a_coo.length-20:3;
        for(i;i<a_coo.length;i++){
            if ( parseInt(a_coo[i].split(',')[0]) > d_min ){
                s_camp += '|'+a_coo[i];
            }
        }   
        s_camp += s_val?'|'+s_val:'';     
    }else{            
        s_coo = Math.round(d_now.getTime()/1000000).toString()+',f';
        s_vis = '|1.0';
        s_camp = s_val?'|'+s_val:'';
    } 
    var d_exp = new Date(d_now.getTime()+315360000000);
    var expiry = "; expires="+d_exp.toGMTString(); 
    document.cookie = 'e_coo='+escape(s_coo+s_vis+s_camp)+expiry+'; path=/'+(((typeof(gFpcDom)!='undefined')&&(gFpcDom!=''))?('; domain='+gFpcDom):(''));
    return [s_vis.slice(1),s_camp.slice(1)];       
}
// END OF e-dynamics Campaign Tracking -->
