/* omv_wa.js **
** Web Analytics Javascript-Library */
/* (c) OMV 2006 **
** MaRo 1.9.2006 */
/* MaRo 29.3.2007 */
/* v 7.6.22.1 */
var debug=0;

	var	now = new Date();
	img_path = "/res/";
	var p_img=img_path+"swa_p.gif";  /* Page image */
	var t_img=img_path+"swa_t.gif";  /* Teaser/Portlet image */
	var l_img=img_path+"swa_l.gif";  /* Link image */
	var n_img=img_path+"swa_n.gif";  /* Print image */
	var s_img=img_path+"swa_s.gif";  /* Search image */
	var j_img=img_path+"swa_j.gif";  /* Noscript image */
	var e_img=img_path+"swa_e.gif";  /* Error image */
	var d_img=img_path+"swa_d.gif";  /* Download image */
	var end_img=img_path+"x.gif";    /* Time image */
	var Redirect_page="/res/Redirect.html";
	webbug_page = "webbug_p.cgi";
	webbug_search = "webbug_s.cgi";
	webbug_print = "webbug_t.cgi";
	webbug_teaser = "webbug_c.gif"; 	download_servlet = "securityservlet/secure?";

var DHTML = false, DOM = false, MSIE4 = false, NS4 = false, OP = false;

if (document.getElementById) {
  DHTML = true;
  DOM = true;
} else {
  if (document.all) {
    DHTML = true;
    MSIE4 = true;
  } else {
    if (document.layers) {
      DHTML = true;
      NS4 = true;
    }
  }
}
if (window.opera) {
  OP = true;
}

function getElementById (Identifier) {
  var Element, ElementList;
  if (DOM) {
      Element = document.getElementById(Identifier);
      if (!Element) { Element = false; }
      return Element;
    }
  if (MSIE4) {
      Element = document.all(Identifier);
      if (!Element) { Element = false; }
      return Element;
    }
  if (NS4) {
      Element = document[Identifier];
      if (!Element) { Element = document.anchors[Identifier]; }
      if (!Element) { Element = false; }
      return Element;
    }
  return false;
}

function getAttribute (Identifier, AttributeName) {
  var Attribute;
  var Element = getElementById(Identifier);
  if (!Element) {
    return false;
  }
  if (DOM || MSIE4) {
    Attribute = Element.getAttribute(AttributeName);
    return Attribute;
  }
  if (NS4) {
    Attribute = Element[AttributeName]
    if (!Attribute) {
       Attribute = false;
    }
    return Attribute;
  }
  return false;
}

function getContent (Element) {
  var Content;
  if (!Element) {
    return false;
  }
  if (DOM && Element.firstChild) {
    if (Element.firstChild.nodeType == 3) {
      Content = Element.firstChild.nodeValue;
    } else {
      Content = "";
    }
    return Content;
  }
  if (MSIE4) {
    Content = Element.innerText;
    return Content;
  }
  return false;
}

	var cookies = "no cookie";
	if (document.cookie) {
		cookies = document.cookie; }
	var pos = cookies.indexOf("swatag=");
	var swatag = "00000000";
	
	if (pos != -1) {
	    var start = pos + 7;
	    var end = cookies.indexOf(";", start);
	    if (end == -1) {
	        end = cookies.length; }
	    swatag = cookies.substring(start,end); }
	else {
	    if (Math.random()) {
	        swatag = now.getTime() * Math.random(); }
	    else { 
	        swatag = now.getTime(); }
	    var expire = new Date();
	    expire.setFullYear(expire.getFullYear() + 4);
	    document.cookie="swatag=" + escape(swatag) + "; expires=" + expire.toGMTString() + "; path=/;";
	    if (document.cookie.indexOf(swatag,0) < 0) {
	        swatag = ""; } }

