/* JavaScript helper functions for pages on acusti.ca */

// Adding code to track file download link clicks with google analytics
onload=function(){
	// Check for getElementsByClassName() function, define it if not available
	if (document.getElementsByClassName == undefined) {
		document.getElementsByClassName = function(className)
		{
			var hasClassName = new RegExp("(?:^|\\s)" + className + "(?:$|\\s)");
			var allElements = document.getElementsByTagName("*");
			var results = [];
			var element;
			for (var i = 0; (element = allElements[i]) != null; i++) {
				var elementClass = element.className;
				if (elementClass && elementClass.indexOf(className) != -1 && hasClassName.test(elementClass))
					results.push(element);
			}
			return results;
		}
	}
	// Function to call google analytics tracking code for file download links:
	function trackDownload(e,x) {
		x = x || this;
		pageTracker._trackPageview( x.href.substr(x.href.indexOf('/', '8')+1) );
	}
	// Attach trackDownload function to all .download elements' onclick event
	var downloads = document.getElementsByClassName('download');
	for ( var i=0, len=downloads.length; i<len; ++i ) {
		downloads[i].onclick = trackDownload;
	}
	// Fill in my email address (spam protection):
	var emails = document.getElementsByClassName('email');
	for ( i=0, len=emails.length; i<len; ++i ) {
		emails[i].href = 'mailto:andrew@acusti.ca' + '?subject=' + escape(document.title.substr(12));
		emails[i].innerHTML = 'andrew@acusti.ca';
	}
	
	// More flexible email spam protection (future):
	function acustiEmail( user, domain, subject ) {
		subject = (typeof subject != 'undefined' ? '?subject=' + subject : '' );
        document.write( '<a href="mailto:' + user + '@' + domain + subject + '" title="Email" class="email">' + user + '@' + domain + '</a>' );
    }
}
