// --> logger
function log(msg) { return window.console ? console.log(msg) : null; }

// --> external link selector
$.expr[':'].external  = function(obj) { return !obj.href.match(/^mailto:/) && (obj.hostname != document.location.hostname); };
// --> mailto selector
$.expr[':'].mailto  = function(obj) { return obj.href.match(/^mailto:/); };

// --> asynchronous ga link tracking
document.onclick = function(event) 
{
	event = event || window.event;
	var target = event.target || event.srcElement,
		targetElement = target.tagName.toLowerCase();

	if (targetElement == "a") {
		var href = target.getAttribute("href"),
			urlHost = document.domain.replace(/^www\./i,"");
		var urlPattern = "^(?:https?:)?\/\/(?:(?:www)\.)?" + urlHost + "\/?";
		eventCheck(href,urlPattern);
	}

};

function eventCheck(href,urlPattern)
{
	if( ! href) return false;
	
	if ((href.match(/^https?\:/i)) && (!href.match(urlPattern))){
		if (href.match(/^.*\.(pdf|jpg|png|gif|zip|mp3|txt|doc|rar|js|py)$/i)) {
			_gaq.push(['_trackEvent', 'Download', 'click', href]);
		} else {
			_gaq.push(['_trackEvent', 'External', 'click', href]);
		}
	} else if (href.match(/^mailto\:/i)) {
		_gaq.push(['_trackEvent', 'Email', 'click', href.substr(7)]);
	} else if (href.match(/^.*\.(pdf|jpg|png|gif|zip|mp3|txt|doc|rar|js|py)$/i)) {
		_gaq.push(['_trackEvent', 'Download', 'click', href]);
	}
}
