﻿/* GET COOKIE */
function getCookie(name) {
	
	var tmpArray = (document.cookie || '').split('; ');
	for (var i = 0; i < tmpArray.length; i++) {
		
		var tmpPair = tmpArray[i].split('=');
		if (tmpPair[0] == name) return tmpPair[1];
	}
};

/**
 * Schrumpft einen Text (uber die Font-Size) solange, bis die max. Hoehe erreicht wurde.
 *
 * @param	{string}	id				ID des Elements in dem der Text angepasst werden soll.
 * @param	{number}	maxHeight		Maximale Hoehe
 * @param	{number}	fontSize		Startgroesse fuer Font, wird Schritt fuer Schritt verkleinert ...
 */
function shrinkText(id, maxHeight, fontSize) {
						
	if (!(maxHeight || false) || !(fontSize || false)) return;
	
	var tmpEl = jQuery('#'+id).get(0) || false;
	
	if (!tmpEl) return;
	
	var tmpHeight = jQuery(tmpEl).height();
	
	while(tmpHeight > maxHeight) {
		
		fontSize--;
		jQuery(tmpEl).css({ 'font-size':fontSize+'px' });
		tmpHeight = jQuery(tmpEl).height();
	}
};

/* Open Teaser-Link */
	function openLinkLast(o) {
		
		openLinkNow(o.getElementsByTagName("a")[o.getElementsByTagName("a").length-1] || false);
	};

	function openLink(o) {
		
		openLinkNow(o.getElementsByTagName("a")[0] || false);
	};
	
	function openLinkNow(el) {
		
		if (!(el || false)) return; 
		
		if(!el.onclick) {
			
			var target = el.getAttribute('target') || '_self';
			
			if (target == '_blank') {
				
				target = el.blankGo = el.blankGo || eveJs.getUniqueId();
				
				el.setAttribute('target', target);
			}
			
			var newWindow = window.open(el.href, target);
			
			newWindow.focus();
			
		} else {
			
			el.onclick();
		}
	};

/* Open Link Abfrage */
function openTheLink(which) {
	location.href=which.href;
};

/* Top Events Highlighting */
	function changeColor(which) {
		
		if (!jQuery(which).hasClass('active')) {
			
			jQuery(which).addClass('active');
			
		} else {
			
			jQuery(which).removeClass('active');	
		}
	};

/* Row Teaser Highlighting */
	function hoverLink(which, what) {
		
		if (which.className != what) {
			
			which.className = what;
			
		} else {
			
			which.className = what + " active";
		}
	};

/* Boxen: Headline-Navigation */
	function hlNav(theId, theClass, thisOne) {
		var allClasses = getElementsByClass(theClass,document.getElementById("wrapper"),"ul");
		for (ii=0;ii<allClasses.length;ii++) {
			allClasses[ii].style.display = "none";
		}
		for (iii=0;iii<thisOne.parentNode.parentNode.childNodes.length;iii++) {
			if (thisOne.parentNode.parentNode.childNodes[iii].className != "counter") {
				thisOne.parentNode.parentNode.childNodes[iii].className = "";
			}
		}
		thisOne.parentNode.className = "current";
		document.getElementById(theId).style.display = "block";
	};

/* Language Selector */
	function chooseLang() {
		if (document.getElementById("languageSelector").style.display == "none") {
			document.getElementById("languageSelector").style.display = "block";
		}
		else {
			document.getElementById("languageSelector").style.display = "none";
		}
	};

/* Homepage Tabnav-Teaser-Schwitchen */
	function tabMe(point, thisone, whichTab, whichClasses) {
		var gradClasses = getElementsByClass(whichClasses,document.getElementById("wrapper"),"div");
		for (gra=0;gra<gradClasses.length;gra++) {
			gradClasses[gra].style.display = "none";
		}
		document.getElementById(point).style.display = "block";
		for (tbs=0;tbs<document.getElementById(whichTab).getElementsByTagName("a").length;tbs++) {
			document.getElementById(whichTab).getElementsByTagName("a")[tbs].className = "";
		}
		thisone.className = "active";
	};

