
/**
 * versorgt den IE mit :hover-State auch fuer nicht-a-elemente
 *
 */
sfHover = function() {
	var sfEls = document.getElementById("mainNav").getElementsByTagName("LI");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
			this.className+=" sfhover";
			if(this.getElementsByTagName("UL").length > 0) {
				ie_apply_zindex(this.getElementsByTagName("UL")[0], 50);
			}
		}
		sfEls[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
		}
	}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);

/**
 *  popup
 *	 oeffnet ein neues browser-fenster als pop-up mit entsprechenden parametern
 *
 *  @var  	string  ziel-url
 *  @var  	string  breite des pop-up fensters
 *  @var  	string  hoehe des pop-up fensters
 *  @return	void	  null
 */
 function popup(url,breite,hoehe,params)
{
	if(!params) { params = 'scrollbars=no'}
	if(!breite) { breite = '600' }
	if(!hoehe) { hoehe = '515' }
    theWindow = window.open(url,'theWindow','width=' + breite + ',height=' + hoehe + ','+params);
	 if(theWindow) {theWindow.focus();}
}

/**
 * flip
 * fuer die TP-Box: macht aus dem Link "weitere Themenpakete" bei ausgeklappter Box "liste schliessen".
 * @var linkObj	der link selbst als objekt
 * @var slidebox	id der slidebox, die angetriggert werden soll 
 * @var text		neuer  linktext, falls er geändert werden soll
 * @ return	void	null
 */
 function flip(linkObj, slidebox, text) {
 	if(!oldLinkText[slidebox]) {oldLinkText[slidebox] = linkObj.firstChild.nodeValue; }
	if(linkObj.firstChild.nodeValue == oldLinkText[slidebox]){
		linkObj.firstChild.nodeValue = text;
		linkObj.style.backgroundImage = "url(/img/icons/up_icon.gif)";
		if (slidebox) { ie_apply_zindex(document.getElementById(slidebox), 2); }
	}
	else {
		linkObj.firstChild.nodeValue = oldLinkText[slidebox];
		linkObj.style.backgroundImage = "url(/img/icons/down_icon.gif)";
	}
 }

