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 = $('sidebar-right').getElements('div.content');
	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 = $('content').getElements('h2');

		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');
			}
		}
	}
});