/* Zusatzfunktion Elemente anhand von Klassen identifizieren */
	function getElementsByClass(searchClass,node,tag) {
		var classElements = new Array();
		
		if ( node == null ) node = document;
		
		if ( tag == null ) tag = '*';
		
		var els = node.getElementsByTagName(tag);
		var elsLen = els.length;
		var pattern = new RegExp("(^|\\\\s)"+searchClass+"(\\\\s|$)");
		for (i = 0, j = 0; i < elsLen; i++) {
			if ( pattern.test(els[i].className) ) {
				classElements[j] = els[i];
				j++;
			}
		}
		return classElements;
	};


/* Inputs leeren */
	function clearInput(what, where) {
		where.style.color = "#002C52";
		if(where.value == what) where.value = "";
		else where.select();
	};

	function fillInput(what, where) {
		where.style.color = "#ADADAD";
		if(where.value == "") where.value = what;
	};
	
	/* Inputs leeren auf der startseite im suchfeld */
	function clearInputSearch(what, where) {		
		where.style.color = "#002C52";
		//where.value = "";		
	};


/* Mouseover Effekt setzen */
	function setOver(where) {
		if (where.className != "act") {
			where.className = "act";
		} else {
			where.className = "";
		}
	};

/*
	// DEPRECATED:
	// Such Ticker
	
	var smallTime         = 800;	// Millisekunden, die die Suchwoerter stehen bleiben.
	var largeTime         = 5000;	// Millisekunden, die das letzte Wort stehen bleibt.
	var mainSearchElement = false;	// Element wird beim ersten Aufruf erst ermittelt, da es jetzt noch nicht existiert.
	
	function initializeSearchTicker() {
		
		// Wenn es nix zum scrollen gibt, dann auch nicht scrollen ...
		if ((searchTicker || []).length == 0) return;
		
		// Element ermitteln, wenn nicht schon geschehen ...
		mainSearchElement = jQuery('#mainSearch').get(0) || false;
		
		// Wenn es kein Suchticker-Element gibt, abbrechen ...
		if (!mainSearchElement) return;
		
		// onFocus und onBlur-Events setzen ...
		jQuery(mainSearchElement).focus(function() {
												 
			if ((this.timeoutId || false)) window.clearTimeout(this.timeoutId);
			this.timeoutId = false;
		});
		
		jQuery(mainSearchElement).blur(function() {
			
			this.actualPos = 0;
			if (this.value == searchTicker[(searchTicker.length - 1)]) this.timeoutId = setTimeout("searchScroller()", smallTime);
		});
		
		// Initial starten ...
		jQuery(mainSearchElement).blur();
	};
	
	function searchScroller() {
		
		// Wenn Maximum erreicht, dann zuruecksetzen ...
		if (mainSearchElement.actualPos >= searchTicker.length) mainSearchElement.actualPos = 0;
		
		// Neue Anzeige setzen ...
		mainSearchElement.value = searchTicker[mainSearchElement.actualPos];
		
		// Anzeige dauer bestimmen
		var anzeigeDauer = (mainSearchElement.actualPos == (searchTicker.length - 1)) ? largeTime : smallTime ;
		mainSearchElement.timeoutId = setTimeout("searchScroller()", anzeigeDauer);
		
		// Einen hochzaehlen...
		mainSearchElement.actualPos++;
	};
*/

/* Hoehen von Boxen aneinander anpassen */
	function changeHeigth(a, b) {
		if (document.getElementById(a).offsetHeight > document.getElementById(b).offsetHeight) {
			document.getElementById(b).style.height = document.getElementById(a).offsetHeight +"px";
		} else if (document.getElementById(b).offsetHeight > document.getElementById(a).offsetHeight) {
			document.getElementById(a).style.height = document.getElementById(b).offsetHeight +"px";
		}
		return false;
	};

