//------CONFIG
var wm_prefixDownload		= "DL"; //Prefix for Document Downloads
var wm_prefixMailTo			= "MailTo"; //Prefix for Mailto Links
var wm_prefixExternalLink	= "ExtLink"; //Prefix for External Links

var wm_trackDownlodsAsEvents 	= false; //Track Downloads as Events true/false (if false, they will be tracked as Pages)
var wm_trackExtLinksAsEvents	= true; //Track ExternalLinks as Events true/false (if false, they will be tracked as Pages)
var wm_trackMailTosAsEvents		= true //Track Mailto Links as Events true/false(if false, they will be tracked as Pages)

var wm_path_event_downloads		= "Downloads/";
var wm_path_event_extlinks		= "ExtLinks/";
var wm_path_event_mailto		= "MailTo/";

var wm_path_page_downloads		= "DL|";
var wm_path_page_extlinks		= "ExtLink|";
var wm_path_page_mailto			= "MailTo|";

//------END CONFIG
//
var hrefs = document.getElementsByTagName("a");
var link_path = "";
for (var l = 0; l < hrefs.length; l++) {
	try {
		// Add the hostname and link location into variables
		var link_path = hrefs[l].pathname;
		var link_location = String(hrefs[l]);

		// Check if it's a mail link
		if (link_location.match(/^mailto:/i)) 
		{
			addmailtotrackerlistener(hrefs[l]);
		}
		// Check to see if the link is an internal link
		else if (location.host == hrefs[l].hostname) 
		{

			if(link_path.match(/\.(doc|pdf|xls|ppt|zip|txt|vsd|vxd|js|css|rar|exe|wma|mov|avi|wmv|mp3)$/)) 
			{
				addtrackerlistener(hrefs[l]);
			}
		}
		else 
		{
			addtrackerlistener(hrefs[l]);
		}
	}
	catch(err) { }
}
// Add a listener to matching file links
function addtrackerlistener(obj) {

if (obj.addEventListener) {
obj.addEventListener('click', trackfiles, true);
} else if (obj.attachEvent) {
obj.attachEvent("on" + 'click', trackfiles);
}
}
// Add a special listener to mailto: links
function addmailtotrackerlistener(obj) {
if (obj.addEventListener) {
obj.addEventListener('click', trackmailto, true);
} else if (obj.attachEvent) {
obj.attachEvent("on" + 'click', trackmailto);
}
}
// Track file links
function trackfiles(array_element) {
var file_path = "";
// Track an external link
var destination_host = (array_element.srcElement) ? array_element.srcElement.hostname : this.hostname;
if (location.host != destination_host){
file_path 		= "/virtual/exlink/" + cleanURL(window.location, true) + '/' + ((array_element.srcElement) ? array_element.srcElement.hostname : this.hostname);
file_fullname 	= ((array_element.srcElement) ? array_element.srcElement.hostname : this.hostname);
file_path 		= file_path + ((array_element.srcElement) ? "/" + cleanURL(array_element.srcElement.pathname, false) : this.pathname);
wm_elem_type 	= "extlink";
}
// Track an internal link
else {
file_path = ((array_element.srcElement) ? "/" + array_element.srcElement.pathname : this.pathname);	
var file_details = file_path.split('/');
var file_fullname =file_details[(file_details.length-1)];
wm_elem_type = "download";
}
wiredminds_track(wm_elem_type, file_fullname);

}
// Generate page view for a mailto: link
function trackmailto(array_element) {
var email = ((array_element.srcElement) ? array_element.srcElement.href : this.href).substring(7);
wm_elem_type = "mailto";
wiredminds_track(wm_elem_type, email);
}
// Clean leading & trailing slashes
function cleanURL (url, end) {
var url = url.toString();
var urlLen = url.length;
if (end) {
if (url.charAt((urlLen-1))=='/')
url = url.substring(0,(urlLen-1));
}
else {
if (url.charAt(0)=='/')
url = url.substring(1,urlLen);
}
return url;
}

function wiredminds_track(elementType, eventname){
	//Track Downloads
	if (elementType == "download") {
		if (wm_trackDownlodsAsEvents){
			try {wiredminds.trackEvent(wm_path_event_downloads+eventname);}
			catch (e) {}
		}
		else {
			try {wiredminds.count(wm_path_page_downloads+eventname);}
			catch (e) {}
		}
	}
	//Track External Links
	if (elementType == "extlink") {
		if (wm_trackDownlodsAsEvents){
			try {wiredminds.trackEvent(wm_path_event_extlinks+eventname);}
			catch (e) {}
		}
		else {
			try {wiredminds.count(wm_path_page_extlinks+eventname);}
			catch (e) {}
		}
	}
	//Track Mailtos
	if (elementType == "mailto") {
		if (wm_trackMailTosAsEvents){
			try {wiredminds.trackEvent(wm_path_event_mailto+eventname);}
			catch (e) {}
		}
		else {
			try {wiredminds.count(wm_path_page_mailto+eventname);}
			catch (e) {}
		}
	}
}


