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

	var isHome             = $(document.body).hasClass('home');
	var isJobOpportunities = $(document.body).hasClass('job_opportunity');

	// add class to first and last content item
	var nav2Contents = $ES('div.content', 'cnr_ctt_nav2');
	if (nav2Contents && nav2Contents[0]) {
		nav2Contents[0].addClass('first');
		nav2Contents[nav2Contents.length - 1].addClass('last');
	}

	// replace h2's for tabs on job opportunity pages
	if (isJobOpportunities) {

		// get all headers that should be placed in the tabmenu
		var cnrHeaders = $ES('h2', 'cnr_ctt_main');

		if (cnrHeaders && cnrHeaders.length > 0) {

			// create tabmenu
			var tabMenu   = new Element('ul', { 'id': 'tab_menu' });
			var lastItem  = cnrHeaders.getLast();

			tabMenu.injectBefore(cnrHeaders[0]);

			function showTabContent() {

				if (this != tabMenu.currentMenuItem) {

					var nextTab = this.getNext();

					if (nextTab) { nextTab.addClass('after_current'); }
					if (tabMenu.currentMenuItem.getNext()) { tabMenu.currentMenuItem.getNext().removeClass('after_current') }

					tabMenu.currentMenuItem.removeClass('current');
					tabMenu.currentCnr.removeClass('current');
					tabMenu.currentCnr.toggleClass('hide');

					this.addClass('current');
					this.cnrTab.addClass('current');
					this.cnrTab.toggleClass('hide');

					tabMenu.currentMenuItem = this;
					tabMenu.currentCnr      = this.cnrTab;
				}
			}

			cnrHeaders.forEach(function(cnrHeader, index) {

				var tabMenuItem           = new Element('li', { 'id': 'tab_menu_item_' + index });
				tabMenuItem.cnrTab        = new Element('div', { 'id': 'tab_cnt_' + index, 'class': 'cnr_tab' });
				var nextSibling           = cnrHeader.getNext();

				// set global active tabs
				if (index == 0) {

					tabMenu.currentMenuItem = tabMenuItem;
					tabMenu.currentCnr      = tabMenuItem.cnrTab;
				}

				// create content container
				tabMenuItem.cnrTab.injectAfter(tabMenu);

				// add classes to the menuitems
				if (index == 0) {
					tabMenuItem.addClass('first current');
					tabMenuItem.cnrTab.addClass('current');
				} else {
					tabMenuItem.cnrTab.addClass('hide');
				}

				if (cnrHeader == lastItem) {
					tabMenuItem.addClass('last');
				}

				// copy content in container (to show / hide)
				while(nextSibling != cnrHeaders[index + 1]) {

					var currentSibling = nextSibling;
					nextSibling = nextSibling.getNext();
					currentSibling.injectInside(tabMenuItem.cnrTab);
				}

				// create tab (menu item)
				tabMenuItem.injectInside(tabMenu);
				cnrHeader.injectInside(tabMenuItem);

				// set events on tab
				tabMenuItem.addEvent('mouseenter', function() { this.addClass('rollover') });
				tabMenuItem.addEvent('mouseleave', function() { this.removeClass('rollover') });
				tabMenuItem.addEvent('click', showTabContent);
			});

			// set after_current class after all tabs are created
			if (cnrHeaders.length > 1) {
				tabMenu.currentMenuItem.getNext().addClass('after_current');
			}
		}
	}

	// 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 s_links = document.getElementsByTagName('a');

	for (var j = 0; j < s_links.length; j++) {
		var s_link  = s_links[j];

		// find extension
		var s_split_slash = s_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)) {
				s_links[j].rel = 'shadowbox[all]';
			}
		}
	}
});