/* Detail Ausklapp Teaser */
	var firstHeight;
	
	/*
	function secondary(getA, getB) {
		setText();
		document.getElementById("closebtn").style.display = "block";
		for (flox=0;flox<document.getElementById(getA).getElementsByTagName("p").length;flox++) {
			document.getElementById(getA).getElementsByTagName("p")[flox].style.width = "690px";
		}
		firstHeight = document.getElementById(getA).style.height;
		document.getElementById(getA).style.height = "auto";
	}
	*/
	
	function countText() {
		countTexts = getElementsByClass("cutText");
		for (check=0;check<countTexts.length;check++) {
			for (check2=0;check2<countTexts[check].parentNode.childNodes.length;check2++) {
				if (countTexts[check].parentNode.childNodes[check2].tagName == "A") {
					if (countTexts[check].parentNode.childNodes[check2].style.display != "none") {
						countTexts[check].parentNode.childNodes[check2].style.display = "none";
					} else {
						countTexts[check].parentNode.childNodes[check2].style.display = "inline";
					}
				}
			}
		}
	};

/* Text Ausklapp Teaser beschneiden */
	var oldCut = new Array();
	var oldCutContent = new Array(); // Array mit den alten Texten
	var newCutContent = new Array(); // Array mit den neuen Texten
	function cutText(which, theLength) {
		oldCut = getElementsByClass("cutText");
		for (cut=0;cut<oldCut.length;cut++) {
			oldCutContent[cut] = oldCut[cut].innerHTML;
			newCutContent[cut] = oldCut[cut].innerHTML.substring(0, theLength) + "...";
			oldCut[cut].innerHTML = newCutContent[cut];
		}
	};

	function setText () {
		var txts = new Array();
		txts = getElementsByClass("cutText");
		for (g=0;g<txts.length;g++) {
			for (mycut=0;mycut<oldCut.length;mycut++) {
				if (txts[g].innerHTML == newCutContent[mycut]) {
					txts[g].innerHTML = oldCutContent[mycut];
				}
				else if (txts[g].innerHTML == oldCutContent[mycut]) {
					txts[g].innerHTML = newCutContent[mycut];
				}
			}
		}
	};

/* Tabs oeffnen */

	/**
	 * Oeffnet ein Tab und macht dessen Inhalt sichtbar.
	 * @param	{mixed}		whichone	ID oder Element der Content-Box der Registerkarte.
	 * @param	{mixed}		selfone		ID oder Element des Tabs der Registerkarte.
	 */
	function openTab(whichone, selfone) {
		
		/** Ermittle, falls kein Element sondern ein String uebergeben wurde, die Elemente */
		var whichone  = (typeof whichone == "string") ? document.getElementById(whichone) : whichone;
		var theSelfed = (typeof selfone == "string") ? document.getElementById(selfone) : selfone;
		
		/** Besorge die Tab-Links und die Tab-Content-Boxen */
		var tabLinks     = theSelfed.parentNode.parentNode.getElementsByTagName("a");
		var myTabContent = getElementsByClass('hotBox');
		
		/** Alle Tabs zuruecksetzen */
		for (var i = 0; i < myTabContent.length; i++) myTabContent[i].style.display = 'none';
		for (var i = 0; i < tabLinks.length; i++) tabLinks[i].className = '';
		
		/** Neuauswahl anzeigen */
		whichone.style.display = 'block';
		theSelfed.className    = 'active';
	};

/* Alphabet oeffnen */
	function openAlphabet() {
		
		if (!jQuery('#searchFormBtn').hasClass('act')) {
			
			jQuery('#searchFormBtn').addClass('act');
			
			jQuery('#eventSearchContainer').show();
			
		} else {
			
			jQuery('#searchFormBtn').removeClass('act');
			
			jQuery('#eventSearchContainer').hide();
		}
	};

	/*
	function openFilter(filId, filClass) {
		if (document.getElementById(filId).style.display != "block") {
			var myFilterCount = getElementsByClass(filClass);
			for (z=0;z<myFilterCount.length;z++) {
				myFilterCount[z].style.display = "none";
			}
			document.getElementById(filId).style.display = "block";
		}
		else {
			document.getElementById(filId).style.display = "none";
		}
	}
	*/

	function highlightHeadline(thisself) {
		if (thisself.parentNode.parentNode.className == "head") {
			thisself.parentNode.parentNode.className = "head active";
		} else {
			thisself.parentNode.parentNode.className = "head";
		}
	};