// Page- und Teaser-Tagging-Images suchen und zerlegen
	var p_qstring;

	var page_img;
	var i_cnt = 0;
	var a_img = new Array;	

	var img;
	var alt_title;
	var parms;
	var par;

	p_infos = getAttribute(webbug_search,"name");
	if (p_infos) { alt_title = "search"; }
	
	var page_img = new Image;
	p_infos = getAttribute(webbug_page,"name");
	page_img.src = p_img+GetPStatsString("?"+p_infos);
	if(debug)alert(page_img.src);
	
	p_infos = getAttribute(webbug_search,"name");
	if (p_infos) { 
		var search_img = new Image;
		search_img.src = s_img+GetSStatsString("?"+p_infos); 
		if(debug)alert(search_img.src);
		}
	
	p_infos = getAttribute(webbug_print,"name");
	if (p_infos) { 
		var print_img = new Image;
		print_img.src = n_img+GetPrintStatsString("?"+p_infos); 
		if(debug)alert(print_img.src);
		}
	
	for(var i=0;i<document.images.length;i++) {
		img = document.images[i].src;
		if (img.indexOf(webbug_teaser) != -1) {
			// teaser tagging-image gefunden, QueryString zerlegen 
			a_img[i_cnt] = new Image;
			a_img[i_cnt].src = t_img+GetTStatsString(img.substring(img.indexOf("?")));
			if(debug)document.write("<br>"+a_img[i_cnt].src+"<br>");
			i_cnt++;
		}
	}

// query-string for page tagging
function GetPStatsString(qstring) {
	if(debug)alert(qstring);
	var stats = "?swa_rndm=";
	stats += escape(now.getTime());
	stats += "&swa_id=" + escape(swatag);
	stats += "&swa_tzo=" + escape(now.getTimezoneOffset()/60);
	stats += "&swa_whd=" + escape(screen.width + "x" + screen.height + "@" + screen.colorDepth);
	stats += "&swa_java=" + escape(navigator.javaEnabled());
	stats += "&swa_site=" + escape(getFieldValue("swa_site",qstring));
	stats += "&swa_nav=" + escape(getFieldValue("swa_nav",qstring));
	var hilf = getFieldValue("swa_ptitle",qstring);
		if(hilf){stats += "&swa_ptitle=" + escape(hilf);}
		else{stats += "&swa_ptitle=" + escape(alt_title);}
	stats += "&swa_pid=" + escape(getFieldValue("swa_pid",qstring));
	stats += "&swa_lang=" + escape(getFieldValue("swa_lang",qstring));
	stats += "&swa_url=" + escape(document.URL);
	stats += "&swa_ref=" + escape(document.referrer);
	p_qstring = stats;
	return stats;
}

function GetSStatsString(qstring) {
	if(debug)alert(qstring);
	var stats = "?swa_rndm=";
	stats += escape(now.getTime());
	stats += "&swa_id=" + escape(swatag);
	stats += "&swa_tzo=" + escape(now.getTimezoneOffset()/60);
	stats += "&swa_whd=" + escape(screen.width + "x" + screen.height + "@" + screen.colorDepth);
	stats += "&swa_java=" + escape(navigator.javaEnabled());
	stats += "&swa_site=" + escape(getFieldValue("swa_site",p_qstring));
	stats += "&swa_nav=" + escape(getFieldValue("swa_nav",p_qstring));
/*	stats += "&swa_ptitle=" + escape(getFieldValue("swa_ptitle",p_qstring)); */
	stats += "&swa_ptitle=" + escape("search");
	stats += "&swa_pid=" + escape(getFieldValue("swa_pid",p_qstring));
	stats += "&swa_sstr=" + escape(getFieldValue("swa_sstr",qstring));
	stats += "&swa_res=" + escape(getFieldValue("swa_res",qstring));
	stats += "&swa_max=" + escape(getFieldValue("swa_max",qstring));
	stats += "&swa_area=" + escape(getFieldValue("swa_area",qstring));
	stats += "&swa_rel=" + escape(getFieldValue("swa_rel",qstring));
	stats += "&swa_idx=" + escape(getFieldValue("swa_idx",qstring));
	stats += "&swa_lang=" + escape(getFieldValue("swa_lang",p_qstring));
	stats += "&swa_url=" + escape(document.URL);
	stats += "&swa_ref=" + escape(document.referrer);
	p_qstring = stats;
	return stats;
}

