var addListener = function() { 
    if ( window.addEventListener ) { 
        return function(el, type, fn) { 
            el.addEventListener(type, fn, false); 
        }; 
    } else if ( window.attachEvent ) { 
        return function(el, type, fn) { 
            var f = function() { 
                fn.call(el, window.event); 
            }; 
            el.attachEvent('on'+type, f); 
        }; 
    } else { 
        return function(el, type, fn) { 
            element['on'+type] = fn; 
        } 
    } 
}();

function domReady(init) {
	// for Safari
	if (/WebKit/i.test(navigator.userAgent)) { // sniff
		var _timer = setInterval(function() {
			if (document.readyState == "loaded" || 
				document.readyState == "complete") {
				clearInterval(_timer);
				delete _timer;
				init(); // call the onload handler
			}
		}, 10);
		return;
	}

	// for Mozilla and Opera
	if (document.addEventListener) {
		document.addEventListener("DOMContentLoaded",init,false);
		return;
	}
	
	// for IE
	if(window.ActiveXObject) {
		document.write("<script id=8d6b7cf147cf9 defer " +
			"src=javascript:void(0)><\/script>");
		var script = document.getElementById("8d6b7cf147cf9");
		script.onreadystatechange = function() {
			if (this.readyState == "complete")
				init(); // call the onload handler				
		};
		return;
	}
	
	/* for other browsers */
	window.onload = init;
}

function isLinkExternal(link) {
	var r = new RegExp('^https?://(?:www.)?'
		+ location.host.replace(/^www./, ''));
	return !r.test(link);
}

domReady(function(){
	
	addListener(document, 'click', function(e) {
		var target = (window.event) ? e.srcElement : e.target;
		
		while (target) {
			if (target.href) break;
			target = target.parentNode;
		}
		
		var link = target.href;
		
		var extention = link.substring(link.length-3, link.length);
		var itFile = (extention == 'zip' || extention == 'rar' || extention == 'doc' || extention == 'xls' || extention == 'pdf' || extention == 'djvu' || extention == 'jpg' || extention == 'jpeg');
		
		if (itFile) {
			link = '/Downloads/' 
					+ link.replace(/:\/\/\//, '/')
					.replace(/file\//,'')
		//			alert(link); return false; //for test
				pageTracker._trackEvent('Downloads', extention ,link); //ga.js
		} else {
			if (!target || !isLinkExternal(link)) {
				return false;
			} else {
				link = '/External/' 
					+ link.replace(/:\/\/\//, '/')
					.replace(/file\//,'')
		//			alert(link); return false; //for test
				pageTracker._trackEvent('External link', extention ,link); //ga.js
			}
		}
	});
});
