/* Alle Boxen werden geschlossen. Die erste Box bleibt offen */
var first_box = true;
function hide_boxes(hide_all)
{
	var elms = document.getElementsByTagName('div');

	for(var i=0;i<elms.length;i++)
	{
		if(elms[i].className == 'block_swap_box_body')
		{
			// Dazugehöriges Head Element finden
			var head = elms[i].previousSibling;
			
			while(head.nodeName == '#text')
			{
				head = head.previousSibling;
			}
			
			// Head Element gefunden
			if(head && /block_swap_box_head/i.test(head.className))
			{
				if(!first_box || typeof hide_all == 'boolean')
				{
					elms[i].style.display = 'none';
					head.className = 'block_swap_box_head closed';
				}
				else
				{
					first_box = false;
				}
			}
		}
	}
}

/* Eine Box wird geöffnet, bzw geschlossen */
function swap_box(obj)
{
	hide_boxes(true);
	
	// Focus vom Element nehmen
	obj.blur();
	
	// Dazugehöriges Head Element finden
	var head = obj.parentNode;
	if(!head || !/block_swap_box_head/i.test(head.className))
	{
		return;
	}
	
	// Dazugehöriges Body Element finden
	var body = head.nextSibling;

	while(body.nodeName == '#text')
	{
		body = body.nextSibling;
	}
	
	if(body.className != 'block_swap_box_body')
	{
		return;
	}
	
	// Head und Body Elemente gefunden, Ansicht bestimmen
	var mode = head.className.replace('block_swap_box_head', '').replace(' ', '');
	
	switch(mode)
	{
		case 'open': // Schliessen
			head.className = 'block_swap_box_head closed';
			body.style.display = 'none';
			break;
			
		case 'closed': // Öffnen
			head.className = 'block_swap_box_head open';
			body.style.display = 'block';			
			break;
	}
}

/* Einem Element ein Event anhängen */
function addEvent(obj, event, func)
{
	if(obj.addEventListener)
	{
		obj.addEventListener(event, func, false); 
		return true; 
	}
	else if(obj.attachEvent)
	{
		var rev = obj.attachEvent('on'+event, func); 
		return rev; 
	}
		
	return false; 
}

addEvent(window, 'load', hide_boxes);

/* Alternative RSS Feed Ausgabe für nicht unterstützte Browser */
function rss(url)
{
	if(!browser('MSIE7+') && !browser('Firefox2+'))
	{
		var obj = document.getElementById('rss_alert');
		var baseUrl = window.location.href.match(/^https?:\/\/[^\/]*/, '');

		if(obj)
		{
			obj.style.display = 'block';
			
			var link = document.getElementById('rss_alert_link');
			link.href = url;
			link.innerHTML = baseUrl+url;
		}
	}
	else
	{
		var popup = window.open(url, '_blank');
		popup.focus();
	}
}

/* Nach bestimmten Browsern abfragen */
// Beispiele:
// - 'Firefox' = jede Firefox Version
// - 'MSIE7' = MSIE Version 7
// - 'Firefox3+' = Firefox Version >= 3
// - 'MSIE6-' = MSIE Version <= 6
function browser(str)
{  
	var expr = {
		msie : 'MSIE ?',
		firefox : 'Firefox\/?',
		_agent : navigator.userAgent 
	};
  
	// String von allen Zahlen, Zeichen befreien
	var clean = str.replace(/(\d+[+-]?)/, '').toLowerCase();

	// Auf Browser testen
	var isBrowser = new RegExp(expr[clean], 'i').test(expr._agent);
  		 
	if((v = str.match(/(\d+)([+-])?$/)) && isBrowser)
	{
		// Auf Version testen
		var _v = expr._agent.match(new RegExp(expr[clean]+'(\\d+)', 'i'));		  	
		var isVersion =	(_v[1] == v[1])? true:false;

		if(v[2])
		{
			switch(v[2])
			{
				case '+':
					return (_v[1] >= v[1])? true:false;
					break;
	
				case '-':
					return (_v[1] <= v[1])? true:false;
					break;		  				
			}
  		
			return false;
		}
		else
		{
			return isVersion;
		}
	}
	else
	{
		return isBrowser;
	}
}