/* Browser-Pruefung */
var ua = navigator.userAgent.toLowerCase();

var isMac   = (ua.indexOf('mac')>-1)?1:0;
var isWin   = (ua.indexOf('win')>-1)?1:0;

var isGecko   = (ua.indexOf('gecko')>-1)?1:0;
var isSafari   = (ua.indexOf('safari')>-1)?1:0;

var isOpera = (ua.indexOf('opera')>-1)?1:0;

var isIE    = (ua.indexOf('msie')>-1 && !isOpera)?1:0;

var isIEWin = (isIE && isWin && !isOpera)?1:0;
var isIEMac = (isIE && isMac && !isOpera)?1:0;
var isIEWinCE  = (isIE && ua.indexOf('windows ce')>-1)?1:0;

var isWPrint   = (window.print)?1:0;
 
var isDOM   = (document.getElementById)?1:0;
var isIE4   = (isIE && !isDOM)?1:0;
var isNS4   = (document.layers)?1:0;

/* allg. Variablen */
var a_URL_KIKAShop1 = "www.kika-shop.de";  // URL des KiKA-Shops ohne http:// !!!
var a_URL_KIKAShop2 = "www.kikashop.de";
var a_URL_KIKAShopWeiche = "/_org/shop/index.shtml";  // Vorschaltseite fuer den KiKA-Shop, diese Seite liegt auf den KiKA-Servern
var a_confirmText = "Hier verlässt du die KiKA-Internetseiten!\n\nDer KiKA ist nicht für den Inhalt\nexterner Internetseiten verantwortlich!";
var a_linkAltZusatzText = "Der Link wird in einem neuen Browser-Fenster geöffnet.";  // Suffix fuer title-Attribute fuer externe Links
var a_defaultPopupWidth = 600;  // Standardbreite fuer PopUp-Fenster
var a_defaultPopupHeight = 400;  // Standardhoehe fuer PopUp-Fenster


/* Seite initialisieren */
function Init()  {
  if(isDOM)  {
		foLoadTTL();
    setTagAttributes();
		getPrintvalue();
}

/* Grafiken fuer Bildwechsel vorausladen */
n_sf_such = new Image(); 
n_sf_such.src = "/s/_inc/titelleiste/_img/sf_such_a.gif";
h_sf_such = new Image(); 
h_sf_such.src = "/s/_inc/titelleiste/_img/sf_such_b.gif";
d_sf_such = new Image(); 
d_sf_such.src = "/s/_inc/titelleiste/_img/sf_such_d.gif";  }

/* Auslesen und Auswerten der Variable print - Wird mit dem Laden einer shtml-Datei ausgeführt */
function getPrintvalue() {
		if(window.location.search != "") 
			{
				var undef = window.location.search.split("?"); /*Adresse von Variablen trennen*/
				var args = undef[1].split("&"); /*Variablen voneinander Trennen und in Array speichern*/

				for(i = 0; i<=args.length; i++) /*Array an Variablen durch gehen und nach print=true suchen -> wenn gefunden, dann print-Ausgabe*/
				{
					if(args[i] == "print=true") 
					{
						/* Für den Test --- Diese CSS-Datei muss später ins Template eingefügt werden, wegen dem Druck ohne Drucken-Button
						print_all = document.createElement('link'); 
            print_all.setAttribute('type', 'text/css'); 
            print_all.setAttribute('rel', 'stylesheet'); 
            print_all.setAttribute('href', '/_css/print.css'); 
            print_all.setAttribute('media', 'print');
						document.getElementsByTagName("head")[0].appendChild(print_all); */
						
						var j = document.getElementsByTagName("link").length;
						for (var i = 0; i < j; i++) 
							{
								if (document.getElementsByTagName("link")[i].rel == "stylesheet")
									{
										document.getElementsByTagName("link")[i].media  = "all";
										save_print_css = document.getElementsByTagName("link")[i].href;
										document.getElementsByTagName("link")[i].href = "global.css";
										document.getElementsByTagName("link")[i].href = save_print_css;
									}
							}
						window.setTimeout('window.print()',1); /*Drucker-Fenster aufrufen*/
					}
				}
			}
}

