/***
Alte Welt, Dropdowns, zum Beispiel Finanzen, Portfolio
Macht aus dem Standard Windows Design ein Blaues custom Design
***/
var glbDropDownID = null;
var DropDownTimeout = null;

function CreateDropDown(DropDownID, DropDownWidth, autosubmit, executeJavascriptOnclick) {

    if(!$chk($(DropDownID))) //die ID von dem eigentlichen HTML Select-Tag
        return;
    
    if(!$chk($(DropDownID + "_select_div"))) //die ID von dem DIV welches das eigentliche HTML Select-Tag kapselt
        return;
    
    if(!$chk($(DropDownID + "_div")))   //die ID von dem DIV welches später das neue HTML Select-Feld-Tag hält
        return;
    
        
    if(!$chk($(DropDownID + "_menu_div"))) //die ID vom DIV welches später das neue HTML Dropdown-Feld-Tag hält
        return;

   
    var selectTag = $(DropDownID);    
    var selectDivTag = $(DropDownID + "_select_div"); //"real" dropdown
    var divTag = $(DropDownID + "_div");
    var menuDivTag = $(DropDownID + "_menu_div");    //"fake" dropdown
    
    //das aktuelle DropDownMenu global setzen
    glbDropDownMenu = menuDivTag;

    /***Selected Values***/
    var selectedText = "";
    var selectedValue = "";

    //den selektierten Wert wegschreiben
    if (selectTag.options.selectedIndex >= 0) {
        selectedText = selectTag.options[selectTag.options.selectedIndex].text;
        selectedValue = selectTag.options[selectTag.options.selectedIndex].value;
    } 

    var writerSelectField = new Array();
    //das ist das neue Select-Feld
    writerSelectField.push("<input type=\"hidden\" id=\"" + DropDownID + "\" name=\"" + DropDownID + "\" value=\"" + selectedValue + "\">");
    writerSelectField.push("<table border=\"0px\" cellspacing=\"0px\" cellpadding=\"0px\" style=\"table-layout:fixed; white-space:nowrap;\">");
    writerSelectField.push("<colgroup><col width=\"5px\" /><col width=\"" + (DropDownWidth - 21) + "px\" /><col width=\"16px\" /></colgroup>");
    writerSelectField.push("<tr height=\"16px\"><td><img src=\"http://www.faz.net/img/NewButton/left.gif\" alt=\"\" width=\"5px\" height=\"16px\"></td>");
    writerSelectField.push("<td class=\"sp-tp-2 dunkelblau-bold-10\" background=\"http://www.faz.net/img/NewButton/bg.gif\">");
    writerSelectField.push("<div id=\"" + DropDownID + "_text\" align=\"left\">" + selectedText + "</div></td>");
    writerSelectField.push("<td><img src=\"http://www.faz.net/img/NewButton/dropdown.gif\" alt=\"\" height=\"16px\" width=\"16px\"></td>");
    writerSelectField.push("</tr></table>");
    //Ende

    /***Options Feld***/
    var writerDropDown = new Array();
    var rowSpan = 0;

    var jscriptSelectedText = ""; // es duerfen keine SingleQuotes im Namen vorkommen !
    var jscriptSelectedValue = ""; // es duerfen keine SingleQuotes im Value vorkommen !
    
    for (var i = 0; i < selectTag.options.length; i++) {
        // Bei Autosubmit wird die ausgewaehlte Option nicht angeboten.
        if (!autosubmit || selectedValue != selectTag.options[i].value) {
            rowSpan++;
            jscriptSelectedText = selectTag.options[i].text;
            jscriptSelectedText = jscriptSelectedText.replace("'","\\'");

            jscriptSelectedValue = selectTag.options[i].value;
            //das sind die einzelnen Menüfelder des neuen Dropdowns
            writerDropDown.push("<tr onclick=\"DropDownSelect('" + jscriptSelectedText + "','" + jscriptSelectedValue + "');" + ((executeJavascriptOnclick) ? executeJavascriptOnclick : "\"\"") + "\" ");
            writerDropDown.push("onmouseover=\"setBackgroundStyle(this, '#FFFFFF');\" onmouseout=\"resetBackgroundStyle(this);\">");
            writerDropDown.push("<td colspan=\"2\" align=\"center\">");
            writerDropDown.push("<img src=\"http://www.faz.net/img/menuwinkel.gif\" alt=\"\" />");
            writerDropDown.push("</td>");
            writerDropDown.push("<td><div class=\"sp-tp-2 sp-bt-2\" style=\"text-align:left;\">" + selectTag.options[i].text + "<div></td>");
            writerDropDown.push("<td></td>");
            writerDropDown.push("</tr>"); 
            //Ende
        }
    }
    
    var writerDropDownField = new Array();
    
    //das ist neue Dropdown Feld wo in der Mitte die zuvor zusammen gebauten Menüfelder mit angehangen werden
    writerDropDownField.push("<table border=\"0px\" cellpadding=\"0px\" cellspacing=\"0px\" width=\"" + (DropDownWidth - 4) + "px\" class=\"dunkelblau-10\" ");
    writerDropDownField.push("style=\"background-color:#F1F6FF; table-layout:fixed; white-space:nowrap;\">");
    writerDropDownField.push("<tr height=\"1px\">");
    writerDropDownField.push("<td style=\"background-color:#D0D0D0\" width=\"1px\" rowspan=\"" + (rowSpan + 1) + "\"><img src=\"http://www.faz.net/img/leer.gif\" alt=\"\" width=\"1px\" height=\"1px\" /></td>");
    writerDropDownField.push("<td width=\"5px\"><img src=\"http://www.faz.net/img/leer.gif\" width=\"5px\" height=\"1px\" alt=\"\" /></td>"); 
    writerDropDownField.push("<td width=\"8px\"><img src=\"http://www.faz.net/img/leer.gif\" width=\"8px\" height=\"1px\" alt=\"\" /></td>"); 
    writerDropDownField.push("<td height=\"1px\" width=\"" + (DropDownWidth - 37) + "px\"><img src=\"/img/leer.gif\" width=\"" + (DropDownWidth - 37) + "px\" height=\"1px\" alt=\"\" /></td>");
    writerDropDownField.push("<td width=\"5px\"><img src=\"http://www.faz.net/img/leer.gif\" width=\"5px\" height=\"1px\" alt=\"\" /></td>"); 
    writerDropDownField.push("<td bgcolor=\"#D0D0D0\" width=\"1px\" rowspan=\"" + (rowSpan + 1) + "\"><img src=\"http://www.faz.net/img/leer.gif\" width=\"1px\" height=\"1px\" alt=\"\" /></td>");
    writerDropDownField.push("</tr>");
    
    writerDropDownField.push(writerDropDown.join(""));
    
    writerDropDownField.push("<tr height=\"6px\" bgcolor=\"#FFFFFF\">");
    writerDropDownField.push("<td colspan=\"2\" style=\"background-image:url(http://www.faz.net/img/NewButton/dd_left.gif); background-position:top center; background-repeat:repeat-x\" alt=\"\" /></td>");
    writerDropDownField.push("<td colspan=\"2\" style=\"background-image:url(http://www.faz.net/img/NewButton/dd_bottom.gif); background-position:top center; background-repeat:repeat-x\" alt=\"\" /></td>");
    writerDropDownField.push("<td colspan=\"2\" style=\"background-image:url(http://www.faz.net/img/NewButton/dd_right.gif); background-position:top center; background-repeat:repeat-x\" alt=\"\" /></td>");
    writerDropDownField.push("</tr>");
    writerDropDownField.push("</table>");     
    //Ende
    
    //Entfernen des eigentlichen HTML Select Tags
    selectDivTag.parentNode.removeChild(selectDivTag);

    //an das leere DIV Tag wird das neue Select Feld eingefügt
    divTag.autosubmit = autosubmit;
    divTag.innerHTML = writerSelectField.join(""); //überschreibt die Selectbox
    
    //das leere DIV Tag bekommt das neue Menüfeld eingefügt
    menuDivTag.style.overflow = "auto";
    menuDivTag.innerHTML = writerDropDownField.join(""); //überschreibt das ausgeklappte Fenster
}

