var base_path = "/tracker/"
var req;

function delayedFunc(fn){  
	var args = new Array();
	for (i=1; i < arguments.length; i++)
		args.push(arguments[i]);  
	window.setTimeout(callFunc, Math.floor(Math.random()*1000)+500)  
	function callFunc(){  
		fn.apply(this, args)
	}
}

function log_request(section, count){
	if(Get_Cookie('tracked') == null){
		req = (window.XMLHttpRequest) ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
		req.onreadystatechange = log_response;
		req.open("GET", base_path + 'tracker.php?ref=' + escape(document.referrer) + '&section=' + section + '&count=' + count, true);
		req.send(null);
		Check_Referrer();
	}
}

function log_response(){
	if (req.readyState == 4) {
		if (req.status == 200) {
			var response = req.responseText.split(';');
			show_response(response, 0, 'tracker')
		}
	}
}

function show_response(response, index, id){
	document.getElementById(id).innerHTML = response[index];
	if(response.length > index+1) delayedFunc(show_response, response, index+1, id);
}




function Set_Cookie( name, value, expires, path, domain, secure ) {
/* Setzt einen Cookie */
	var today = new Date();
	today.setTime( today.getTime() );

	if ( expires ) {
		expires = expires * 1000 * 60 * 60 * 24;
	}
	var expires_date = new Date( today.getTime() + (expires) );
	
	document.cookie = name + "=" +escape( value ) +
	( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) + 
	( ( path ) ? ";path=" + path : "" ) + 
	( ( domain ) ? ";domain=" + domain : "" ) +
	( ( secure ) ? ";secure" : "" );
}

function Get_Cookie( check_name ) {
/* Liest einen Cookie aus */
	var a_all_cookies = document.cookie.split( ';' );
	var a_temp_cookie = '';
	var cookie_name = '';
	var cookie_value = '';
	var b_cookie_found = false;
	
	for ( i = 0; i < a_all_cookies.length; i++ ) {
		// Name-Wert-Paare aufsplitten und Leerzeichen trimmen
		a_temp_cookie = a_all_cookies[i].split( '=' );
		cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');
	
		// Richtigen Cookie gefunden
		if ( cookie_name == check_name ) {
			b_cookie_found = true;
			//Cookie ohne Wert
			if ( a_temp_cookie.length > 1 )	{
				cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
			}
			return cookie_value;
			break;
		}
		a_temp_cookie = null;
		cookie_name = '';
	}
	if ( !b_cookie_found ) {
		return null;
	}
}				

function Delete_Cookie( name, path, domain ) {
/* Löscht einen Cookie */
	if ( Get_Cookie( name ) ) {
		document.cookie = name + "=" +
			( ( path ) ? ";path=" + path : "") +
			( ( domain ) ? ";domain=" + domain : "" ) +
			";expires=Thu, 01-Jan-1970 00:00:01 GMT";
	}
}

function Is_Cookie_Enabled() {
/* Überprüft ob Cookies akzeptiert werden */
	Set_Cookie( 'cookie_test', 'none', '', '/', '', '' );
	if ( Get_Cookie( 'cookie_test' ) ){
		Delete_Cookie('cookie_test', '/', '');
		return true;
	}
	else {
		return false;
	}		
}

function Check_Referrer() {
/* Prüft ob der User direkt auf die Seite gelangt ist
	und setzt gegebenfalls einen Cookie */
	var now = new Date();
	if ( (Is_Cookie_Enabled()) && (Get_Cookie('tracked') == null) && (document.referrer) ) {
		Set_Cookie( 'tracked', now.getTime(), '5', '/', '', '' );
	}
}