/* a-Tag-Attribute setzen wg. Linkzielen in neuen Browserfenstern, Popups etc. */
function setTagAttributes()  {
	var aTags = document.getElementsByTagName("a");

	for(i=0; i<aTags.length; i++)  {
		var a = aTags[i];
		var target = null;
		var rel = Trim(a.getAttribute("rel")," ");
		var href = a.getAttribute("href");

		if (href && rel)  {  // nur Links mit rel-Attr. durchlaufen, keine Anker
			if (rel.indexOf("blank")==0)  {
				appendToTitle(a, a_linkAltZusatzText);
				a.setAttribute("target", "_blank");  }
			else if (rel.indexOf("confirm:")==0)  {
				appendToTitle(a, a_linkAltZusatzText);
				a.setAttribute("target", "_blank");
				a.onclick = onClickActionConfirmMsg;  }
			else if (rel.indexOf("confirm")==0)  {
				appendToTitle(a, a_linkAltZusatzText);
				a.setAttribute("target", "_blank");
				a.onclick = onClickActionConfirm;  }
			else if (rel.indexOf("popup:")==0)  {
				appendToTitle(a, a_linkAltZusatzText);
				if (href.charAt(href.length-1)=="#") a.onclick = onClickActionPopupDisable;
				else a.onclick = onClickActionPopup;  }
			else if (rel.indexOf("popup")==0)  {
				appendToTitle(a, a_linkAltZusatzText);
				a.onclick = onClickActionPopupDefault;  }  }  }

	/* target fuer Formulare setzen */
	for(i=0;i<document.forms.length;i++)  {
		for(j=0;j<document.forms[i].elements.length;j++)  {
			if((document.forms[i].elements[j].type == "hidden") && (document.forms[i].elements[j].name == "js_form_target"))  
				document.forms[i].elements[j].form.setAttribute("target", document.forms[i].elements[j].value);  }  }
}

function appendToTitle(n,s)  {
  var t = (isIE)?"\n":" - ";
  if (n.getAttribute("title"))
    n.setAttribute("title", n.getAttribute("title") + t + s);
  else
    n.setAttribute("title", s);  }

function onClickActionConfirm()  {
  return confirm(a_confirmText);  }

function onClickActionConfirmMsg()  {
  return confirm(getAttrValue("msg",this.rel));  }

function onClickActionPopupDefault()  {
	var popUpName = 'popUpWin_'+Math.round(Math.random()*100000);
  popUpWin = open(this.href,popUpName,'location=no,menubar=no,resizable=no,scrollbars=no,status=no,toolbar=no,width='+a_defaultPopupWidth+',height='+a_defaultPopupHeight);
  popUpWin.focus();
  return false;  }

function onClickActionPopup()  {
	var popUpName = 'popUpWin_'+Math.round(Math.random()*100000);
  popUpWin = open(this.href,popUpName,getAttrValue("popupattr",this.rel));
  popUpWin.focus();
  return false;  }

function onClickActionPopupDisable()  {
	var popUpName = 'popUpWin_'+Math.round(Math.random()*100000);
  popUpWin = open(getAttrValue("href",this.rel),popUpName,getAttrValue("popupattr",this.rel));
  popUpWin.focus();
  return false;  }

function getAttrValue(iAttr,iStr)  {
  var rStr = "";
  var trenner = ",";
  var popAttr = ",width,height,left,top,location,menubar,resizable,scrollbars,status,toolbar,";
  var i, j, x, y, l, AttrArr, ValArr;
  
  if (!iAttr || !iStr) return rStr;
  if ((typeof(iAttr)=="undefined") || (typeof(iStr)=="undefined")) return rStr;
  if (!iAttr.length || !iStr.length) return rStr;
  iStr = Trim(""+iStr," ");
  iAttr = iAttr.toLowerCase();
  i = iStr.indexOf(":");
  if (i>-1) iStr = Trim(""+iStr.substring(i+1,iStr.length)," ");  // Text bis einschließlich erstem Doppelpunkt löschen
  if (!iStr.length) return rStr;
  ValArr = iStr.split(trenner);
  l = ValArr.length;
  for (i=0; i<l; i++)  {  // Fehler bei "href=index.cfm?id=25,6&kd=18" beheben --> splitting beim Komma
    j = ValArr[i]; x = j.indexOf("="); y = j.indexOf("&");
	if (((x<1) || ((y<x) && (y!=-1))) && (i>0))  {
      ValArr[i] = ValArr[i-1] + trenner + j;
	  ValArr[i-1] = "";  }  }
  AttrArr = new Array(l);
  for (i=0; i<l; i++)  {  // Array aufteilen in zwei Arrays --> Attribute und Werte
    j = ValArr[i]; x = j.indexOf("=");
	if (x>0)  {
	  AttrArr[i] = Trim(j.substring(0,x).toLowerCase()," ");
	  ValArr[i] = Trim(j.substring(x+1,j.length)," ");  }
	else AttrArr[i] = "";  }
  if (iAttr == "popupattr")  {  // Attribut-String für ein Popup-Fenster zurückgeben
    x=0; y=0;
	for (i=0; i<l; i++)  {
	  if (AttrArr[i].length && ValArr[i].length)  {
	    j = AttrArr[i];
		if (popAttr.indexOf(","+j+",")>-1) rStr += j + "=" + ValArr[i] + ",";
		if (j=="width") x=1;
		if (j=="height") y=1;  }  }
	if ((x+y)==0) rStr += "width=" + a_defaultPopupWidth + ",height=" + a_defaultPopupHeight + ",";
	rStr = Trim(rStr.substring(0,rStr.length-1),",");
	return rStr;  }
  else  { // Wert des übergebenen Attributs zurückgeben
	for (i=0; i<l; i++)  {
	  if (AttrArr[i]==iAttr)  {
	    rStr = Trim(ValArr[i],",");
		rStr = rStr.replace(/\\n/g,"\n");
		return rStr;  }  }  }
  return rStr;  }