/***Simuliert die Speicherung der Auswahl vom Select-Tag***/
function DropDownSelect(selectedText, selectedValue) {
    if(glbDropDownID == null)
        return;
    
    if(!$chk($(glbDropDownID)))
        return;

    if(!$chk($(glbDropDownID +  "_text")))
        return;
        
    if(!$chk($(glbDropDownID +  "_div")))
        return;
    
    var hiddenTag = $(glbDropDownID);  //das ist das zuvor per Javascript generierte Input-Feld (hidden),
    hiddenTag.value = selectedValue;   //was mit der ID des eigentlichen Select-Tags belegt ist und nun die Daten
                                    //für den POST bereitstellt.

    var selectTagText = $(glbDropDownID +  "_text"); //das ist das falsche Select-Feld, das nun mit dem selectierten Text belegt wird
    selectTagText.innerHTML = selectedText;

    var selectDivTag = $(glbDropDownID + "_div");
    
    DropDownClose(); 
    
    if (selectDivTag.autosubmit) 
        hiddenTag.form.submit(); 
}

/***löscht den Timer für die Anzeige des Dropdowns***/
function ClearDropDownTimeout() {
    if (DropDownTimeout == null) 
        return;
    
    clearTimeout(DropDownTimeout);
}
/***Setzt einen Timer für die Anzeige des Dropdowns***/
function SetDropDownTimeout() {
    ClearDropDownTimeout();
    DropDownTimeout = setTimeout("DropDownClose();", 400);
}
/***Schließt das offene Dropdown nach einer gewissen Zeitspanne***/
function DropDownClose() {

    if(glbDropDownID == null)
        return;

    if(!$chk($(glbDropDownID + "_menu_div")))
        return;
    
    //wir müssen hier wieder so auslesen, da wir nicht wissen welche ID bei mehreren
    //Dropdowns auf der Seite grad aktiv ist
    var menuDivTag = $(glbDropDownID + "_menu_div");
    
    menuDivTag.style.visibility = 'hidden';
    menuDivTag.style.display = 'none';
}
/***öffnet das Dropdown***/
function DropDownOpen(IDToOpen) {

    //prüft ob ein eventuell grad zu öffnendes Dropdown dem jetzt zu öffnenden entspricht
    //und schließt es ggf.
    if (glbDropDownID != null && (glbDropDownID != IDToOpen)) 
        DropDownClose();

    if(!$chk($(IDToOpen + "_menu_div")))
        return;

    var menuDivTag = $(IDToOpen + "_menu_div");
    menuDivTag.style.visibility = (menuDivTag.style.visibility == 'visible') ? 'hidden' : 'visible';     
    menuDivTag.style.display = 'block';


    //wegspeichern der ID des aktuell geöffneten Dropdowns
    glbDropDownID = IDToOpen;
}