// query-string for teaser tagging
function GetTStatsString(qstring) {
	var stats = "?swa_rndm=";
	stats += escape(now.getTime());
	stats += "&swa_id=" + escape(swatag);
	stats += "&swa_java=" + escape(navigator.javaEnabled());
	stats += "&swa_site=" + escape(getFieldValue("swa_site",p_qstring));
	stats += "&swa_nav=" + escape(getFieldValue("swa_nav",p_qstring));
	stats += "&swa_ptitle=" + escape(getFieldValue("swa_ptitle",p_qstring));
	stats += "&swa_pid=" + escape(getFieldValue("swa_pid",p_qstring));
	stats += "&swa_cid=" + escape(getFieldValue("contentid",qstring));
	stats += "&swa_camp=" + escape(getFieldValue("campaign",qstring));
	stats += "&swa_asn=" + escape(getFieldValue("assetname",qstring));
	stats += "&swa_aid=" + escape(getFieldValue("assetid",qstring));
	stats += "&swa_prn=" + escape(getFieldValue("swa_prn",qstring));
	stats += "&swa_url=" + escape(document.URL);
	stats += "&swa_ref=" + escape(document.referrer);
	stats = sas_append_swa_params(stats,qstring);
	return stats;
}

// query-string for teaser tagging
function GetPrintStatsString(qstring) {
	var stats = "?swa_rndm=";
	stats += escape(now.getTime());
	stats += "&swa_id=" + escape(swatag);
	stats += "&swa_java=" + escape(navigator.javaEnabled());
	stats += "&swa_site=" + escape(getFieldValue("swa_site",p_qstring));
	stats += "&swa_nav=" + escape(getFieldValue("swa_nav",p_qstring));
	stats += "&swa_ptitle=" + escape(getFieldValue("swa_ptitle",p_qstring));
	stats += "&swa_pid=" + escape(getFieldValue("swa_pid",p_qstring));
	stats += "&swa_cid=" + escape(getFieldValue("contentid",qstring));
	stats += "&swa_camp=" + escape(getFieldValue("campaign",qstring));
	stats += "&swa_asn=" + escape(getFieldValue("assetname",qstring));
	stats += "&swa_aid=" + escape(getFieldValue("assetid",qstring));
	stats += "&swa_url=" + escape(document.URL);
	stats += "&swa_ref=" + escape(document.referrer);
	return stats;
}

// query-string for external links
function GetLStatsString(target,tname) {
	var stats = "?swa_rndm=";
	stats += escape(now.getTime());
	stats += "&swa_id=" + escape(getFieldValue("swa_id",p_qstring));
	stats += "&swa_java=" + escape(navigator.javaEnabled());
	stats += "&swa_site=" + escape(getFieldValue("swa_site",p_qstring));
	stats += "&swa_nav=" + escape(getFieldValue("swa_nav",p_qstring));
	stats += "&swa_ptitle=" + escape(getFieldValue("swa_ptitle",p_qstring));
	stats += "&swa_pid=" + escape(getFieldValue("swa_pid",p_qstring));
	stats += "&swa_lurl=" + escape(target);
	stats += "&swa_lname=" + escape(tname);
	stats += "&swa_l_type=" + "extern";
	stats += "&swa_url=" + escape(getFieldValue("swa_url",p_qstring));
	stats += "&swa_ref=" + escape(getFieldValue("swa_ref",p_qstring));
	stats += "&swa_tid=" + escape(getFieldValue("swa_tid",target));
	stats += "&swa_ootype=" + escape(getFieldValue("swa_ootype",target));
	stats += "&swa_action=" + escape(getFieldValue("swa_action",target));
	stats += "&swa_tp1=" + escape(getFieldValue("swa_tp1",target));
	return stats;
}

/*function searchAndAddText(target, text)
{
	var pos = target.indexOf(text);
	var ret = "";
	if (pos != -1) {
	    var posEnd = target.indexOf("&", pos);
	    if (posEnd == -1) ret = "&" + target.substring(pos, target.length -1 );
		else ret = "&" + target.substring(pos, target.indexOf("&", pos));
		alert( ret);
	}
	return ret;
}*/

