$(document).ready(function(){

	/**
	 * toggle set
	 */

	$('.toggle-set')
		// show visible items
		.find('.toggle-visible').show().end()
		// hide non-visible items
		.find('.toggle-hidden').hide().end()
		// show tiggers
		.find('.toggle-trigger').show()
			.find('a').click(function() {
				// slide
				$(this).closest('.toggle-item').slideEm(300);
				// one or less trigger items left? -> hide global trigger
				var toggleset = $(this).closest('.toggle-set');
				var triggers = toggleset.find('.toggle-trigger:visible');
				if (triggers.length <= 1) {
					toggleset.find('.toggle-trigger-all').hide();
				}
				// return
				return false;
			})
			.end()
		.end()
		// show global trigger
		.find('.toggle-trigger-all').show()
			.find('a').click(function() {

				var toggleset = $(this).closest('.toggle-set');
				// get current height
				var fixheight = toggleset.outerHeight()+15;				
				toggleset
					.css('min-height', fixheight+'px')
					// slide
					.find('.toggle-item').andSelf().slideEm(1000);
				// hide trigger
				$(this).blur().hide();
				// return
				return false;
			});

	$.fn.slideEm = function(speed) {  
  		return this.each(function() {
			// get current height
			var fixheight = $(this).outerHeight()+15;
			$(this)
				.css('min-height', fixheight+'px')
				// slide
				.find('.toggle-hidden').slideDown(speed, function() {
					// reset display style on list items
					if ($(this).is('li')) {
						$(this).css('display', 'list-item');
					}
				})
				.end()
				// hide trigger
				.find('.toggle-trigger').blur().hide();
  		});
	}


	/**
	 * toggle news (accordion)
	 */

	$('.bl-news')
		// init
		.find('.news-content').hide().end()
		.find('.news-headline')
			.click(function(e) {
				$(this)
					.next('.news-content').slideToggle(300)
					.parent().parent().toggleClass('current')
					.siblings('li').find('.news-content:visible').slideUp(300)
					.parent().parent().removeClass('current');
				e.preventDefault();
			});		


	/**
	 * external links
	 *
	 * filters href != hostname or rel="external"
	 * adds .external to elements not containing img, div or mailto
	 * opens external links in new window/tab
	 */

	$('a, area').filter(function() {
		return this.hostname && (this.hostname).split(":")[0] !== (location.hostname).split(":")[0] || $(this).attr('rel') == 'external';
	})
	.not(':has(img, div, mailto)')
	.addClass('external')
	.end()
	.click(function(e) {
		open(this.href); 
		e.preventDefault();
	});


});