/* Hilfsfunktion Bildwechsel im Titelleisten-Suchformular */
function sefHG(strClass)  {
	var str = "a-ef-suche-" + strClass;
	var id = "a-ef-suche";
	document.getElementById(id).className = (document.getElementById(id).className=="a-ef-suche-h")?str:"a-ef-suche-h";  }

/* Hilfsfunktion zum Deaktivieren der Such-Schaltflaeche im Titelleisten-Suchformular */
function ssfHG(bolSwitch)  {
	if (document.getElementById("a-sf-suche"))  {
		document.getElementById("a-sf-suche").disabled = bolSwitch;
		document.getElementById("a-sf-suche").src = (bolSwitch)?d_sf_such.src:a_sf_such.src;  }
	if (document.getElementById("b-sf-suche"))  {
		document.getElementById("b-sf-suche").disabled = bolSwitch;
		document.getElementById("b-sf-suche").src = (bolSwitch)?d_sf_such.src:a_sf_such.src;  }  }

/* Funktion zum Anzeigen der Titelleisten-Flash-Datei */
function foLoadTTL()  {
	if (document.getElementById("a-ttl-flash"))  {
		var fo = new FlashObject("/s/_inc/titelleiste/_swf/titelleiste.swf", "a-ttl-flashobj", "840", "80", "6", "#fac800", false);
		fo.addParam("menu","false");
		fo.addParam("allowscriptaccess","samedomain");
		fo.addParam("scale","exactfit");
		fo.write("a-ttl-flash");  }  }