/* Umleitung zur externen URL redirect_page um die externen links anzufangen */
function SetClickTracking() {
	var s_test; var hilf_l; var hilf_ll; var lname; var params;var url;
	var prots = new Array("http://","https://");
	for(var i=0;i<document.links.length;i++) {
		hilf_l = document.links[i].href;
		hilf_ll = hilf_l.toLowerCase();
		/* Redirect erfolgt nur wenn Link mit http:// oder https:// beginnt (=absolute URL) 
		   und nicht auf gleichen host zeigt oder auf Download-Servlet zeigt */
		for(var j=0;j<prots.length;j++) 	{
			// alle protokolle checken
			pos = hilf_ll.indexOf(prots[j])+prots[j].length;
			if (pos == prots[j].length) { // http(s):// muss an erster Stelle stehen
				s_test = (hilf_ll.indexOf("/",pos) != -1) ? hilf_ll.substring(pos, hilf_ll.indexOf("/",pos)) : hilf_ll.substring(pos);
				 // nächstes / checken --> s_test = host des links
				if (s_test != document.location.host.toLowerCase()) {	 // host des links ist anders als Portal-host
					// href ändern für Aufruf der redirect-seite
					lname = getContent(document.links[i]);
					if(!lname) { lname="externer Link"; } 
					document.links[i].href=Redirect_page+GetLStatsString(hilf_l,lname);
					if(debug)alert(lname);
					}
				}
			}
		// checken, ob es sich um ein Download-Servlet handelt 
		/* 
		download-servlet löst den zählpixel-request selbst aus 
		Achtung! Der Request muss die Parameter swa_id und swa_aid enthalten!
		*/
		pos = hilf_ll.indexOf(download_servlet);
		if (pos != -1) {
			sep = (document.links[i].href.indexOf("?") == -1) ? "?" : "&"; 
			document.links[i].href+= sep + "swa_id=" + escape(swatag) + "&swa_site=" + escape(getFieldValue("swa_site",p_qstring)); 
			}
		params = document.links[i].search;
		pos = params.indexOf("swa_tclick");
		
		if (pos != -1) {
			lname = getContent(document.links[i]);
			if(!lname) { lname="interner Link"; }
			
			url = hilf_l.substring(0, hilf_l.indexOf("?"));
			document.links[i].href=Redirect_page+GetLStatsString(url,lname);
			
			/*document.write("<br>"+document.links[i].href+"<br>");*/
			}
		}
 	}
	SetClickTracking();
	var time_img = new Image;
	var now1 = new Date();
	var time1 = now1.getTime();
	var time0 = now.getTime();
	var ntime = time1 - time0;
	time_img.src = end_img+"?swa_pid="+escape(getFieldValue("swa_pid",p_qstring))+"&tt1="+escape(now.getTime())+"&tt2="+escape(now1.getTime())+"&ttdif="+escape(ntime);

	
	if(debug)alert("Schluss: "+ntime+" msec");

// Get the value of one of the arguments in the query string
function getFieldValue(name, querystring) {
	if(querystring==null)querystring=location.search;
  var match = (new RegExp('[?&;]' + name + '=([^&;#]*)')).exec(querystring);
  return match ? unescape(match[1]) : "";
}

function sas_logging_arr(tid, param1)
{
	var img = new Image;
	var img_src = t_img;
	img_src += "&swa_site=" + escape(getFieldValue("swa_site",p_qstring));
	img_src += "&swa_nav=" + escape(getFieldValue("swa_nav",p_qstring));
	img_src += "&swa_pid=" + escape(getFieldValue("swa_pid",p_qstring));
	img_src += "&swa_lang=" + escape(getFieldValue("swa_lang",p_qstring));
	img_src += "&swa_tid=" + escape(tid);
	if (param1 != null) 
	{
		for (x in param1)
		{ 
			img_src += '&' + param1[x];
		}
	}
	img.src = img_src;
}

function sas_logging(tid)
{
	sas_logging_arr(tid, null);
}

function sas_append_loginfo(url)
{
	var params = url;
	if (url.indexOf("?") == -1) params += "?";
	else params += "&";
	params += "swa_site=" + escape(getFieldValue("swa_site",p_qstring));
	params += "&swa_nav=" + escape(getFieldValue("swa_nav",p_qstring));
	params += "&swa_pid=" + escape(getFieldValue("swa_pid",p_qstring));
	params += "&swa_lang=" + escape(getFieldValue("swa_lang",p_qstring));
	return params;
}

function sas_wrap_redirect(url, lname)
{
	if(!lname) { lname="externer Link"; }
	url=Redirect_page+GetLStatsString(url,lname);
	return url;
}

function sas_append_swa_params(stat, url)
{
	if (url == null || url.length == 0) return stat; 
	var splited = url.split("&");
	var i;
	for(i = 0; i < splited.length; i++)
	{
		pos = splited[i].indexOf("swa_");
		if (pos != -1) {
			stat+="&" + splited[i].substring(pos, splited[i].length);
		}
	}
	return stat;
}
