var ht3_session_to = 840000;
var ht3_addr = 'www.hypertracker.com';

function ht3_doerror(e,a,x,js)
{
	var jsV='1';
	var userDebugMode=true;
	var adminDebugMode=false;
	var mainurl = "/web/img/ht3/error_log.php";

	try
	{
		if(!userDebugMode && !adminDebugMode) return true;
		if(js)
		{
			if(typeof(e)=="object")
			{
				var tmpE='';
				for(var fi in e) tmpE+=fi+'_'+e[fi]+'_';
				e=tmpE;
			}
		}
		var se="?jsV="+jsV+"&i="+((!js)?0:1)+"&f="+escape(a)+"&err="+escape(e);
		if(adminDebugMode) alert(unescape(se));
		if(userDebugMode)
		{
			var ErrImg = new Image();
			ErrImg.src = "http://" + ht3_addr + mainurl + se;
		}
		return true;
	}
	catch(exex) 
	{
		return true;
	}
}


try
{
	if ( typeof(ht3_p) != "undefined" && typeof(ht3_lunched) == "undefined" )
	{
		// old version compat
		if ( /&/.test(ht3_p) == false)
		{
			try
			{
				var tmp = ht3_p[0];
				tmp += "&";
				tmp += ht3_p[1];
				ht3_p = "";
				ht3_p = tmp;
			}
			catch(e)
			{
				ht3_doerror(e,'from_array','',1);
			}
		}

		//
		// global variables
		//
	
		// start timer
		var ht3_time = new Date().getTime();
	
		var ht3_link	= null;
		var ht3_scroll	= 0;
		var ht3_lunched = false;

		//
		// functions
		//
	
		function ht3_trim(str)
		{
			try
			{
				if ( (""+str).length )
				{
					return (""+str).replace( /^\s*|\s*$/g, "");
				}
				return "";
			}
			catch(e)
			{
				ht3_doerror(e,'trim','',1);
			}
		}
	
		function ht3_crop(str)
		{
			try
			{
				if ( (""+str).length )
				{
					return (""+str).replace( /&nbsp;/, " ").replace( /\s{2,}/g, " ").replace( /<[^img][^>]*>|\n/ig, "").toLowerCase();
				}
				return "";
			}
			catch(e)
			{
				ht3_doerror(e,'crop','',1);
			}
		}
	
		var ht3_check_sto_correct = true;
		function ht3_check_sto()
		{
			if ( ht3_check_sto_correct )
			{
				try
				{
					if ( (new Date()).getTime() - ht3_time > ht3_session_to ) ht3_main();
				}
				catch(e)
				{
					ht3_check_sto_correct = false;
					ht3_doerror(e,'sto','',1);
				}
			}
		}
	
		var ht3_update_scroll_correct = true;
		function ht3_update_scroll()
		{
			if ( ht3_update_scroll_correct )
			{
				try
				{
					var doc		= null;
					var scroll	= null;
					if ( /Safari/.test(navigator.userAgent ) )
					{
						doc		= document;
						sdoc	= document.body;
					}
					else
					{
						if ( /Opera/.test(navigator.userAgent) )
						{
							doc = sdoc = document.body;
						}
						else
						{
							if ( document.compatMode == "CSS1Compat" )
							{
								doc = sdoc = document.documentElement;
							}
							else
							{
								doc = sdoc = document.body;
							}
						}
					}
			
					var scro =
						doc.scrollHeight - doc.clientHeight
						? 
						parseInt((100*sdoc.scrollTop)/(doc.scrollHeight-doc.clientHeight))
						:
						100;
			
					if ( scro > 100 )
					{
						scro = 100;
					}
					
					if ( scro > ht3_scroll )
					{
						ht3_scroll = scro;
					}
				}
				catch(e)
				{
					ht3_update_scroll_correct = false;
					ht3_doerror(e,'scroll','',1);
				}
			}
		}
	
		function ht3_click_event( a, pos)
		{
			try
			{
				var old = a.onclick;
				if ( typeof(a.onclick) != "function" )
				{
					a.onclick = function()
					{
						ht3_link = new Array;
						var href = this.href.indexOf("#");
						if ( href > 0 )
						{
							href = this.href.substring(0,href);
						}
						else
						{
							href = this.href;
						}
						ht3_link[1] = ht3_trim( href );
						ht3_link[2] = ht3_trim( ht3_crop(this.innerHTML) );
						ht3_link[3] = pos;
						ht3_main(); // safari hack - it doesn"t fire up unload event
					}
				}
				else
				{
					a.onclick = function()
					{
						ht3_link = new Array;
						var href = this.href.indexOf("#");
						if ( href > 0 )
						{
							href = this.href.substring(0,href);
						}
						else
						{
							href = this.href;
						}
						ht3_link[1] = ht3_trim( href );
						ht3_link[2] = ht3_trim( ht3_crop(this.innerHTML) );
						ht3_link[3] = pos;
		
						var ret = old();
						if ( ret )
						{
							ht3_main(); // safari hack - it doesn"t fire up unload event
						}
						
						return ret;
					}
				}
			}
			catch(e)
			{
				ht3_doerror(e,'click','',1);
			}
		}
	
	  	function ht3_nz(i,l)
		{
			try
			{
				if ( (""+i).length <= l-1 ) return ht3_nz("0"+i,l);
				else return i;
			}
			catch(e)
			{
				ht3_doerror(e,'nz','',1);
			}
		}
	
		function ht3_main()
		{
			try
			{
				if ( false == ht3_lunched )
				{
					ht3_lunched = true;
					var d = new Date();
					var time_spent = Math.floor( (d.getTime() - ht3_time) / 1000 );

					var hash = 
						"" + 
						ht3_nz(d.getHours(),2) + 
						ht3_nz(d.getMinutes(),2) + 
						ht3_nz(d.getSeconds(),2) + 
						ht3_nz(d.getMilliseconds(),3);
		
					ht3_p += "&r=" + escape(document.referrer);
					ht3_p += "&c=" + ht3_scroll;
					ht3_p += "&t=" + time_spent;
					if ( ht3_link )
					{
						ht3_p += "&l=" + escape(ht3_link[1]);
						
						// crop IMGs urls
						var inner = ht3_link[2];
						var img = null;
						while ( img=/<img([^>]*)>/.exec(inner))
						{
							var ret = null;
							var img_inner = img[1];
							img_inner = img_inner.replace(/ =/, "=").replace(/= /, "=");
							var url = null;
							if ( url=/src=\"([^\"]*)\"/.exec(img_inner) ) ret = ht3_trim(url[1]);
							else ret = 'unknown';
							inner = inner.replace(/<img([^>]*)>/, " IMG(" + ret + ") ");
						}
						inner = ht3_trim(inner);
						
						ht3_p += "&i=" + escape(inner);
						ht3_p += "&n=" + ht3_link[3];
					}
					ht3_p += "&h=" + hash;
					ht3_p += "&d=" + escape(document.location);
					ht3_p += "&e=" + screen.width + "x" + screen.height;
		
					var im = new Image();
					im.src = "http://"+ht3_addr+"/web/img/ht3/img.php?" + ht3_p;
		
					if ( !im.complete )
					{
						var ts = (new Date()).getTime();
						while ( (new Date()).getTime()-ts < 350 )
						{
							if ( im.complete )
							{
								break;
							}
						}
					}
				}
			}
			catch(e)
			{
				ht3_doerror(e,'main','',1);
			}
		}
	
		function ht3_init()
		{
			try
			{
				// touch anchors
				var loc =  "" + document.location;
				if ( 1 < loc.lastIndexOf("#") )
				{
					loc = loc.substring( 0, loc.lastIndexOf("#"));
				}
		
				var m = new Array;
				var a = document.getElementsByTagName("a");
				var c = a.length;
				for ( var i=0; i<c; i++)
				{
					if ( typeof(a[i].href) != "undefined" )
					{
						var href = "" + a[i].href;
						if
						(
							href.indexOf("http") == 0
							&&
							href.indexOf(loc + "#") == -1
						)
						{
							var inner = "" + a[i].innerHTML;
							var s = ht3_trim( ht3_crop( inner ) );
							if ( s.length )
							{
								var pos = 1;
								var h = ht3_trim( href ).replace(/\?.*/,"");
								if ( m[h] )
								{
									if ( m[h][s] )
									{
										pos = ++ m[h][s];
									}
									else
									{
										m[h][s] = 1;
									}
								}
								else
								{
									m[h] = new Array;
									m[h][s] = 1;
								}
			
								// touch him
								ht3_click_event( a[i], pos);
							}
						}
					}
				}
			}
			catch(e)
			{
				ht3_doerror(e,'init','',1);
			}
		}
	
		//
		// B E G I N
		//

		// onbeforeunload
		var old = window.onbeforeunload;
		if ( typeof(window.onbeforeunload) != "function" )
		{
			window.onbeforeunload = ht3_main;
		}
		else
		{
			window.onbeforeunload = function()
			{
				ht3_main();
				old();
			}
		}

		// onunload
		old = window.onunload;
		if ( typeof(window.onunload) != "function" )
		{
			window.onunload = ht3_main;
		}
		else
		{
			window.onunload = function()
			{
				ht3_main();
				old();
			}
		}
	
		// init scroll monitor
		setInterval("ht3_update_scroll()", 333);

		// sto monitor
		setInterval("ht3_check_sto()", 100);

		// load event
	    old = window.onload;
	    if ( typeof(window.onload) != "function" )
	    {
	        window.onload = ht3_init;
	    }
	    else
	    {
	        window.onload = function() 
	        {
	            ht3_init();
	            old();
	        }
	    }
	}
}
catch(e)
{
	ht3_doerror(e,'ht3_if','',1);
}