/* Pixel-Funktion fuer F- und JS-Applikationen */
/* 1. Parameter = Aktion --> Pflichtparameter --> wird umgewandelt zu virt. Verz. und Dateiname */
/* 2. Parameter = virtuelles Verzeichnis --> optionaler Parameter; ersetzt das virt. Standard-Verz. _swf */
/* 3. Parameter = optionaler Verz.name, der aus der Pfadangabe gelöscht werden soll - z.B. scripts oder scripts4 */
function fIVW(ai) {
	var f1 = "http://kika.ivwbox.de/cgi-bin/ivw/CP/kika";		// 1. fixer Teil des Pixels
	var f2 = ";k=61&i=kika";																// 2. fixer Teil des Pixels
	var f3 = "&p=www.kika.de";															// 3. fixer Teil des Pixels
	var a = "index";																				// Standardwert für die F-Aktion, die in die URI eingefügt wird
	var v = "_swf";																					// Standardwert des virt. Verz. mit vorangestelltem Slash
	var s = ".shtml";																				// Endung der virt. Datei

	// Aktion prüfen
	if (ai) {
		if (ai.length) {
			a = ai.replace(/\W+/g,"_");
			a = a.replace(/_+/g,"_");  } }
	a = "/" + a;
	var auri = encodeURIComponent(a).replace(/_/g, "%5F");

	// falls 2. Parameter an die Funktion übergeben wurde, dann diesen als virt. Verz. verwenden
	if (fIVW.arguments[1]) {
		if (fIVW.arguments[1].length) {
			v = fIVW.arguments[1].replace(/\W+/g,"_");
			v = v.replace(/_+/g,"_");  } }
	v = "/" + v;
	var vuri = encodeURIComponent(v).replace(/_/g, "%5F");

	// Dateipfad ermitteln
	var p = document.location.pathname;
	p = p.replace(/[^\/]*\.[^\.]*$/,"");											// Dateinamen entfernen
	p = p.replace(/\/fernsehen\/a_z\/[^\/]*\//gi,"/fernsehen/");	// p/i-Parameter vereinfachen: /fernsehen/a_z/x/ wird zu /fernsehen/

	// falls 3. Parameter an die Funktion übergeben wurde, dann diesen Verzeichnisteil aus der Pfadangabe entfernen
	if (fIVW.arguments[2]) {
		if (fIVW.arguments[2].length) {
			var l = Trim(fIVW.arguments[2],' ');
			if (l.charAt(0)=='/') l = l.substr(1);	// Slashes vorn und hinten entfernen
			if (l.charAt(l.length-1)=='/') l = l.substr(0,l.length-1);
			if (l.length) {
				l = l.replace(/\s+/g,"_");
				l = '/' + l.replace(/_+/g,"_") + '/';	// Slashes vorn und hinten anfügen
				var pos = p.indexOf(l);
				while (pos >= 0) {	// Pfadangabe herauslöschen
						p = p.substring(0,pos) + '/' + p.substring(pos+l.length);
						pos = p.indexOf(l,pos+1);  } } } }

	p = p.replace(/\/$/,"");	// letzten Slash entfernen
	var puri = encodeURIComponent(p).replace(/_/g, "%5F");

	// Variablen vorab zusammenführen
	p = p + v + a;
	puri = puri + vuri + auri + auri + s;

	// Referer und Zufallsparameter erstellen
	var r = "?r=" + escape(document.location.href);
	var d = "&d=" + (Math.random()*100000);

	// IVW-Pixel zusammensetzen und aufrufen
	var ivw = f1 + p + f2 + p + "/" + f3 + puri + r + d;
	//Probeausgabe
/*	alert(ivw);*/
	document.images[document.images.length-1].src = ivw;   }



/* allg. Hilfsfunktionen */

/* Focus in ein Eingabefeld eines Formulars setzen - Uebergabe: ID bzw. Name des Formulars und des Eingabefeldes */
function formularfocus(formChr,objChr)  {
	for(i=0;i<document.forms.length;i++)
		if((document.forms[i].name == formChr) || (document.forms[i].id == formChr))
			for(j=0;j<document.forms[i].elements.length;j++)
				if((document.forms[i].elements[j].name == objChr) || (document.forms[i].elements[j].id == objChr))
					document.forms[i].elements[j].focus();  }

/* Leerzeichen am Anfang und Ende von Strings loeschen */
function Trim(iStr, rChr)  {
  var rStr = iStr;
  if (iStr && rChr)  {
    if (iStr.length && rChr.length)  {
      while ('' + rStr.charAt(0) == rChr)
        rStr = rStr.substring(1,rStr.length);
      while('' + rStr.charAt(rStr.length-1) == rChr)
        rStr=rStr.substring(0,rStr.length-1);  }  }
  return rStr;  }

/* doppelte Zeichen innerhalb von Strings loeschen */
function removeExtraSpaces(string, delimiter)  {
	var returnString = "";
	splitstring = string.split(delimiter);
		for(i = 0; i < splitstring.length; i++)
			{if (splitstring[i]!="") returnString += splitstring[i] + delimiter;}
	return returnString;  }


/* DWW Bildwechsel-Funktionen */
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];  }  }  }

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;  }

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;  }

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];  }  }

/* DWW-PopUp-Fenster-Funktion */
function MM_openBrWindow(theURL,winName,features) {
	w = window.open(theURL,winName,features);
	w.focus();  }
	
/* Funktion zum Aufruf der Druckansicht */
function drucken() {
	if (window.location.href != "")
		{
			var url = window.location.href;
			/*Falls die URL einen Anker enthält wird dieser gelöscht*/
			var url_split = url.split("#");
			/*Variable Print in URL auf TRUE setzen, damit die Drucken css-Datei am Bildschirm ausgegeben wird*/
			/*Prüfen ob schon Variablen an der URL angehängt sind, um das richtige Trennzeichen zu wählen*/
			if (window.location.search != "") {print_url = url_split[0] + '&print=true'} else {print_url = url_split[0] + '?print=true'}
			/*generierte URL aufrufen*/
			window.open(print_url);
		}
}


