function Trackingcenter()
{
	var self = this;
	var server_domain = 'www.trackingcenter.de';
	var server_handler = 'statistic.php';
	var parameter = new Array();
	var initialized = false;
	
	var getTarget = function()
	{
		return getServer() + '/' + server_handler + '?' + getParameter();
	}
	
	var getServer = function()
	{
		return getProtocol() + '://' + server_domain;		
	}

 	var getProtocol = function()
	{
		return 'https';//window.location.protocol.indexOf(':')==0 ? 'https' : 'http'
	}

	var getId = function()
	{
		return 1001;
	}

	var setParameter = function(name, value)
	{
		if(value)
			parameter[name] = value;
		else
			delete(parameter[name]);
	}
	
	var getParameter = function()
	{
		var query_string = 'id=' + getId() + '&';
		
		for (entry in parameter)
		{
			param_type = typeof parameter[entry];
			if(param_type == 'string' || param_type == 'number')
				query_string += entry + '=' + escape(parameter[entry]) + "&";
		}
		
		return query_string;
	}

	var initialize = function()
	{	
		if(!initialized)
		{
			setBasicData();
			getParameterFromMetaTags();			
		}
		
		initialized = true;
	}

	var getParameterFromMetaTags = function()
	{
		var meta_tags = document.getElementsByTagName('meta');
		for (var i = 0; i < meta_tags.length; i++)
		{
			var name = meta_tags[i].getAttribute('name');
			var content = meta_tags[i].getAttribute('content');
			
			if(name && name.indexOf('trackingcenter.')==0)
			{
				setParameter(name.replace('trackingcenter.',''),content);				
			}
		}		
	}
	
	var setBasicData = function()
	{
		setParameter('screenwidth',screen.width);
		setParameter('screenheight',screen.height);
		setParameter('colordepth',screen.colorDepth);
		setParameter('referrer',document.referrer);
		setParameter('url',document.URL);
	}

	this.beam = function()
	{
		initialize();
		remote_image = new Image(0,1);
		remote_image.src = getTarget();
		parameter = {};
		return true;
	}
	
	this.event = function(name)
	{
		setParameter('event',name);
		return this;
	}
	
	var showDashboard = function()
	{
		loadScript(getServer()+'/javascript/dashboard.js');
	}
	
	var loadScript = function(url)
	{
		newScript = document.createElement("script");
		newScript.setAttribute("type", "text/javascript");
		newScript.setAttribute("src", url);
		document.getElementsByTagName('head')[0].appendChild(newScript);
		return newScript;		
	}
	
	/*
	 * Workaround für ältere Safari und IE Versionen 
	 * @author Scott Andrew
	 */
	this.addEventListener = function()
	{
	  obj = window;
	  evType = 'load';
	  fn = this.beam;
	  useCapture = false;

	  if (obj.addEventListener){
	    return obj.addEventListener(evType, fn, useCapture);
	  } else if (obj.attachEvent){
	    return obj.attachEvent("on"+evType, fn);
	  } else {
	    return false;
	  }		
	}
	
}

var trackingcenter = new Trackingcenter();
trackingcenter.addEventListener();