function ShowReiter(ID, Nr) {
    var DivCtr = document.getElementById(ID + '_div');   
    
    for (var i=0; i < DivCtr.childNodes.length; i++) {
        HideDiv(DivCtr.childNodes[i].id);
    }
    
    ShowDiv(ID + '_' + Nr + '_div');
    var InpCtr = document.getElementById(ID); 
    
    if (InpCtr)
    {
        InpCtr.value = Nr;
    }
}

function HideDiv(ID) {
    var DivCtr = document.getElementById(ID); 

    DivCtr.style.visibility = "hidden";
    DivCtr.style.position = "absolute";
    DivCtr.style.left = "-300px";
    DivCtr.style.top = "-300px";
}

function ShowDiv(ID, RelLeft, RelTop) {
    
    if (!RelLeft) 
        RelLeft = "0px";
    if (!RelTop) 
        RelTop = "0px";

    new_tag(); 

    var DivCtr = document.getElementById(ID); 
    var Parent = DivCtr.parentNode;
    DivCtr.parentNode.removeChild(DivCtr);
    DivCtr.style.left = RelLeft;
    DivCtr.style.top = RelTop;
    DivCtr.style.position = "relative";
    DivCtr.style.visibility = "visible";

    Parent.appendChild(DivCtr);   
}

//*************** kopierte, oder leicht modifizierte Funktionen aus /JS/Faz.js *******************************************

var ad; // Video-Werbung
var oLocation = window.location;
/*Speichert temporär ein Flashstill weg, damit es später mit fnWriteStill() mit
dem eigentlichen Flash ausgetauscht werden kann. Wichtig beim Speichern von Beiträgen*/ 
var gTempStill = null;
var gTempDivID = null;

/*_________________________________________________*/
/* Liefert true oder false, jenach dem ob der richtige Player installiert ist */
/* zeigt außerdem einen Infotext an, wenn der Flashplayer installiert werden muß */
function VideoFlashCheck(DivId, minVersion) {
   
   if ($chk(DivId)){
    gTempDivID = DivId;
    gTempStill = $(DivId).innerHTML;
   }
   
   var version = deconcept.SWFObjectUtil.getPlayerVersion();
   
   if (!minVersion || minVersion < 4) 
    minVersion = 8;
   
   //alert ("Sie haben folgenden Flash Player installiert. Version: "+ version['major'] +"."+ version['minor'] +"."+ version['rev']);
   if (version['major'] < minVersion) {
	   if (!DivId) 
	    return false;
	    
	   var div = $(DivId);
	   var test =  div.getProperty("bubblehtml");
	   if ($chk(test)) 
	    return; // Wenn bubble einmal initialisiert wurde, kommt sie in Zukunft schon bei Mouseover und muß nicht noch mal initialisiert werden.
	  
	   var infoText = "<span style=\"color:#FF0000; font-size:11px; font-weight:bold;\"> Um die Flash-Animation abspielen zu k&ouml;nnen, ben&ouml;tigen Sie Flash Player Version " + minVersion + " oder h&ouml;her.<br>Klicken Sie <A href=\"http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash\" target=\"_new\" style=\"color: #0B0B66;\" >[hier]</A> um das PlugIn zu installieren.</span>";
	   div.setProperty("bubblehtml", infoText); 
	   
	   var bubble = new Bubble(div, goBubbleMaster);
     
     goBubbleMaster.arrBubbles.push(bubble);
     
     bubble.create(infoText);
     bubble.show();
	   
	   return false;
   }
   return true;
}

/*_________________________________________________*/
/*Schreibt anstelle des Flashvideos das Stillbild, wenn eins vorher weggespeichert wurde*/
/* und versteckt die Werbeformen */
function fnWriteStill(){

  if ($chk($(gTempDivID))){
    $(gTempDivID).innerHTML = gTempStill;
    gTempStill = null;
    gTempDivID = null;
  }
  // Versteckt Werbung... und tschöööö
  fnHideWerbung(); 
}

//*************** Kommentar Funktion *******************************************
// Aufruf des alten Visitenkarten-Popups
var sKomHref = "http://www.faz.net"; // ruft Live-Element auf
    
function fnShowVisitenkarte(usrid)
{
    window.open(sKomHref + '/d/mysite/mycardshow.aspx?usr=' + usrid, 'BCard', 'scrollbars=no,status=no,resizable=yes,width=280,height=550');
    return;
}

//*************** PopUp Funktion *******************************************
// Aufruf der alten PopUp-Funktion
function fnPopUp (sUrl, iWidth, iHeight, sOpts, sName) {
	if (!sOpts) 
	    sOpts = "status=no,scrollbars=yes,resizable=yes";
	if (!sName) 
	    sName = "PopUp";
	
	window.open (sHref + sUrl, sName,'width='+ iWidth +',height='+ iHeight+ ',' +sOpts);
}


