window.addEvent('domready', function() {

	// open links to downloadable files or other sites in a new window
	Array.prototype.f_contains = function(s) {
		for (var i = 0; i < this.length; i++) {
			if (this[i] == s) return true;
		}
		return false;
	};

	// known extensions for downloadable files
	var exts = ['png', 'jpg', 'jpeg', 'gif', 'pdf', 'doc', 'xls', 'ppt', 'zip', 'gz', 'mpg', 'mpeg', 'mov', 'mp4', 'avi', 'wmv', 'mp3', 'wav', 'swf', 'bmp', 'tif', 'tiff', 'svg'];

	var links = document.getElementsByTagName('a');

	for (var i = 0; i < links.length; i++) {
		var link  = links[i];

		// find extension
		var split_slash = link.href.split('/');
		var split_ext   = split_slash[split_slash.length - 1].split('.');
		var ext = split_ext[split_ext.length - 1];

		// check if extension indicates a downloadable file
		if (split_ext.length > 1) {
			if (exts.f_contains(ext)) {
				links[i].target = '_blank';
			}
		}

		// look for links to other sites
		if (link.href.substring(0, 7) == 'http://') {
			if (link.href.substring(7, 7 + window.location.hostname.length) != window.location.hostname) {
				links[i].target = '_blank';
			}
		}
	}

	// known extensions for shadowbox media files
	var s_exts = ['jpg', 'jpeg', 'png', 'gif', 'flv'];

	var contents = $$('div.content');

	for (var j = 0; j < contents.length; j++) {
		links = contents[j].getElements('a');
		var countThumbs = 0;
		
		for (var k = 0; k < links.length; k++) {
			link = links[k];

			// find extension
			var s_split_slash = link.href.split('/');
			var s_split_ext   = s_split_slash[s_split_slash.length - 1].split('.');
			var s_ext         = s_split_ext[s_split_ext.length - 1];

			// check if extension indicates a media file
			if (s_split_ext.length > 1) {
				if (s_exts.f_contains(s_ext)) {
					link.rel = 'shadowbox[all]';
					new Element('div', {
						'class': 'magnifier'
					}).inject(link);

					// set margin-right: 0 on every last image in a row
					countThumbs++;

					if ((countThumbs % 3) == 0) {
						new Element('div', {
							'class': 'line-break'
						}).inject(link, 'after');

						link.setStyle('margin-right', '0');
					}
				}
			}
		}
	}

	// Shadowbox options
	var options = {
		'displayCounter': false,
		'overlayOpacity': 0.75,
		'animateFade': false
	};

	Shadowbox.init(options);
});