/**
 *  onloadWrapper
 *	 wrapper-Funktion fuer Funktionen, die beim Laden einer Seite ausgefuehrt werden sollen.
 *
 *  @return	void	  null
 */
 function onloadWrapper(){
 	styleContentAd();
	oldLinkText = new Array();
	switched = new Array();
 }
 
 /**
  *  styleContentAd()
  *	 sucht nach einer Content-Ad im DOM. Wenn eine ContentAd gefunden wird, werden die 
  *  Striche ober- und unterhalb der Ad eingefuegt.
  *  Ob eine ContentAd angezeigt vorhanden ist, wird geprueft, indem nach 0.gif gesucht wird. 
  *  Sonderfall: Wenn eine ContentAd auf einer Index-Seite angezeigt wird, muss hinter selbiger ein Abstand
  *  vergroessert werden, damit der folgende Teaser-Container nicht in die CA "hineinlappt".
  *  Dies wird durch Abfragen der Klasse des naechsten Kontens geprueft.
  *
  *  @return	void	  null
  */
 function styleContentAd(){
 	var CAcontainer = document.getElementById("bannerContent");
	var chkCA = true;
 	/* Funktioniert nur bei Banman-Auslieferung!
	if(CAcontainer && CAcontainer.getElementsByTagName('img').length > 0) {
		if(CAcontainer.getElementsByTagName('img')[0].src.indexOf('/0.gif') != -1) {
			chkCA = false;
		}
	}
	*/
	
	if(CAcontainer && chkCA == true) {
		// Content-Ad-Einblendung gefunden, div-tags generieren
		var striche = document.createElement('div');
		var inner = document.createTextNode(' ');
		striche.className = 'line dotGr caLineTop';
		striche.appendChild(inner);
		var striche2 = document.createElement('div');
		var inner2 = document.createTextNode(' ');
		striche2.className = 'line dotGr caLineBot';
		striche2.appendChild(inner2);
		
		// Auf manchen Sonderseiten haben wir den Inhalt direkt in mainCol, articleText ist dort nicht vorhanden. Dirty, aber funktioniert...
		if(!document.getElementById('articleText')){
			var parentElem = document.getElementById('mainCol');
			// Fuer die Rubrik-Seiten mit Pager-Funktion 
			if (parentElem.getElementsByTagName("div")[0].id.substring(0,4) == "Page" ) {
				parentElem = parentElem.getElementsByTagName("div")[0];
			}
		}
		else {
			var parentElem = document.getElementById('articleText');
		}
		
		// Striche ins DOM einfuegen
		parentElem.insertBefore(striche, CAcontainer);
		parentElem.insertBefore(striche2, CAcontainer.nextSibling);
	}

 }
 
 /**
  * fsPlayer
  * generiert den FullSize-Player als "quasi-Power-Layer"
  */
 function fsPlayer(theMovieName,theVideo,theImage,parentPlayerName){
 	if(!document.getElementById) return;
	bodyTag = document.getElementsByTagName('body')[0];
	var keyNode = document.getElementById('top');
	// kleinen Player stoppen
	sendEvent(parentPlayerName,'stop');
	
	// kleinen player unsichtbar schalten
	parentPlayer = document.getElementById(parentPlayerName);
	parentPlayer.style.position = 'absolute';
	parentPlayer.style.left = '-500px';
	
	// Im IE alle PullDowns ausblenden, koennen dort nicht verdeckt werden
	if (document.all){
		var selboxElements = document.getElementsByTagName('select');
		for (var i = 0; i < selboxElements.length; i++)
			selboxElements[i].style.visibility = 'hidden';
	}
	// hg-div erzeugen
	var backGr = document.createElement('div');
	backGr.id = 'playerLayer';
	css = backGr.style;
    css.top = '0px';
    css.left = '0px';
	if(document.all) {
		css.height = bodyTag.offsetHeight+'px';
		css.filter = 'alpha(opacity=70)';
		css.background = '#E9E9E9';
	}
	else {
		css.height = (bodyTag.offsetHeight+29)+'px';
		css.background = 'url("/img/fsPlBg.png")';
	}
   css.width = '100%';
  	css.position = 'absolute';
   css.zIndex = '999998';
	
	//player-div erzeugen
	var fsPl = document.createElement('div');
	fsPl.id = 'fsPlayer';
	css = fsPl.style;
	css.width = '512px';
	css.height = '424px';
	if(document.all) {
		css.filter = 'alpha(opacity=100)';
	}		
	css.background = '#fff';
	css.position = 'absolute';
	css.border = 'solid 1px #c0c0c0';
	var scrollPos = getScrollPos();
	css.top = scrollPos[1] + 120 + 'px';
	css.left = '190px';
	
	// layer einsetzen
	backGr.appendChild(fsPl);
	bodyTag.insertBefore(backGr,keyNode);
	
	// titelleiste erzeugen und einsetzen
	var titleBar = document.createElement('div');
	titleBar.id = 'titleBar';
	titleBar.className = 'fsPlayerHeader';
	css = titleBar.style;
	if(document.all) {
		css.filter = 'alpha(opacity=100)';
	}
	css.backgroundColor = '#fff';	
	css.clear = 'both';
	titleBar.innerHTML = '<h2>'+theMovieName+'</h2> <a href="javascript:removeFsPl(\'playerLayer\')">schlie&szlig;en</a><hr class="clearer />';
	fsPl.appendChild(titleBar);
	
	// titelleiste draggable machen
	// new Draggable('fsPlayer', {} );
	
	// player-platzhalter erzeugen und einsetzen
	var playerPh = document.createElement('p');
	playerPh.id = 'playerPh';
	fsPl.appendChild(playerPh);
	
	//flashObject erzeugen
	var fpGr = new SWFObject("/swf/flvplayer.swf","single","512","404","7");
	fpGr.addVariable("file",theVideo);
	fpGr.addVariable("image",theImage);
	fpGr.addVariable("logo","/img/hwi_icon.png");
	fpGr.addVariable("usefullscreen","false");
	fpGr.addVariable("autostart","true");	
	fpGr.addVariable("width","512");
	fpGr.addVariable("height","404");
	fpGr.addVariable("wmode","transparent");
	fpGr.write("playerPh"); 
}

/**
 * fullSize Player entfernen
 */ 
function removeFsPl(theId){
	bodyTag.removeChild(document.getElementById(theId));
	parentPlayer.style.left = '0px';
	parentPlayer.style.position = 'relative';
	// Im IE alle PullDowns wieder einblenden
	if (document.all){
		var selboxElements = document.getElementsByTagName('select');
		for (var i = 0; i < selboxElements.length; i++)
			selboxElements[i].style.visibility = 'visible';
	}
}