/* Votingaufloesung in der Seite ohne Neuladen (AJAX-Version) */

// Formularfelder pruefen, falls eine Abstimmung stattfindet
function chkOptionValue(InputForm, OptName, Message)  {
	var returnValue = false;
	var OptFocus = -1;
	for(i=0;i<InputForm.elements.length;i++)
		if(InputForm.elements[i].name == OptName)  {
			if(InputForm.elements[i].checked == true) returnValue = InputForm.elements[i].value;
			if(OptFocus<0) OptFocus=i;  
			}
	if (!returnValue)  {
		alert(Message);
		if(OptFocus>-1) InputForm.elements[OptFocus].focus();  }
	return returnValue;  
}

// Welcher Button wurde geklickt? abstimmen = true -> es wird abgestimmt
function abstimmen() {
	abstimmen = true;
}
function ergebnis() {
	abstimmen = false;
}

// Funktion wird vom Formular aufgerufen und ermittelt die URL fuer die Anzeige
function abschicken(f)  {
	for(i=0;i<f.elements.length;i++)
		if(f.elements[i].name == "voting_id")  {
			voting_id = f.elements[i].value;
			}
	var response_url = '';
	for(i=0;i<f.elements.length;i++) 
		if(f.elements[i].name == "response_url")  {
		response_url = '&response_url=' + f.elements[i].value;
		}
	var pagepath = '';
	for(i=0;i<f.elements.length;i++) 
		if(f.elements[i].name == "pagepath")  {
		pagepath = '&pagepath=' + f.elements[i].value;
		}
	var imagepath = '';
	for(i=0;i<f.elements.length;i++) 
		if(f.elements[i].name == "imagepath")  {
		imagepath = '&imagepath=' + f.elements[i].value;
		}
	var output = '';
	for(i=0;i<f.elements.length;i++) 
		if(f.elements[i].name == "output")  {
		output = '&output=' + f.elements[i].value;
		}

	// soll abgestimmt werden, so wird die Antwort_ID angehaengt
	if (abstimmen) {
		var v = chkOptionValue(f, "antwort_id", "Bitte gib deinen Tipp ab!");
		if (v)  {
			var h = 'voting_id=' + voting_id + '&antwort_id=' + v + response_url + pagepath + imagepath + output + '&d=' + (Math.random()*100000);
			doIt(f.action,h,voting_id);
		}
	};
	// soll das Ergebnis angezeigt werden, so wird nur die Voting_id uebermittelt
	if (!abstimmen) {
		h = 'voting_id=' + voting_id + response_url + pagepath + imagepath + output + '&d=' + (Math.random()*100000); 
		doIt(f.action,h,voting_id);
	};

	return false;
}


/* Diese Funktion bekommt die URL fuer die Anzeige uebermittelt und realisiert die Anzeige in einem bestimmten Element */
function doIt(url,p,v){
	//erstellen des requests
	var req = false;
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		 req = new XMLHttpRequest();
		 if (req.overrideMimeType) {
			// set type accordingly to anticipated content type
				//req.overrideMimeType('text/xml');
				req.overrideMimeType('text/html');
		 }
	} else if (window.ActiveXObject) { // IE
		 try {
				req = new ActiveXObject("Msxml2.XMLHTTP");
		 } catch (e) {
				try {
					 req = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e) {}
		 }
	}
	if (!req) {
		 alert('Cannot create XMLHTTP instance');
		 return false;
	}

	//anfrage erstellen (POST, url ist localhost,
	//request ist asynchron
	req.open("POST", url , true);

	//IVW Pixel - falls abgestimmt wurde, wird im Verzeichnis abstimmen gezaehlt; falls das Ergebnis eingesehen wurde, wird im Verzeichnis Ergebnis gezaehlt
	if (abstimmen) fIVW('abstimmen','voting','');
	else fIVW('ergebnis','voting',''); 
	
	//Abschliessen des requests
	req.onreadystatechange = function(){
		switch(req.readyState) {
			case 4:
				if(req.status!=200) {
					alert("Fehler:"+req.status);
				} else {
					//schreibe die antwort in den div container mit der id content
					document.getElementById(v).innerHTML = req.responseText;
				}
			break;
			default:
			return false;
			break;
		}
	};
	
	req.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=ISO-8859-1");
	req.setRequestHeader("Content-length", p.length);
	req.setRequestHeader("Connection", "close");
	req.send(p);
	return false;
}