// Wird z.B. auch von Externen-Links in Internews benutzt (z.B. Externer Link "tickerlink f1 türkei")
function fnShowSizedPopUp (sTemplate, iWidth, iHeight,sUrl,bScollbars)
{
    var sScollbars = 'yes';
    if (!bScollbars) sScollbars = 'no';

    if (!sUrl) sUrl = "http://"+ gsFAZNET;
	  else sUrl = "http://"+sUrl+"/";
	var PopUp=window.open(sUrl+sTemplate,'PopUp','scrollbars='+sScollbars+',status=no,resizable=yes,width='+iWidth+',height='+iHeight);
    PopUp.focus();
}

function fnModify4Premium (sUrl){
	var sHost = window.location.host;
	if (sHost.match(/clickandbuy\.com/i)) {
		var iBeg = sUrl.indexOf("/Rub");
		var iEnd = sUrl.length;
		var sUrl = sUrl.substr(iBeg,iEnd);
	}
	return sUrl;
}


function fnShowPrintSite (sSite) {
	var sURL = (sSite.indexOf('/') == 0) ? sSite : gsDefPrefix + sSite;
	sURL = fnModify4Premium(sURL);
	window.open(sURL,'PopUp','scrollbars=yes,menubar=yes,status=yes,resizable=yes,width=750,height=454,screenX=0,screenY=0');
	return;
}

function fnShowMailSite (sSite, sDesk) {
	fnPopUp(gsDefPrefix + 'central/'+ sSite +'&site='+ sDesk, 362, 506);
}

// Wird mit f30 nicht mehr von Redakteuren benutzt, kommt aber in alten Spezials vor.
function fnBilderGalerie2SpezialSchalter(){
   //~Ap~E1 // javascript:fnBilderGalerie2SpezialSchalter();
   var mysUrl = ''+window.location;
   var UeberhaptSpezialTplStat = mysUrl.match(/~Sspezial/);   
   var UeberhaptSpezialTplDyn = mysUrl.match(/spezial\.asp/);   
   if (UeberhaptSpezialTplStat || UeberhaptSpezialTplDyn){
   var SwitchOnS = mysUrl.match(/~Ap~E1/);
   var SwitchOnD = mysUrl.match(/p=1/);
       if (SwitchOnS || SwitchOnD){
        mysUrl = mysUrl.replace("~Ap~E1","");
        mysUrl = mysUrl.replace("&p=1","").replace("?p=1","?");
       } else {
        if (mysUrl.match(/\.html/)) mysUrl = mysUrl.replace(".html","~Ap~E1.html");
        else mysUrl = mysUrl.replace("?","?p=1&");
       }
   window.location = mysUrl;
   }
}


// ***********************************************************************

// allow mm, dd.mm, dd.mm.jj, dd.mm.jjjj
function fnCheckDatum(sMaybeDate)
{
	//alert("fnCheckDatum(" + sMaybeDate + ")");
	var ret = sMaybeDate;	// default to leaving the string alone -- let them fix their own errors
	if (sMaybeDate) {
		sMaybeDate += '';

		if (sMaybeDate) {
			var dateParts = sMaybeDate.split(".");
			var thisYear = (new Date()).getFullYear();
			var day = 0, month = 0, year = 0;
			//alert("fnCheckDatum(): dateParts.length=" + dateParts.length + "; dateParts: " + dateParts.join(";"));
			
			switch (dateParts.length)
			{
			case 1: 
				month = parseInt(dateParts[0], 10); // work-around JavaScript bug in many browsers! :)
				day = 1; year = thisYear;
				break;

			case 2:	//(e.g. tt.mm)
				day = parseInt(dateParts[0], 10); 
				month = parseInt(dateParts[1], 10); 
				year = thisYear;
				break;
					
			case 3:	//(e.g. tt.mm.jj)
				day = parseInt(dateParts[0], 10); 
				month = parseInt(dateParts[1], 10); 
				if (! dateParts[2])
				{
					year = thisYear;
				} else {
					year = parseInt(dateParts[2], 10); 
					if (! isNaN(year)) {
						if (year < 30) year += 2000;
						else if (70 < year && year < 100) year += 1900;
					} else {
						year = thisYear;
					}
				}
				break;

				default:
					meckern(sMaybeDate, " falsche Anzahl Punkte? ");
			}	
			//alert("diag: " + (new Array(year, month, day)).join(", "));
			if (isNaN(month)) meckern(sMaybeDate, "Monat bitte als Zahl, 1 bis 12"); 
			else if (month < 1 || month > 12) meckern(sMaybeDate, "Monat bitte zwischen 1 und 12! (vgl. " + month + ")"); 
			else if (isNaN(year)) meckern(sMaybeDate, "Jahr bitte als Zahl eingeben"); 
			else if (year < 1970 || year > 2030) meckern(sMaybeDate, " -- year: " + year); 
			else if (isNaN(day)) meckern(sMaybeDate, "e"); 
			else if (day < 1 || day > maxDays(month, year)) meckern(sMaybeDate, "f"); 
			else {
				ret = fnGetDateString (new Date(year, month - 1, day));
			}
		}
	}
	//alert("-->" + ret);
	return ret;
}