/* Image / Medien Layer oeffnen */
	var cX = 0; var cY = 0; var rX = 0; var rY = 0;
	function UpdateCursorPosition(e){ cX = e.pageX; cY = e.pageY;};

	function UpdateCursorPositionDocAll(e){ cX = event.clientX; cY = event.clientY;};

	if(document.all) {
		document.onmousemove = UpdateCursorPositionDocAll; 
	} else {
		document.onmousemove = UpdateCursorPosition; 
	}

	function AssignPosition(d) {
		if(self.pageYOffset) {
			rX = self.pageXOffset;
			rY = self.pageYOffset;
		}
		else if(document.documentElement && document.documentElement.scrollTop) {
			rX = document.documentElement.scrollLeft;
			rY = document.documentElement.scrollTop;
		}
		else if(document.body) {
			rX = document.body.scrollLeft;
			rY = document.body.scrollTop;
		}
		if(document.all) {
			cX += rX; 
			cY += rY;
		}
		//d.style.left = (cX+10) + "px";
		d.style.top = (cY-270) + "px";
	};

	function ShowContent(d, myContent) {
		
		if (myContent) {
			for (iframe=0;iframe<document.getElementById(d).childNodes.length;iframe++) {
				if (document.getElementById(d).childNodes[iframe].tagName == "IFRAME") {
					document.getElementById(d).childNodes[iframe].src = myContent;
				}
			}
		}
		
		if(d.length < 1) { return; }
		var dd = document.getElementById(d);
		AssignPosition(dd);
		var allOut = getElementsByClass("mediaLayer",document.getElementById("wrapper"),"div");
		for (z=0;z<allOut.length;z++) {
			allOut[z].style.display = "none";
		}
		dd.style.display = "block";
	};
	
	/*jQuery(function() {
			
			return;
			
		// Alle Links holen ...
		var onclickEls = jQuery('a').get() || [];
		
		for (var i = 0; i < onclickEls.length; i++) {
			
			var tmpEl   = onclickEls[i];
			var tmpText = tmpEl.getAttribute('onclick') || '';
			
			if (tmpText == '') continue;
			
			var tmpReg = new RegExp("ShowContent", "g");
			var is = tmpReg.test(tmpText);
			
			if (!is) continue;
			
			tmpText = tmpText.split("ShowContent('").join('').split("', '").join(',').split("','").join(',').split("');").join('').split(',');
			url = tmpText[1];
			typ = tmpText[0];
			
			var tmpConfig = "{ width:650, height:600 }";
			tmpEl.onclick = function() {};
			tmpEl.removeAttribute('onclick');
			tmpEl.setAttribute('href', url);
			tmpEl.setAttribute('rel', tmpConfig);
			tmpEl.setAttribute('title', 'Alte Methode - muss noch geändert werden!');
			new eve.Popuplayer(tmpEl);
		}
	});*/
	
	function xxxShowContent(typ, url) {
		
		return false;
	};

	function HideContent(d) {
		for (iframe=0;iframe<document.getElementById(d).childNodes.length;iframe++) {
			if (document.getElementById(d).childNodes[iframe].tagName == "IFRAME") {
				document.getElementById(d).childNodes[iframe].src = "'#'";
			}
		}
		if(d.length < 1) { return; }
		var allOut = getElementsByClass("mediaLayer",document.getElementById("wrapper"),"div");
		for (z=0;z<allOut.length;z++) {
			allOut[z].style.display = "none";
		}
	};

	function ReverseContentDisplay(d) {
		if(d.length < 1) { return; }
		var dd = document.getElementById(d);
		AssignPosition(dd);
		if(dd.style.display == "none") { dd.style.display = "block"; }
		else { dd.style.display = "none"; }
	};
	
