var vIE		= navigator.userAgent.indexOf('MSIE') != -1;
var vIE6	= navigator.userAgent.indexOf('MSIE 6') != -1;

/* TYPO3 Default JS Begin */
var browserName = navigator.appName;
var browserVer = parseInt(navigator.appVersion);
var version = "";
var msie4 = (browserName == "Microsoft Internet Explorer" && browserVer >= 4);
if ((browserName == "Netscape" && browserVer >= 3) || msie4 || browserName=="Konqueror" || browserName=="Opera") {version = "n3";} else {version = "n2";}


// decrypt helper function
function decryptCharcode(n,start,end,offset) {
	n = n + offset;
	if (offset > 0 && n > end)	{
		n = start + (n - end - 1);
	} else if (offset < 0 && n < start)	{
		n = end - (start - n - 1);
	}
	return String.fromCharCode(n);
}

// decrypt string
function decryptString(enc,offset) {
	var dec = "";
	var len = enc.length;
	for(var i=0; i < len; i++)	{
		var n = enc.charCodeAt(i);
		if (n >= 0x2B && n <= 0x3A)	{
			dec += decryptCharcode(n,0x2B,0x3A,offset);	// 0-9 . , - + / :
		} else if (n >= 0x40 && n <= 0x5A)	{
			dec += decryptCharcode(n,0x40,0x5A,offset);	// A-Z @
		} else if (n >= 0x61 && n <= 0x7A)	{
			dec += decryptCharcode(n,0x61,0x7A,offset);	// a-z
		} else {
			dec += enc.charAt(i);
		}
	}
	return dec;
}

// decrypt spam-protected emails
// config.spamProtectEmailAddresses = X muss in Parameter 2 von decryptString eingetragen werden
function linkTo_UnCryptMailto(s) {
	location.href = decryptString(s,-3);
}
/* TYPO3 Default JS End */


/**
 *  Javascript für "Link in Lupe"
 * 
 *  Es wird das onclick Ereignis des übergeordneten Elements aufgerufen
 *
 *  Getestet mit:
 *  - FF 2.0.16
 *  - Safari 3.0.4
 *  - IE 7.0 (ietester)
 *  - IE 6.0 (ietester)
 *  - IE 8 Beta 1 (ietester)
 */
function openPreviousLink(elem) {
	elem.parentNode.getElementsByTagName('a')[0].onclick();
}


/**
 *  Javascript für "Link in Lupe"
 *  Bei Bildern in der News liegen die A-Tags der Bilder auf der
 *  gleichen DOM-Ebene wie das A-Tag mit der Lupe
 *  Daher wird der nächste vorhergehende A-Tag gesucht und dort
 *  das onclick-Ereignis ausgelöst.
 *  
 */
function openPreviousNewsLink(elem) {
	// letzten vorhergehenden Link finden
	elem = elem.previousSibling;
	while (null != elem) {
		if (elem.nodeName.toLowerCase() == 'a') {
			// return openPic(elem,'thePicture',''+vWidth+','+vSplit[3]+',status=0,menubar=0');
			elem.onclick();
		}
		elem = elem.previousSibling;
	}
}


// Funktion, um das Suchfeld bei Eingabe zu löschen und zu setzen
function setSearchWord(sWord, sMode) {
	fInput = document.getElementById('suchwort');
	switch(sMode) {
		case 0:
			if (fInput.value == sWord) fInput.value = '';
		break;
		case 1:
			if (fInput.value == '') fInput.value = sWord;
		break;
	}
}



/**
 *  Content Scroller mit Navigation und Mousewheel (Anzahl der Elemente)
 */
function auto_scrollable() {
	jQuery('.auto_scrollable').scrollable({
		circular: true, 
		mousewheel: true,
		speed: 400
	}).navigator({
		navi:'div.scrolltabs'
	}).autoscroll({
		autoplay: false,
		interval: 8000
	});
}


/**
 *  Ein- und Ausklapp-Boxen
 *  über die Rahmenelemente "Kappbox geschlosssen/offen"
 *  Hiermit ist es dem Redakteur möglich selbst zu entscheiden , welche Box
 *  beim aufruf der Seite offen und welche geschlossen sind.
 */
function acordion(root){
	jQuery(root+' div.close div.container').attr('style','display:none');
	jQuery(root+' div.klappbox .title').click(function(){
		jQuery(this).parent().find('div.container').slideToggle('slow');
		
		jQuery(this).parent().toggleClass('close');
		
		if (jQuery(this).parent().attr('class') == 'klappbox close') {
			jQuery(this).parent().removeAttr('title').attr('title','Inhalte einblenden');
		} else {
			jQuery(this).parent().removeAttr('title').attr('title','Inhalte ausblenden');
		}
	});
}

/* Tooltip */
function tooltip(){
	jQuery(".tooltipbox img[title]").tooltip();
}


/**
 *  Öffnet ein Overlay Fenster für Links, die mit der CSS-Klasse "overlay" ausgezeichnet sind.
 *
 * MHO: neuen Parameter hinzugefügt. Damit können wir dann die Inhalte der Tabseiten nach dem laden nochmal durchsuchen lassen - ohne das die ganze Seite nochmal durchsucht wird
 * @param string startelement von diesem Punkt aus an suchen (z.B. body / #c123 / .klasse)
 *
 */
function overlay(startelement) {
	jQuery(startelement+(startelement?' ':'')+'.overlay[rel]').overlay({
		mask: {
			color: '#fff',
			loadSpeed: 200,
			opacity: 0.6
		},
		onBeforeLoad: function() {
			var wrap = this.getOverlay().find('.contentWrap');
			
			// AST, 13.04.11: Über die Zusatzklasse 'iframe' lädt der Inhalt im iFrame,
			// dieses lieht im DIV.contentWrap und wird beim Aufruf der "normalen" Funktion überschrieben.
			if (this.getTrigger().hasClass('iframe')) {
				var wHeight = '';
				wrap.css('height', (jQuery(window).height()-270)+'px');
				iframe = this.getOverlay().find('iframe');
				iframe.attr('src', this.getTrigger().attr('href'));
			} else {
				wrap.first().html('');
				wrap.load(this.getTrigger().attr('href'));
			}
		}
	});
}

/**
 *  Observer setzen
 */
jQuery(document).ready(function() {
	acordion('body');
	auto_scrollable();
	tooltip();
	overlay('body');
});