function meckern(sEingabe, diag)
{
	alert("Datum bitte als mm, tt.mm., tt.mm.jj, oder tt.mm.jjjj eingeben! (" + sEingabe + "--[" + diag + "]" + ")");
}

function maxDays(month, year)
{
	daysPerMonth = new Array(-1, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
	if (year % 4 == 0) daysPerMonth[2] = 29;
	return daysPerMonth[month];
}

function fnGetDateString (dDate)
{
  if (dDate == null || dDate == '')	return '';

  var day = dDate.getDate(); if (day < 10) day = '0'+day;
  var mon = dDate.getMonth() + 1; if (mon < 10) mon = '0'+mon;
  return day + '.' + mon + '.' + dDate.getFullYear();
}

// ***********************************************************************
// Einfach auf den onfocus/onblur einer textbox legen. sorgt dafür,
// daß der Standardmässige Text nach dem Laden der Seite verschwindet, wenn man reinklickt
// und wieder eingesetzt wird, wenn der Benutzer nix einträgt.
function TextboxFocus(it)
{
  if (!$chk(it.titletext) || it.titletext==it.value)
  {
    it.titletext = it.value;
    it.value="";
  }
}

function TextboxBlur(it)
{
  if ($chk(it.titletext) && it.value=="") it.value=it.titletext;
}


function fnRemoveDiv(sDivName) {
	if (!is.dom) return;

    var oRemoveBox = document.getElementById(sDivName);
	if (oRemoveBox)
      oRemoveBox.parentNode.removeChild(oRemoveBox);
}

function setBackground(obj) {
  var sImg = obj.style.backgroundImage;
  sImg = sImg.replace('.gif', 'hg.gif');
  obj.style.backgroundImage = sImg; 
}

function resetBackground(obj) {
  var sImg = obj.style.backgroundImage;
  sImg = sImg.replace('hg.gif', '.gif');
  obj.style.backgroundImage = sImg; 
}

function SubmitFormOf(ID, SubmitValue) {
  //alert("SubmitFormOf(" + ID + ")");
  var Ctr1 = document.getElementById(ID); 
  var Ctr2 =  Ctr1;
  while (Ctr2 != null) {
    if (Ctr2.nodeName == 'FORM') {
      if (SubmitValue) {   
        var oDiv=document.createElement("DIV");
        oDiv.innerHTML= '<input type=hidden name=GO value="' + SubmitValue + '">';   
        Ctr2.appendChild(oDiv);
      }
      Ctr2.submit();
      return true;
    }
    Ctr2 = Ctr2.parentNode;
  }    
}
  

// *** Sbumit-Button für Investor und Börsenspiel
  function ShowSubmit(ID, Width, CssClass) {
    var DivCtr = document.getElementById(ID);
    var SubmCtr = document.getElementById(ID + '_submit');
    var Text = SubmCtr.value;
    var out = '';
    out += '<table style="cursor:pointer;" border=0 cellspacing=0 cellpadding=0>\n';
    out += '<tr height=16';
    out += " onclick=\"SubmitFormOf('" + ID + "','" + Text + "'); return false;\"";
		out += " style=\"cursor:pointer;\" >";
    // Input-image ist wichtig, damit Enter im Form funktioniert ?!
		out += "<td><INPUT type=image src=\"/img/NewButton/left.gif\" width=5 height=16></td>\n";

		out += "<td style=\"text-align:center;\" class=\"sp-tp-2 " + CssClass + "\" background=\"/img/NewButton/bg.gif\"";
    if (Width > 0) out += " width=" + (Width -10); // 10 = Rand links und rechts
    out += "><nobr>";
    out += Text;
    out += "</nobr></td>\n";
    out += "<td><img src=\"/img/NewButton/right.gif\" width=5 height=16></td>\n";
    out += "</tr></table>";
    DivCtr.innerHTML = out;
  }

  
function loginOnFocus(it)
{
  var s = "";
  if (it.name == "usr_login") s="Login";
  if (it.name == "usr_pwd") s="Passwort";
  if (it.name == "usr_email") s="max@mustermann.de";
  if (it.value == s) it.value="";
}

function loginOnBlur(it)
{
  var s = "";
  if (it.name == "usr_login") s="Login";
  if (it.name == "usr_pwd") s="Passwort";
  if (it.name == "usr_email") s="max@mustermann.de";
  if (it.value == "") it.value=s;
}

/*___________________________________*/
//Holt den Cookie
function fnGetCookieValue (sCookie, sProp, sSplitter,sEqual) {
  if (!sSplitter) 
    sSplitter = "&";
    
  if (!sEqual) 
    sEqual = "=";
  
  var pos = sCookie.indexOf (sProp + sEqual);
  if (pos != -1) {
    var end = sCookie.indexOf (sSplitter, pos + sProp.length + 1);
    
    if (end == -1) 
      end = sProp.length + 1;	// just in case (no trailing '&')
    
    return sCookie.substring (pos + sProp.length + 1, end);
  }
  return;
}

/*_____________________________________________*/
/*Schickt das Formular ab*/
function fnSubmitForm(frmForm, sUrl)
{
  frmForm.action = sUrl;
  frmForm.submit();
  return;
}

/*___________________________________*/
/*Prüft ob der User im SSO eingeloggt ist*/
var gsLogin, gsLevel, gsPlz, gsAGOFKey, gsAlter, gsGender;
var gsArticles = 0;
var gblnUserIsLoggedIn = false;

function fnIsUserLoggedIn() {
  var sCookie = unescape("" + document.cookie) + ";";
  var pos = sCookie.indexOf("fazsso=");
  
  if (pos==-1) 
    return false;

  var end = sCookie.indexOf (';', pos + 8);					// Extract cookie 
	var sCookie = sCookie.substring (pos + 8, end) + "&";
	
	gsLogin = fnGetCookieValue (sCookie, 'l');
	if (gsLogin) {
      gsLevel     = "";
      gsPlz       = "";
      gsAGOFKey   = "";
      gsAlter     = "0";
      gsGender    = "0";
      gblnUserIsLoggedIn = true;
  }
  
  fnIsUserLoggedInFAZNET();  //alte cookiewerte setzen

  return gblnUserIsLoggedIn;
}

/*___________________________________*/
/*Prüft ob der User in FAZNET eingeloggt ist, also das FAZNET Cookie gesetzt ist*/
function fnIsUserLoggedInFAZNET(){
  var res = false;
  var sCookie = unescape("" + document.cookie) + ";";
  var pos = sCookie.indexOf("FAZNET=");
  
  if (pos==-1) 
    return false;

  if (pos != -1 && sCookie.indexOf("NoAutoLogin") == -1) {
	  var end = sCookie.indexOf (';', pos+8);					// Extract cookie 
	  var sCookie = sCookie.substring (pos+8, end) + "&";
	  
	  sLogin = fnGetCookieValue (sCookie, 'usr');
	  if (sLogin) {
        sLevel    = fnGetCookieValue (sCookie, 'lvl');
        gsPlz     = ''+fnGetCookieValue (sCookie, 'plz');
        gsAGOFKey = fnGetCookieValue (sCookie, 'mckey');
        gsAlter   = fnGetCookieValue (sCookie, 'a');
        gsGender  = fnGetCookieValue (sCookie, 'g');
        res = true;
    }
  }
  return res;
}

function setBackgroundStyle(obj, color) {
  obj.para = obj.style.backgroundColor;    // speichert die alte Hintergrundfarbe !
  if (!color) color = '#EFEFEF';
  obj.style.backgroundColor = color; // Hier die Hintergrundfarbe
}


function resetBackgroundStyle(obj) {
  obj.style.backgroundColor =obj.para;
}

function setBackground(obj) {
  var sImg = obj.style.backgroundImage;
  sImg = sImg.replace('.gif', 'hg.gif');
  obj.style.backgroundImage = sImg; 
}

function resetBackground(obj) {
  var sImg = obj.style.backgroundImage;
  sImg = sImg.replace('hg.gif', '.gif');
  obj.style.backgroundImage = sImg; 
}

function fnGenerateAGOF_MC_Tag(sAGOFKey)
{
	var oLocation = window.location;
	var sProtocol = oLocation.protocol;
	if (sProtocol=="https:" || !sAGOFKey || sAGOFKey=="") return;
//  var sMCTag = "<img src='http://mclient.ivwbox.de/cgi-bin/ivw/CP/faz."+sAGOFKey+"' height=1 width=1 style='position:absolute; z-index:16; visibility:hidden; top:-300; left:-300;'>";
  // Neuer Tag ab 03.08.2006
  var sMCTag = "<img src='http://mclient.ivwbox.de/cgi-bin/ivw/CP/0607/faz/faz."+sAGOFKey+"' height=1 width=1 style='position:absolute; z-index:16; visibility:hidden; top:-300; left:-300;'>";
  //alert(sMCTag);
  document.write(sMCTag);
}

/******* Bitte diesen Code HIER HINTEN belassen ******/
    // !!! Warum wird hier sHost und sHred noch mal definiert und befuellt.
    // !!! Dies geschieht doch schon in Top.js
	var sHost = window.location.host;
	if (!sHost.match(/^((www|t4?[abhx3]1?|t3[thab])\.(faz|fazjob)\.net|1[79]|utilwww|wsfem|pc11|nbfem|femdev|localhost)/i)
		|| oLocation.toString().match(/common(~S|\/)form|register\.aspx/i)) {
		sHref = "http://"+ gsFAZNET;
	}

  var _statAd = 0;
  var _adCu;

	if (is.ns4 || navigator.userAgent.match(/rv:(0|1\.[0-2]).*Gecko/))
	  _statAd = 1;

   if (this.opera) _statAd = true;

  var gbUsrLoggedIn;
	gbUsrLoggedIn = fnIsUserLoggedIn();

// ***************

var DhtmlPagerData = new Object();

function GetFRABOTAG(){

  var tag =(typeof(gsIvwId)== "undefined") ? "2B0100000000;faz.net/aktuell" : gsIvwId;
  szmvars = "faz//CP//"+tag;
  var myUrl = window.location.href;
  bHP = myUrl.indexOf("homepage.html")>0;
  if ("http:" == document.location.protocol &&  !bHP) 
     document.write(unescape("%3Cscript src='http://faz.ivwbox.de/2004/01/survey.js' type='text/javascript'%3E%3C/script%3E"));
}
 
 function DhtmlPagerInit() {
  DhtmlPagerData.AnzPages = 1;
  DhtmlPagerData.SelectedPage = 1;
  DhtmlPagerData.LastSelectedPage = 0;
  DhtmlPagerData.MaxAnzButtons = 10;
  DhtmlPagerData.Width = 363;
  DhtmlPagerData.FirstButtonNr = 1;
  DhtmlPagerData.LastButtonNr = 1;
  DhtmlPagerData.PageKeyArr = null;
  DhtmlPagerData.PageHtmlArr = null;
  DhtmlPagerData.PageChanges = 0;
} 


function GotoPage(i) {
  //alert("GotoPage(" + i + ")");
  DhtmlPagerData.PageChanges++;
  DhtmlPagerData.SelectedPage = i;
  DhtmlPagerRefrech();
  new_tag();
  new_logtag();
  try{  TSV2.etag({gmed:medid});} catch(e) {} //FAZgets V2-Tag
  try{__GETS.etag({gmed:medid});} catch(e) {} //FAZgets V3-Tag
}

function DhtmlPagerShow() {
  //var key = window.location.search.replace(/.*page=([^&#]*).*/i, "$1");
  var key = "" +window.location.hash;
  if (key.length > 0) {
	key = key.replace("#", "");
  }

  if (key.length > 0) {
    for (var i=0; i< DhtmlPagerData.PageKeyArr.length; i++) {
      if (DhtmlPagerData.PageKeyArr[i] == key) DhtmlPagerData.SelectedPage = i+1;
    }
  }    
  //alert("search=" + window.location.search + " key=" + key  + " SelectedPage=" + DhtmlPagerData.SelectedPage);
  DhtmlPagerRefrech();
}

function DhtmlPagerRefrech() { // (d.h. refresh ? :)

  if (DhtmlPagerData.SelectedPage > DhtmlPagerData.AnzPages) DhtmlPagerData.SelectedPage = 1;
  if (DhtmlPagerData.SelectedPage > DhtmlPagerData.FirstButtonNr + DhtmlPagerData.MaxAnzButtons - 3) DhtmlPagerData.FirstButtonNr = DhtmlPagerData.SelectedPage - DhtmlPagerData.MaxAnzButtons + 3;
  if (DhtmlPagerData.SelectedPage < DhtmlPagerData.FirstButtonNr + 3) DhtmlPagerData.FirstButtonNr = DhtmlPagerData.SelectedPage -3;
  if (DhtmlPagerData.FirstButtonNr < 1) DhtmlPagerData.FirstButtonNr = 1;
  DhtmlPagerData.LastButtonNr = DhtmlPagerData.FirstButtonNr + DhtmlPagerData.MaxAnzButtons -1;
  if (DhtmlPagerData.LastButtonNr > DhtmlPagerData.AnzPages) {
	DhtmlPagerData.LastButtonNr = DhtmlPagerData.AnzPages;
	DhtmlPagerData.FirstButtonNr = DhtmlPagerData.LastButtonNr - DhtmlPagerData.MaxAnzButtons +1;
	if (DhtmlPagerData.FirstButtonNr < 1) DhtmlPagerData.FirstButtonNr = 1;
  }

  if (DhtmlPagerData.AnzPages > 1) DhtmlPagerShowNavi();
  
  if (DhtmlPagerData.LastSelectedPage != DhtmlPagerData.SelectedPage) {
    var pageDiv = document.getElementById("PageDiv");
    var sHtml = DhtmlPagerData.PageHtmlArr[DhtmlPagerData.SelectedPage -1];
    pageDiv.innerHTML = sHtml;

    // Andere Browser als ie tragen den hash in die history ein.
	// ie trÃ¤gt hash manchmal in browser-title ein, deshalb erst beim Seitenwechsel hash Ã¤ndern.
    if (is.ie && DhtmlPagerData.PageChanges > 0) {
		//var sTmpTitle = document.title;
		window.location.hash = "#" + DhtmlPagerData.PageKeyArr[DhtmlPagerData.SelectedPage -1]; 
        //alert("document.title=" + document.title + "  sTmpTitle=" + sTmpTitle);
		//document.title = sTmpTitle; // ie7 aendert sonst den Titel
    }
    DhtmlPagerData.LastSelectedPage = DhtmlPagerData.SelectedPage; 
  }
  DhtmlPagerRefreched();

}

function DhtmlPagerShowNavi() {
  var sHtml = "";
  var LeistenBreite = 0;
  // Damit die Buttons nicht gestaucht werden, ist es wichtig die TabellengrÃ¶ÃŸe exakt zu berechnen.
  // Dadurch kann auf Leer.gifs verzichtet werden.
  for (var i = DhtmlPagerData.FirstButtonNr; i <= DhtmlPagerData.LastButtonNr; i++) LeistenBreite += ButtonWidth(i);
  LeistenBreite += 2*3 + 2*16 + 2*12; // 68= 4*17  Pfeile und AbstÃ¤nde Links und Rechts.
  LeistenBreite += (2 * (DhtmlPagerData.LastButtonNr - DhtmlPagerData.FirstButtonNr)); // ButtonabstÃ¤nde
  LeistenBreite += 2; // Korrektur
  
  sHtml += "<table width=" + DhtmlPagerData.Width + " cellpadding=0 cellspacing=0 border=0 ><tr><td align=center>";

  
  
  sHtml += "<table align=center valign=top width=" + LeistenBreite
	  + " cellpadding=0 cellspacing=0 border=0 ><tr>";


  sHtml += "<td width=12 height=13>";
  if (DhtmlPagerData.SelectedPage > 1) {
	sHtml += "<A href=\"javascript:GotoPage(1);"
	  + "\"><img src=\"/img/arrow_start.gif\" title=\"erste Seite\" onMouseOver=\"IconOver(this)\" onMouseOut=\"IconOut(this)\" width=12 height=12 border=0></A>";
  }
  sHtml +="</td>";
   
  sHtml +="<td width=16 height=13>";
  if (DhtmlPagerData.SelectedPage > 1) {
	sHtml += "<A href=\"javascript:GotoPage(" + (DhtmlPagerData.SelectedPage - 1) + ");"
	  + "\"><img src=\"/img/arrow_left.gif\" title=\"zurÃ¼ck\" onMouseOver=\"IconOver(this)\" onMouseOut=\"IconOut(this)\" width=12 height=12 hspace=2 border=0></A>";
  }
  sHtml += "</td><td width=3></td>";


  sHtml += "<td valign=middle><table cellSpacing=0 cellPadding=0 "
	+ "><tr>";

  for (var i = DhtmlPagerData.FirstButtonNr; i <= DhtmlPagerData.LastButtonNr; i++) {
	if (i > 0) sHtml += "<td width=2></td>";
	if (i!= DhtmlPagerData.SelectedPage) {
	  sHtml += "<td align=center width=" + ButtonWidth(i)
		+ " style=\"cursor:pointer;\" onclick=\"GotoPage(" + i + ");\""
		+ " height=11 bgcolor=#000000>";
	  sHtml += "<SPAN class=\"weiss-9\">";
	  sHtml += i.toString() + "</SPAN></td>";
	} else {
	  sHtml += "<td align=center width=" + ButtonWidth(i) + " height=11 bgcolor=#7A89CC>";
	  sHtml += "<SPAN class=\"weiss-9\" >";
	  sHtml += i.toString() + "</SPAN></td>";
	}
  }
  sHtml += "</td>";
  sHtml += "</tr></table></td>";

  sHtml += "<td width=3></td><td width=16 height=13 align=right>";
  if (DhtmlPagerData.SelectedPage < DhtmlPagerData.AnzPages) {
	sHtml += "<A href=\"javascript:GotoPage(" + (DhtmlPagerData.SelectedPage + 1) + ");"
	  + "\"><img onmouseover=IconOver(this) title=weiter onmouseout=IconOut(this) src=\"/img/arrow_right.gif\" width=12 height=12 hspace=2 border=0></A>";
  }
  sHtml += "</td>";

  sHtml += "<td width=12 height=13>";
  if (DhtmlPagerData.SelectedPage < DhtmlPagerData.AnzPages) {
	sHtml += "<A href=\"javascript:GotoPage(" + DhtmlPagerData.AnzPages + ");"
	  + "\"><img src=\"/img/arrow_end.gif\" title=\"letzte Seite\" onMouseOver=\"IconOver(this)\" onMouseOut=\"IconOut(this)\" width=12 height=12 border=0></A>";
  }
  sHtml += "</td>";
  
  sHtml += "</tr></table></td></tr></table>";

  var myDiv = document.getElementById("Pager_div");
  myDiv.innerHTML = sHtml;

  // DhtmlPagerShowNavi-Unterfunktion
  function ButtonWidth(i) {
	var Width = i.toString().length * 6 + 2; // Jede Ziffer ist ca. 6 Pixel breit + links  und rechts ein Pixel
	return (Width < 14) ? 14 : Width;
  }
}

function fnDisplayHtml(html, divName) {
  var div = document.getElementById(divName);
  if (div == null) return;
  div.innerHTML = html;
}

function DhtmlPagerRefreched() {
  // Diese Funktion wird z.B. von der Medienseite ueberschrieben.
}

// VideoAd Debugging
function showVideoAdData() {
	while(ad.indexOf("><") != -1) {
		ad = ad.replace(/></,">\n<");
	}
	alert(ad);
}


function toggleSB() {
  var sB=document.getElementById('SocialBookmarkDiv');
  sB.style.display = (sB.style.display == "none")?"block":"none";  
}

// fuer Medienseite - Zählpixel für TopNews-Logfileauswertung
function new_logtag() {
    var myLog="/img/leer.gif?l=" + escape(window.location)+"&n="+new Date().getTime();
    //alert('myLog: ' + myLog);
    var countLogImg = new Image();
    countLogImg.src = myLog;
}

function fnShowAGBs(sURL) {
	fnPopUp (sURL, 900, 950);
}

function fnShowAGBs2() {
	fnPopUp ('/s/Rub81B18E1A736D436BA08449721DC02A9E/Doc~E573EEC41015C4EC096B0B7778A9518C3~ATpl~Ecommon~Scontent.html', 900, 950);
}
function IconOver(){}
