	var int_id = 0;	
	
	Array.prototype.contains = function(search){
		for (var i = 0; i < this.length; i++) {
			if (this[i] == search) {
				return true;
			}
		}		
		return false;
	}
	
	String.prototype.contains = function(substring){
		return this.indexOf(substring) > -1;
	}
	
	int_id = setInterval('assign_tracking()', 100);
	
	window.onload = function () {
		clearInterval(int_id);
	};
	
	function assign_tracking() {
		var links_collection = document.getElementsByTagName('a');
		var links = [];		
		var len = 0;
		
		for (var i = 0, len = links_collection.length; i < len; i++) {
			links.push(links_collection[i]);
		}
		
		links_collection  = document.getElementsByTagName('area');
		
		for (var i = 0, len = links_collection.length; i < len; i++) {
			links.push(links_collection[i]);
		}
		
		len = links.length;
		
		var outbound_link = false;
		
		for (var i = 0; i < len; i++) {
			if ('gaTrackingApplied' in links[i]) {				
				continue;
			}

			links[i].gaTrackingApplied = true;

			if (!links[i].href.length > 0) {
				continue;
			}
	
			outbound_link = get_outbound_link(links[i].href);
			
			if (outbound_link !== false) {
				links[i].rel = outbound_link;
				/*if (document.location.search.contains('showmeobl')) {
                                	alert(outbound_link);
                                }*/
				links[i].onclick = function() {
					_gaq.push(['_trackEvent', 'Outbound links', 'Click', this.rel]);
				};
				
				if (links[i].captureEvents) {
					links[i].captureEvents(Event.CLICK);
				}
			}			
		}
	}
	
	function get_outbound_link(href) {
		var site_domain = document.domain.replace('www.', '');
		if (site_domain == 'localhost') {
			site_domain = 'mnogo.ru';
		}
		var link_domain = '';
		
		href = href.replace(/^\s+/, ''); // ltrim
						
		if (href.indexOf('/') == 0 || href.indexOf('..') == 0 // reference link from the root or relative link with level up
			|| href.indexOf('mailto:') == 0 || href.indexOf('#') == 0 || href.indexOf('?') == 0) { // mailto or anchor or query string
			return false;
		}		
		
		link_domain = canonize_domain(href);		
		
		if (!link_domain.contains('.')) { // invalid domain name
			return false;
		}
			
		if (link_domain.contains(site_domain) && href.contains('partner.html')) { // common ref clicks
			href = href.replace(/.+partner\.html\?l=/, '');
			href = href.replace(/&uid=\d+&card_var=.+/, '');
			href = unescape(href);
			
			link_domain = canonize_domain(href);

			if (link_domain.contains(site_domain)) { // site domain is the same as link domain, 'inner link'
				return false;
			} else {		
				return href;
			}
		}
		
		if (link_domain.contains(site_domain)) { // site domain is the same as link domain, 'inner link'
			return false;
		}
		
		var last_domain_part = link_domain.split('.');
		last_domain_part = last_domain_part[last_domain_part.length - 1].toLowerCase();
		if (['htm', 'html', 'php', 'doc', 'pdf'].contains(last_domain_part)) { // relative inner links, which are not from the root
			return false;
		}
		
		return href;
	}
	
	function canonize_domain(domain) {
		domain = domain.replace('http://', '');
		domain = domain.replace('www.', '');		
		domain = domain.match(/[\w\.\-]+/).toString();

		return domain;
	}