/* Image Layer */

	function fillLayerImage() {
		//Image austauschen
		document.getElementById("theLayerImage").src = layerImageArray[actImage-1]["ImagePath"];
		document.getElementById("theLayerImage").alt = layerImageArray[actImage-1]["Desciption"];
		// document.getElementById("fototext").innerHTML = layerImageArray[actImage-1]["Desciption"];
		// document.getElementById("fototext2").innerHTML = layerImageArray[actImage-1]["Author"];
	};

	function writeActimage() {
		//Bildnummer setzen
		for (go2=0;go2<document.getElementById("imageCount").childNodes.length;go2++) {
			if (document.getElementById("imageCount").childNodes[go2].tagName == "B") {
				document.getElementById("imageCount").childNodes[go2].innerHTML = actImage;
			}
		}
	};

	function imageRotator(direction, startimage) {
		if (direction == "start") {
			if (startimage) {
				actImage = startimage;
			} else {
				actImage = 1;
			}
			// Anzahl der Bilder eintragen
			for (go1=0;go1<document.getElementById("imageCount").childNodes.length;go1++) {
				if (document.getElementById("imageCount").childNodes[go1].tagName == "SPAN") {
					document.getElementById("imageCount").childNodes[go1].innerHTML = layerImageArray.length;
				}
			}
			writeActimage();
			fillLayerImage();
		}
		if (direction == "next") {
			if (actImage < layerImageArray.length) {
				actImage++;
				writeActimage();
				fillLayerImage();
			}
		}
		if (direction == "last") {
			if (actImage > 1) {
				actImage--;
				writeActimage();
				fillLayerImage();
			}
		}
	}

/* Onload Funktionen */
	function setHeadline () {
		if (document.getElementById("tixHead")) {
			if (document.getElementById("tixHead").innerHTML.length > 80) {
			document.getElementById("tixHead").className = "long";
			}
		}
	};

	function onloadDetail() {
		setHeadline ();
		cutText('cutText', 250);
		if (document.getElementById("myInfoBox")) {
			if (document.getElementById("myFotoBox")) {
				changeHeigth('myInfoBox', 'myFotoBox');
			}
		}
		if (document.getElementById("rightbox")) {
			changeHeigth('leftbox', 'rightbox');
			planSwitch('start');
			if (document.getElementById('saalplan')) {
				changeHeigth('planSwitcher', 'saalplan');
			}
		}
	};

	function onloadHome() {
		
		// Wurde ersetzt durch neue Funktion
		// initializeSearchTicker();
		
		// Wurde ersetzt durch neue Funktion
		// countTeasers();
	};

//	<![CDATA[///////////////////////////////////////////////////////////////////////
//	jQuery script section: using jQuery 1.2.6 - New Wave Javascript
//	Use jQuery.noConflict due to compatibility
//	Classes should start with jQuery and contain: what happens, where it happens
//	and which element is affected e.g. jQueryMoveHeaderLogo. This classes are only
//	used to invoke jQuery and have not attached any styles
//	////////////////////////////////////////////////////////////////////////////////

//	Show / Hide
/*
	jQuery(function() {
		
		jQuery("a.jQueryShowEventInfoTicketButton").click(function() {
			jQuery(".btnRow").fadeIn();
			return false
		});
		
		jQuery("#closebtn").click(function() {
			jQuery(".btnRow").fadeOut();
			return false
		});
		
		jQuery("a.jQueryHideEventInfoTicketButton").click(function() {
			jQuery(".btnRow").fadeOut();
			return false
		});
	});
*/

//	Animated scrolling 
	jQuery(document).ready(function() {
		
		jQuery('a[href=#fanReports],a[href*=#planSwitcher],a[href*=#availableTickets],a[href*=#ticketsLink],a[href*=#ticketFansale],a[href*=#full]').click(function() {
			//console.debug(this.href);
			if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
				var $target = jQuery(this.hash);
				$target = $target.length && $target || $('[name=' + this.hash.slice(1) +']');
				
				if ($target.length) {
					var targetOffset = $target.offset().top;
					jQuery('html,body').animate({scrollTop: targetOffset}, 1000);
					return false;
				}
			}
		});
	});
	

//	jQuery script section /////////////////////////////////////////////// // --> ]]>