/**
 * This is a javascript handler for the player and is always needed.
 */
function thisMovie(movieName) {
    if(navigator.appName.indexOf("Microsoft") != -1) {
		return window[movieName];
	} else {
		return document[movieName];
	}
}

/**
 * This is a javascript handler for the player and is always needed.
 */
function sendEvent(movie,typ,prm) {
		document.getElementById(movie).sendEvent(typ,prm);
}
/**
 * Informationen aus dem Flv-Player abholen
 * Bei Click auf Play-Taste Video-Quellnachweis einblenden
 */
function getUpdate(typ,pr1,pr2,pid) {
	if(!switched[pid]) switched[pid] = false;
	if(typ == "state" && pr1 == 2){
		var qnsList =  new Array();
		var qns = thisMovie(pid).parentNode.parentNode.getElementsByTagName("P");
		for (i=0;i<qns.length;i++) {
			if (qns[i].className  == "qn") qnsList.push(qns[i]);
		}
		for(i=0;i<qnsList.length;i++){
			if(qnsList[i].style.display == "none" && switched[pid] == false) {
				qnsList[i].style.display = "";
				qnsList[i-1].style.display = "none";
				switched[pid] = true;
			}
		}
	}
}

/**
 * Die Scrollposition plattformunabhaengig ausfindig machen 
 */
function getScrollPos(){
	var x,y;
	if (self.pageYOffset) {
		// all except Explorer
		x = self.pageXOffset;
		y = self.pageYOffset;
	}
	else if (document.documentElement && document.documentElement.scrollTop) {
		// Explorer 6 Strict
		x = document.documentElement.scrollLeft;
		y = document.documentElement.scrollTop;
	}
	else if (document.body) {
		// all other Explorers
		x = document.body.scrollLeft;
		y = document.body.scrollTop;
	}
	return new Array(x,y);
}

/**
 * Galerie-Navigation vorwaerts
 */
function nextPage(){
	uls = document.getElementById('mmGallery').getElementsByTagName('ul');
	var rew = document.getElementById('rew');
	var fwd = document.getElementById('fwd');
	for(i = 0; i < uls.length; i++){
		if(uls[i].style.display == '') { var disp = i; }
	}
	if(uls[disp+1]){
		uls[disp].style.display = 'none';
		uls[disp+1].style.display = '';
		rew.src = '/img/gal_arrow_l.gif';
	}
	if(!uls[disp+2]){ 
		fwd.src = '/img/gal_arrow_br.gif';
	}
}

/**
 * Galerie-Navigation rueckwaerts
 */
function prevPage(){
	uls = document.getElementById('mmGallery').getElementsByTagName('ul');
	var rew = document.getElementById('rew');
	var fwd = document.getElementById('fwd');
	for(i = 0; i < uls.length; i++){
		if(uls[i].style.display == '') { var disp = i; }
	}
	if((disp-1) >= 0 && uls[disp-1]){
		uls[disp].style.display = 'none';
		uls[disp-1].style.display = '';
		fwd.src = '/img/gal_arrow_r.gif';
	}
	if(disp-2 < 0){ 
		rew.src = '/img/gal_arrow_bl.gif';
	}
}


/**
 * BUGFIX-FUNKTION fuer IE6 - manuelle z-index-vergabe
 * benutzt z.B. in hauptmenue-pulldowns
 */
var iaz_preserved_elements = [];
var iaz_preserved_zindexes = [];
function ie_apply_zindex(element_id, zindex, context_id) {
   // default values
   if (undefined == zindex) { zindex = 1; }
   var context = (undefined == context_id ? $(context_id) : $(document.body));
   var element = $(element_id);

   // undo past ie_apply_zindex()
   for (i = iaz_preserved_elements.length-1; i >= 0; i--) {
      iaz_preserved_elements[i].setStyle({'z-index': iaz_preserved_zindexes[i]});
   }
   iaz_preserved_elements = [];
   iaz_preserved_zindexes = [];

   // find relative-positioned ancestors of element within context
   element.ancestors().each(
      function(ancestor) {
         if ('relative' == ancestor.getStyle('position')) {
            // preserve ancestor's current z-index
            iaz_preserved_elements.push(ancestor);
            iaz_preserved_zindexes.push( ancestor.getStyle('z-index') );

            // apply z-index to ancestor
            ancestor.setStyle({'z-index': zindex});
         }
         if (ancestor == context) { throw $break; }
      }
   );
}
