//////////////////////////////////////////////////////////////////////////
// $RCSfile: klicktracker.js,v $
// $Source: /home/cvs/ihk4/scandio-cms/website-nbg/src/de/system/scripts/klicktracker.js,v $
// $Date: 2010-03-17 13:21:12 $
// $Revision: 1.3 $
// $Author: mkalmes $
//////////////////////////////////////////////////////////////////////////

var aliases=["nuernberg.ihk.de","ihk-nuernberg.de","ihk-nuernberg.com","ihk-nuernberg.info","ihk-nuernberg.org","ihk-nuernberg.eu","ihk-nrnberg-xhb","wim-magazin.de"];
var etrackerCode = null;
var etrackerDone = false;

function initCode(__code){
	etrackerCode = __code;
}

function writeKT(){
//alert("writeKT()");
	if (etrackerCode == null){
		alert("etrackerCode must be initialized!\n\ne.g.\nvar etrackerCode='12345';");
	}else{
		if (document.getElementById("bildbereich") != null){
			var anchors = document.getElementById("bildbereich").getElementsByTagName("a");
			count = anchors.length;
			for(i=0;i<count;i++){
				href=anchors[i].href;
				title = extractSession(href);

//alert(href + " : " + title);
				addOnclick(anchors[i]);
			}
		}
		etrackerDone = true;
	}
}

function isTrackable(href){
	return isExtern(href) || getDoctype(href).length > 0 || href.indexOf(":viewimage:") || href.indexOf(":downlink:");
}

function getTitle(elem){
	title = elem.href;
	extern = isExtern(title);
	doctype = getDoctype(title);
	if(extern || doctype.length>0){
		// es muss getrackert werden
		//  clean title
		title = title.replace(/[\?&]/g,"-").replace(/[\n\t]/g, "").replace(/[ ]+/g, "+");
		title=title+doctype;
		if(extern){
			title=getMaxsize("Extern-", title);
		}
		else if(title.indexOf("/PDF/Publikationen/")>-1){
			title=getMaxsize("Publikation-", title);
		}
		else{
			title=getMaxsize("Sonstiges-", title);
		}

	}else{
		if (title.indexOf(":viewimage:") > -1 || title.indexOf(":downlink:") > -1){
			var startTitle = ( title.indexOf(":viewimage:") > -1 ? "Foto-" : "Fotodown-" );
			var div = findParent(elem, "div");
			title = div.getElementsByTagName("img")[0].getAttribute("title");
			title = getMaxsize(startTitle, title);
		}else{
			return null;
		}		
	}
	return title;
}

function findParent(elem, tagName){
	while (elem != null){
		if (elem.parentNode.nodeName.toLowerCase() == tagName){
			return elem.parentNode;
		}
		elem = elem.parentNode;
	}
	return elem;
}

function getMaxsize(pre, cnt){
	restLength = 60 - (pre.length);
	return pre + cnt.substring((cnt.length > 60 ? cnt.length - restLength : 0), cnt.length);
}

function extractSession(href){
	if (href != null && href.indexOf(";jsessionid=") > -1){
		var index = href.indexOf(";jsessionid=");
		href = href.substring(0, index) + href.substring(href.indexOf('?', index), href.length);
	}
//alert(href);
	return href;
}

function writeKlickTracker(code)
{
	if (!etrackerDone)
	{
		etrackerCode = code;
		var anchors = document.getElementsByTagName("a");
		count = anchors.length;
		for(i=0;i<count;i++)
		{
			if(anchors[i].href.indexOf("www.etracker.de")==-1)
			{
				title = getTitle(anchors[i]);
				if(title != null && title.toLowerCase().indexOf("print()") < 0 )
				{
					addOnclick(anchors[i]);
				}
			}
		}	
	}
}

function addOnclick(anchor){	
	//if (bLightbox){
	//	anchor.onclick = function(){track(this);showLightbox(this); return false;}
	//}else{
                if (anchor.onclick == null)
			anchor.onclick = function(){track(this);}
	//}
}


function escape(data){
	return data;
}

function trackUrl(title, href) {

	if(href.indexOf("/")==0){
		href="http://www.nuernberg.ihk.de"+href;
	}
	href=escape(href);
	trackstring="http://www.etracker.de/lnkcnt.php?et="+etrackerCode+"&url="+href+"&lnkname="+title + "&" + ((new Date()).getTime());

	//url = elem.href;
 	var img = new Image();
 	img.src = trackstring;  
}

function track(elem){ 
	title=getTitle(elem);
	href = elem.href;

	trackUrl(title, href);
}

function isExtern(url){
	url = url.toLowerCase();
	if(url.indexOf("/")==0){
		return false;
	}
	
	for(z=0;z<aliases.length;z++){
		if(url.indexOf(aliases[z])>-1){
			return false;
		}
	}
	return true;
}


function getDoctype(url){
	if(url.indexOf(".pdf")>-1){
		return " (PDF)";
	}
	else if(url.indexOf(".doc")>-1){
		return " (DOC)";
	}
	return "";
}


//
// addLoadEvent()
// Adds event to window.onload without overwriting currently assigned onload functions.
// Function found at Simon Willison's weblog - http://simon.incutio.com/
//
function addLoadEvent(func)
{	
	var oldonload = window.onload;
	if (typeof window.onload != 'function'){
    	window.onload = func;
	} else {
		window.onload = function(){
		oldonload();
		func();
		}
	}

}
