function liste_ladeTemplate()
{
    system["template"]["liste"] = '<div id="liste">((EINTRAEGE))</div><img src="img/table_foot.gif">';
    system["template"]["relzeile"] = '<div class="listeneintrag">';
    system["template"]["relzeile"] += '<table width="100%"><tr valign="top">';
    system["template"]["relzeile"] += '<td width="25"></td>';
    system["template"]["relzeile"] += '<td colspan="2">';
    system["template"]["relzeile"] += '<a href="#" onclick="return zeigeEintragRel('+"'((DATEINAME))'"+', '+"'((RELATEDART))'"+', this)">';
    system["template"]["relzeile"] += '<div>((NAME))</div></a></td>';
    system["template"]["relzeile"] += '<td width="171">';
    system["template"]["relzeile"] += '<a href="#" onclick="return zeigeEintragRel('+"'((DATEINAME))'"+', '+"'((RELATEDART))'"+', this)">';
    system["template"]["relzeile"] += '<div style="width:130px;float:right;">((GENRE))</div></a></td>';
    system["template"]["relzeile"] += '<td width="100">';
    system["template"]["relzeile"] += '<a href="#" onclick="return zeigeEintragRel('+"'((DATEINAME))'"+', '+"'((RELATEDART))'"+', this)">';
    system["template"]["relzeile"] += '<div>((DATUM))</div></a></td>';        
    system["template"]["relzeile"] += '<td width="100" align="right">';
    system["template"]["relzeile"] += '<a href="#" onclick="return zeigeEintragRel('+"'((DATEINAME))'"+', '+"'((RELATEDART))'"+', this)">';
    system["template"]["relzeile"] += '<div>((GROESSE))</div></a></td>';
    system["template"]["relzeile"] += '</tr></table>';
    system["template"]["relzeile"] += '<div class="ldetails" style="display:none;"></div></div>';
    system["template"]["zeile"] = '<div class="listeneintrag">';
    system["template"]["zeile"] += '<table width="100%"><tr valign="top">';
    system["template"]["zeile"] += '<td width="25"><a href="#" onclick="return zeigeVorschau('+"'((DATEINAME))'"+', this)"><img src="img/lupe.jpg" /></a></td>';
    system["template"]["zeile"] += '<td>';
    system["template"]["zeile"] += '<a href="#" onclick="return zeigeEintrag('+"'((DATEINAME))'"+', this)">';
    system["template"]["zeile"] += '<div>((NAME))</div></a></td>';
    system["template"]["zeile"] += '<td width="60">';
    system["template"]["zeile"] += '((INFOLINK))';
    system["template"]["zeile"] += '</td>';        
    system["template"]["zeile"] += '<td width="171">';
    system["template"]["zeile"] += '<a href="#" onmouseover="coverzeigen('+"'((DATEINAME))'"+');" onmouseout="coververstecken()" onclick="return zeigeEintrag('+"'((DATEINAME))'"+', this)"><div style="width:40px;float:left;"><img src="img/ps_shot.jpg"></div></a>';
    system["template"]["zeile"] += '<a href="#" onclick="return zeigeEintrag('+"'((DATEINAME))'"+', this)">';
    system["template"]["zeile"] += '<div style="width:130px;float:right;">((GENRE))</div></a></td>';
    system["template"]["zeile"] += '<td width="100">';
    system["template"]["zeile"] += '<a href="#" onclick="return zeigeEintrag('+"'((DATEINAME))'"+', this)">';
    system["template"]["zeile"] += '<div>((DATUM))</div></a></td>';        
    system["template"]["zeile"] += '<td width="100" align="right">';
    system["template"]["zeile"] += '<a href="#" onclick="return zeigeEintrag('+"'((DATEINAME))'"+', this)">';
    system["template"]["zeile"] += '<div>((GROESSE))</div></a></td>';
    system["template"]["zeile"] += '</tr></table>';
    system["template"]["zeile"] += '<div class="ldetails" style="display:none;"></div></div>';
    system["template"]["uzeile"] = '<div class="ulisteneintrag"((NEWIMG))>';
    system["template"]["uzeile"] += '<table width="100%"><tr>';
    system["template"]["uzeile"] += '<td><a href="#" onclick="return toggle(this)"><div>((NAME)) (((ANZAHL)))</div></a></td>';
    system["template"]["uzeile"] += '<td width="120"><a href="#" onclick="return toggle(this)"><div>&nbsp;</div></a></td>';
    system["template"]["uzeile"] += '<td width="100"><a href="#" onclick="return toggle(this)"><div>((DATUM))</div></a></td>';
    system["template"]["uzeile"] += '<td width="100" align="right"><a href="#" onclick="return toggle(this)"><div>((GROESSE))</div></a></td>';
    system["template"]["uzeile"] += '</tr></table>';
    system["template"]["uzeile"] += '<div class="lldetails" style="display:((ZEIGEN));">';
    system["template"]["uzeile"] += '<table width="100%">((EINTRAEGE))</table>';
    system["template"]["uzeile"] += '</div>';
    system["template"]["uzeile"] += '</div>';
    system["template"]["uzeileklein"] = '<div class="ulisteneintrag"((NEWIMG))>';
    system["template"]["uzeileklein"] += '<table width="100%"><tr>';
    system["template"]["uzeileklein"] += '<td><a href="#" onclick="return toggle(this)"><div>((NAME)) (((ANZAHL)))</div></a></td>';
    system["template"]["uzeileklein"] += '<td align=right><a href="#" onclick="return toggle(this)"><div>((DATUM))</div></a></td>';
    system["template"]["uzeileklein"] += '<td width="80" align="right"><a href="#" onclick="return toggle(this)"><div>((GROESSE))</div></a></td>';
    system["template"]["uzeileklein"] += '</tr></table>';
    system["template"]["uzeileklein"] += '<div class="lldetails" style="display:((ZEIGEN));">';
    system["template"]["uzeileklein"] += '<table width="100%">((EINTRAEGE))</table>';
    system["template"]["uzeileklein"] += '</div>';
    system["template"]["uzeileklein"] += '</div>';
    system["template"]["uuPzeile"] = '<tr>';
    system["template"]["uuPzeile"] += '<td colspan="6"><a onclick="return confirm('+"'"+'Premium-User Info?'+"'"+')" href="http://rapidshare.com/premium.html" target="_blank"><div>Premium User Only</div></a></td>';
    system["template"]["uuPzeile"] += '</tr>';
    system["template"]["uuPzeileklein"] = '<tr>';
    system["template"]["uuPzeileklein"] += '<td colspan="3"><a onclick="return confirm('+"'"+'Premium-User Info?'+"'"+')" href="http://rapidshare.com/premium.html" target="_blank"><div>Premium User Only</div></a></td>';
    system["template"]["uuPzeileklein"] += '</tr>';
    system["template"]["uuFzeile"] = '<tr>';
    system["template"]["uuFzeile"] += '<td colspan="6">Free For All</td>';
    system["template"]["uuFzeile"] += '</tr>';
    system["template"]["uuFzeileklein"] = '<tr>';
    system["template"]["uuFzeileklein"] += '<td colspan="3">Free For All</td>';
    system["template"]["uuFzeileklein"] += '</tr>';
    system["template"]["uuzeile"] = '<tr>';
    system["template"]["uuzeile"] += '<td((NEWIMG))><a href="((URL))" target="_blank" class="download((ART))"><div>((NAME))</div></a></td>';
    system["template"]["uuzeile"] += '<td width="120"><a href="((URL))" target="_blank"><div>&nbsp;</div></a></td>';        
    system["template"]["uuzeile"] += '<td width="100"><a href="((URL))" target="_blank"><div>((DATUM))</div></a></td>';        
    system["template"]["uuzeile"] += '<td width="100" align="right"><a href="((URL))" target="_blank"><div>((GROESSE))</div></a></td>';
    system["template"]["uuzeile"] += '</tr>';
    system["template"]["uuzeileklein"] = '<tr>';
    system["template"]["uuzeileklein"] += '<td((NEWIMG))><a href="((URL))" target="_blank" class="download((ART))"><div>((NAME))</div></a></td>';
    system["template"]["uuzeileklein"] += '<td align=right><a href="((URL))" target="_blank"><div>((DATUM))</div></a></td>';        
    system["template"]["uuzeileklein"] += '<td width="80" align="right"><a href="((URL))" target="_blank"><div>((GROESSE))</div></a></td>';
    system["template"]["uuzeileklein"] += '</tr>';
    system["template"]["relatedvon"] = '<tr>';
    system["template"]["relatedvon"] += '<td colspan="4">((LINK))</td>';
    system["template"]["relatedvon"] += '</tr>';
    system["template"]["relatedvonzeile"] = '<a href="detail.html?datei=((DATEI))&rubrik=((RUBRIK))((GENRE))" title="((RELATEDART))"><div>((TITEL))</div></a>';
    system["template"]["datenblatt"] = '<a class="info" href="detail.html?datei=((DATEI))&rubrik=((RUBRIK))((GENRE))"><div>Info</div></a>';
    system["template"]["rubrikstartseite"] = '<img src="img/table_foot.gif"><div style="padding-top:6px;"></div>';
    system["template"]["rubrikstartseite"] += '<div id="topbereich"></div>';
    system["template"]["rubrikstartseite"] += '<div style="width:612px;float:right;">';
    system["template"]["rubrikstartseite"] += '<div id="rubstartinhalt1"></div>';
    system["template"]["rubrikstartseite"] += '<div id="rubstartinhalt2"></div>';
    system["template"]["rubrikstartseite"] += '</div>';
    system["template"]["rubrikstartseite"] += '<div style="clear:both;"></div>';
    system["template"]["3bilder"] = '<table width="100%" cellpadding="2" cellspacing="2" border="0" style="margin-bottom:10px;"><tr valign="top"><td width="33%">((BILD1))</td><td align="center" width="33%">((BILD2))</td><td align="right" width="33%">((BILD3))</td></tr></table>';
    system["template"]["4bilder"] = '<table width="100%" cellpadding="2" cellspacing="2" border="0" style="margin-bottom:10px;"><tr valign="top"><td width="25%">((BILD1))</td><td align="center" width="25%">((BILD2))</td><td align="right" width="25%">((BILD3))</td><td align="right" width="25%">((BILD4))</td></tr></table>';
    system["template"]["5bilder"] = '<table cellpadding="2" cellspacing="2" border="0"><tr valign="top"><td>((BILD1))</td><td>((BILD2))</td><td>((BILD3))</td><td>((BILD4))</td><td>((BILD5))</td></tr></table>';
    system["template"]["bildlink"] = '<a href="detail.html?datei=((DATEI)).xml&rubrik=((RUBRIK))((GENRE))">';
    system["template"]["bildlink"] += '<div style="text-align:left;background:url(((BILD))) no-repeat;">';
    system["template"]["bildlink"] += '<img title="((NAME))" src="'+system["bilderpfad"]+'/packover_((BER)).png" alt="((DATEI))">';
    system["template"]["bildlink"] += '</a>';
    system["template"]["bildlink"] += '<div style="font-size:12px;color:#BED600;">((NAME))</div>';
    system["template"]["bildlink"] += '<div style="text-transform:capitalize;font-size:12px;color:#8E908F;">((RUBRIKT))</div>';
    system["template"]["bildlinkS"] = '<div style="text-align:left;width:95px;">';
    system["template"]["bildlinkS"] += '<a href="detail.html?datei=((DATEI)).xml&rubrik=((RUBRIK))((GENRE))">';
    system["template"]["bildlinkS"] += '<img width=90 title="((NAME))" src="((BILD))" alt="((DATEI))">';    
    system["template"]["bildlinkS"] += '</a>';
    system["template"]["bildlinkS"] += '<div style="font-size:12px;color:#BED600;">((NAME))</div>';
    system["template"]["bildlinkS"] += '<div style="text-transform:capitalize;font-size:12px;color:#8E908F;">((RUBRIKT))</div></div>';
    system["template"]["submenue"] = '<select id="genredropbox" style="height:18px;width:200px;font-size:8pt;" onchange="liste_wechselGenre(this)"><option value="">ALL</option>((EINTRAEGE))</option>';
}
function zeigeVorschau(datei, elem) {
    system["aktdaten"] = "";
    zeigeInfoBox('<center><img src="img/progress_wheel.gif"></center>');
    zeigeEintrag(datei, elem, true, true); // ohne toggle
    zeigeVorschauDaten(datei);
    return false;
}
function zeigeVorschauDaten(datei) {
    if (!system["aktdaten"]) {
        window.setTimeout("zeigeVorschauDaten('"+datei+"')", 250);
        return false;
    }    
    detail_ladeTemplate();
    var atext = haupt_holeDetailAnsicht();
    var text = '';
    text += '<img style="float:left;padding-right:10px;" src="' + system["bilderpfad"] + '/content/' + datei.substr(0, datei.length - 3) + 'jpg" />';
    text += '<div style="text-align:left;height:400px;overflow-y:scroll;padding-right:10px;">';
    text += atext;
    text += '</div><p style="clear:both;text-align:center;">';
    text += '<a href="detail.html?datei='+datei+'&rubrik='+system["rubrik"];
    if (system["genre"] && system["genre"] != "")
        text += "&genre="+system["genre"];
    text += '">Downloads here</a>';
    text += '</p>';    
    zeigeInfoBox(text);    
}
function coverzeigen(name)
{
    var elem = document.getElementById("coveroverlay");    
    elem.style.left = (mouseX+50)+"px";
    elem.style.top = (mouseY-20)+"px";
    elem.innerHTML = '<img src="img/content/'+name.substr(0, name.length-4)+'.jpg">';
    elem.style.display = "block";
}
function coververstecken()
{
    document.getElementById("coveroverlay").style.display = "none";
}
function liste_wechselGenre(elem)
{
    var genre = elem.options[elem.selectedIndex].value;
    system["genre"] = genre;
    liste_zeigeBuchstabeListe();
}
function liste_zeigeHot(rubrik)
{    
    advAJAX.get({        
        url: system["jspfad"]+"/hot_"+rubrik+".xml",
        onSuccess : function(obj) {
            var wert = obj.responseXML.getElementsByTagName("Serial");                
            checkAktualisierung(getXMLWertText(wert[0]));
            var daten = obj.responseXML.getElementsByTagName("eintrag");
            //var text = liste_setze3Bilder(daten, 0, "hot", rubrik);
            var text = liste_setze4Bilder(daten, 0, "hot", rubrik);
            document.getElementById("rubstartinhalt1").innerHTML = text;
            document.getElementById("content").style.background = "none";                        
        }
    });
}
function liste_setze3Bilder(daten, anfang, art, rubrik, small)
{
    return liste_setzeBilder(3, daten, anfang, art, rubrik, small);
}
function liste_setze4Bilder(daten, anfang, art, rubrik, small)
{
    return liste_setzeBilder(4, daten, anfang, art, rubrik, small);
}
function liste_setzeBilder(anzahl, daten, anfang, art, rubrik, small)
{
    var text = system["template"][anzahl+"bilder"];
    var bilder = new Array();
    var i = 0;
    for (i = 0;i < anzahl;i++) { bilder[i] = ""; }
    var ende = anzahl+anfang;
    var Templatesuffix = "";
    if (small)
        Templatesuffix = "S";
    for (i = anfang;i < ende;i++)
    {    
        if (daten.length > i) 
        {
            var dateiname = daten[i].getElementsByTagName("dateiname");
            dateiname = getXMLWertText(dateiname[0]);
            dateiname = dateiname.substring(0, dateiname.length-4);
            if (dateiname.length > 0)
            {
                var datum = daten[i].getElementsByTagName("datum");
                datum = getXMLWertText(datum[0]);
                var name = daten[i].getElementsByTagName("name");
                name = getXMLWertText(name[0]);
                var dlname = daten[i].getElementsByTagName("dlname");
                dlname = getXMLWertText(dlname[0]);   
                var templateBildlinkname = "bildlink"+Templatesuffix;                      
                bilder[i-anfang] = system["template"][templateBildlinkname];
                bilder[i-anfang] = bilder[i-anfang].replace(/\(\(BER\)\)/, art);
                bilder[i-anfang] = bilder[i-anfang].replace(/\(\(DATEI\)\)/g, dateiname);
                bilder[i-anfang] = bilder[i-anfang].replace(/\(\(NAME\)\)/g, name);
                bilder[i-anfang] = bilder[i-anfang].replace(/\(\(RUBRIK\)\)/g, rubrik);
                var genre = "";
                if (system["genre"] && system["genre"] != "")
                    genre = "&genre="+system["genre"];
                bilder[i-anfang] = bilder[i-anfang].replace(/\(\(GENRE\)\)/, genre);
                dlname = dlname.replace(/Part\s\[([0-9]{2})\/([0-9]{2})\]$/, "");
                var rubrikzusatz = "";
                if (rubrik != "games" && rubrik != "browsergame" && system["rubriknamen"][rubrik] != dlname.toLowerCase())
                    rubrikzusatz = ": "+dlname;
                bilder[i-anfang] = bilder[i-anfang].replace(/\(\(RUBRIKT\)\)/g, system["rubriknamen"][rubrik]+rubrikzusatz);
                bilder[i-anfang] = bilder[i-anfang].replace(/\(\(BILD\)\)/, system["bilderpfad"]+"/content/"+dateiname+".jpg");
            }
        }                   
    }
    for (i=0;i<anzahl;i++) {
        var wert = "((BILD"+(i+1)+"))";
        text = text.replace(wert, bilder[i]);
    }
    return text;
}
function liste_zeigeStartseite()
{
    document.getElementById("content").innerHTML = system["template"]["rubrikstartseite"];    
    index_ladeTemplate();
    zeigeTopBoxen();
    var datei = system["jspfad"]+"/top_"+system["rubrik"];
    if (system["genre"] != "") {
        datei += "_"+system["genre"];
    } else {
        liste_zeigeHot(system["rubrik"]);
    }
    datei += ".xml";    
    advAJAX.get({
        url: datei,
        onSuccess : function(obj) {
            var wert = obj.responseXML.getElementsByTagName("Serial");                
            checkAktualisierung(getXMLWertText(wert[0]));
            var daten = obj.responseXML.getElementsByTagName("eintrag");
            var text = liste_setze4Bilder(daten, 0, "new", system["rubrik"]);
            text += liste_setze4Bilder(daten, 4, "new", system["rubrik"]);
            document.getElementById("rubstartinhalt2").innerHTML = text;
            haupt_schreibeHistory();
        }
    });
}
function liste_zeigeBuchstabeListe(buchstabe) 
{    
    // hole die buchstabenliste
    var datei = "/index_"+system["rubrik"];
    if (system["genre"] != "")
        datei += "_"+system["genre"];
    datei += "_buchstaben.txt";
    advAJAX.get({
        url: system["jspfad"] + datei,
        onLoading: function(obj) { document.getElementById("azliste").innerHTML = "loading..."; },
        onComplete: function(obj) { document.getElementById("azliste").innerHTML = "processing..." },
        onSuccess: function(obj) {
            system["buchstabendaten"] = obj.responseText;            
            var buchstabedatei = liste_zeigeBuchstabenlisteAusgabe(system["buchstabendaten"]);
            if (buchstabedatei != "") {
                zeigeListe(buchstabedatei);
            } else {
                liste_zeigeStartseite();
            }
            document.getElementById("content").style.background = "none";
        }
    });
}
function liste_zeigeBuchstabenlisteAusgabe(daten) {
    var text = "";
    // daten sind zeilenweise und mit leerzeichen getrennt
    var zeilen = daten.split("\n");
    var datei = "";
    var buchstabedatei = "";
    checkAktualisierung(zeilen[0]);
    for (var i = 1; i < zeilen.length; i++) {
        var spalten = zeilen[i].split(" ");
        if (spalten.length == 2 && spalten[1].length > 0) {
            text += '<a href="#" ';
            if (system["buchstabe"] && system["buchstabe"].toLowerCase() == spalten[1]) {
                buchstabedatei = spalten[0];
                text += 'style="font-size:16px;font-weight:bold;" ';
            }
            text += 'onclick="return zeigeListe(';
            text += "'" + spalten[0] + "', '" + spalten[1].replace("'", "\\'") + "'";
            text += ')">';
            text += spalten[1];
            text += '</a> ';
            if (datei == "")
                datei = spalten[0];
        }
    }
    document.getElementById("azliste").innerHTML = text;
    document.getElementById("azliste2").innerHTML = '<a href="#oben">TOP</a> | ' + text;
    return buchstabedatei;
}
function zeigeListe(datei, buchstabe)
{            
    // hole die Liste zu dem Zeichen und rubrik
    system["buchstabe"] = buchstabe;
    advAJAX.get({
        url: system["jspfad"] + "/" + datei,
        onSuccess: function(obj) {
            // daten sind zeilenweise und mit leerzeichen getrennt
            var text = "";
            var zeilen = obj.responseText.split("\n");
            var atext = "";
            checkAktualisierung(zeilen[0]);
            var newdatum = haupt_holeNewDatumTimestamp();
            for (var i = 1; i < zeilen.length; i++) {
                zeilen[i] = trim(zeilen[i]);
                if (zeilen[i] == "")
                    continue;
                var teile = zeilen[i].split(" ");
                var dateiname = teile[0];
                var genredateiname = teile[2];
                var groesse = teile[3];
                var datum = teile[4];
                var name = "";
                for (var a = 5; a < teile.length; a++) {
                    name += teile[a] + " ";
                }
                name = trim(name);
                teile[1] = intval(teile[1]);
                var relatedart = "";
                if (name.length > 0) {
                    if (teile[1] == 1) { // related
                        if (system["rubrik"] != "mod")
                            continue;
                        atext = system["template"]["zeile"];
                    } else {
                        atext = system["template"]["zeile"];
                    }
                    atext = atext.replace(/\(\(DATEINAME\)\)/g, dateiname);
                    atext = atext.replace(/\(\(RELATEDART\)\)/g, relatedart);
                    if (system["genreliste"]) {
                        genredateiname = system["genreliste"][genredateiname];
                    } else {
                        genredateiname = "";
                    }
                    atext = atext.replace(/\(\(GENRE\)\)/, genredateiname);
                    var dt = datum.split(".");
                    if (dt[2].length < 3)
                        dt[2] = "20"+dt[2];
                    var datumtimestamp = new Date(dt[1]+' '+dt[0]+', '+dt[2]+' 00:00:01').getTime();
                    if (datumtimestamp > newdatum)
                        name += '<div style="float:right;width:23px;height:23px;overflow:hidden;background-image:url(img/symbol_new_small.png);"></div>';                     
                    atext = atext.replace(/\(\(NAME\)\)/, name);
                    atext = atext.replace(/\(\(DATUM\)\)/, datum);
                    atext = atext.replace(/\(\(INFOLINK\)\)/, setzeDatenblattLink(dateiname));
                    if (groesse != "")
                        groesse = Math.ceil(floatval(groesse)) + " MB";
                    atext = atext.replace(/\(\(GROESSE\)\)/, groesse);
                    text += atext;
                }
            }
            document.getElementById("content").innerHTML = system["template"]["liste"].replace(/\(\(EINTRAEGE\)\)/, text);
            liste_zeigeBuchstabenlisteAusgabe(system["buchstabendaten"]);
            haupt_schreibeHistory(datei.substring(datei.length - 5, datei.length - 4).toUpperCase());
        }
    });
    return false;
}
function setzeDatenblattLink(datei)
{
    var text = "";
    text = system["template"]["datenblatt"];
    text = text.replace(/\(\(DATEI\)\)/, datei);
    text = text.replace(/\(\(RUBRIK\)\)/, system["rubrik"]);
    var genre = "";
    if (system["genre"] && system["genre"] != "")
        genre = "&genre="+system["genre"];        
    text = text.replace(/\(\(GENRE\)\)/, genre);
    return text;
}
function zeigeEintrag(datei, ausloeser, force, notoggle)
{
    if (!notoggle)
        toggle(ausloeser);            
    var elem = ausloeser.parentNode.parentNode.parentNode.parentNode.parentNode; // div container            
    var kind = elem.lastChild;
    zeigeEintragMitElement(datei, kind, true, force);    
    return false;
}
function zeigeEintragMitElement(datei, kind, zeigeDatenblatt, force)
{
    if (kind.tag != "geladen" || force) {
        kind.innerHTML = "";  
        // lade die Daten, wenn nicht schon geladen
        advAJAX.get({
            url: system["jspfad"] + "/" + datei,
            onSuccess: function(obj) {
                kind.tag = "geladen";
                // gehe über die dateien und zählen und liste die auf
                var daten = obj.responseXML.getElementsByTagName("datei");
                system["aktdaten"] = obj.responseXML;
                // daten sind xml                
                var dateien = new Object();
                var wert = system["aktdaten"].getElementsByTagName("Serial");
                var i = 0;
                checkAktualisierung(getXMLWertText(wert[0]));
                var newdatum = haupt_holeNewDatumTimestamp();
                for (i = 0; i < daten.length; i++) {
                    var feld = daten[i].getElementsByTagName("Art");
                    wert = getXMLWertText(feld[0]);
                    if (!dateien[wert]) {
                        dateien[wert] = new Object();
                        dateien[wert]["anzahl"] = 0;
                        dateien[wert]["groesse"] = 0.0;
                        dateien[wert]["datum"] = "";
                        dateien[wert]["neues"] = false;
                        dateien[wert]["jsdatum"] = new Date(1975, 9, 3);
                        dateien[wert]["dateien"] = new Array();
                    }
                    dateien[wert]["anzahl"] = parseInt(dateien[wert]["anzahl"]) + 1;
                    datum = parseFloat(daten[i].getElementsByTagName("GroesseMB")[0].childNodes[0].nodeValue);
                    if (isNaN(datum))
                        datum = 0;
                    dateien[wert]["groesse"] += datum;
                    // datum prüfen
                    var datumbereiche = daten[i].getElementsByTagName("Eingefuegt")[0].childNodes[0].nodeValue.split(".");
                    var jahr = parseInt(datumbereiche[2], 10);
                    if (jahr < 100)
                        datumbereiche[2] = 2000 + jahr;
                    datum = new Date(datumbereiche[2], parseInt(datumbereiche[1], 10), parseInt(datumbereiche[0], 10));
                    if (datum - dateien[wert]["jsdatum"] > 0) {
                        dateien[wert]["jsdatum"] = datum;
                        dateien[wert]["datum"] = getXMLWertText(daten[i].getElementsByTagName("Eingefuegt")[0]);
                    }
                    var pos = dateien[wert]["dateien"].length;
                    dateien[wert]["dateien"][pos] = new Object();
                    dateien[wert]["dateien"][pos]["link"] = getXMLWertText(daten[i].getElementsByTagName("RS-Link")[0]);
                    dateien[wert]["dateien"][pos]["name"] = getXMLWertText(daten[i].getElementsByTagName("Name")[0]);
                    dateien[wert]["dateien"][pos]["datum"] = getXMLWertText(daten[i].getElementsByTagName("Eingefuegt")[0]);
                    dateien[wert]["dateien"][pos]["timestamp"] = getXMLWertText(daten[i].getElementsByTagName("EingefuegtTimestamp")[0]);
                    dateien[wert]["dateien"][pos]["groesse"] = getXMLWertText(daten[i].getElementsByTagName("GroesseMB")[0]);
                    if (dateien[wert]["dateien"][pos]["timestamp"]*1000 > newdatum)
                        dateien[wert]["neues"] = true;
                }
                // wenn dateien vorhanden , dann liste deren Typen und anzahl, lastdatum und grösse auf
                var text = "";
                var atext = "";
                var btext = "";
                var ctext = "";
                for (wert in dateien) {
                    atext = system["template"]["uzeile"];
                    atext = atext.replace(/\(\(NAME\)\)/, wert);
                    atext = atext.replace(/\(\(ANZAHL\)\)/, dateien[wert]["anzahl"]);
                    atext = atext.replace(/\(\(DATUM\)\)/, dateien[wert]["datum"]);
                    atext = atext.replace(/\(\(GROESSE\)\)/, Math.ceil(floatval(dateien[wert]["groesse"])) + " MB");
                    if (dateien[wert]["neues"]) {
                        atext = atext.replace(/\(\(NEWIMG\)\)/, ' style="padding-left:25px;background-image:url(img/symbol_new_small.png);background-repeat:no-repeat;"');
                    } else {
                        atext = atext.replace(/\(\(NEWIMG\)\)/, ' style="padding-left:25px;"');
                    }                                  
                    if (system["rubrik"] == wert.toLowerCase()) {
                        atext = atext.replace(/\(\(ZEIGEN\)\)/, "block");
                    } else {
                        atext = atext.replace(/\(\(ZEIGEN\)\)/, "none");
                    }
                    // liste die einträge
                    // erst premium einträge , dann die normalen
                    btext = ""; // premium
                    var bbtext = ""; // normal
                    for (i = 0; i < dateien[wert]["dateien"].length; i++) {
                        ctext = system["template"]["uuzeile"];
                        ctext = ctext.replace(/\(\(URL\)\)/g, decodeURIComponent(dateien[wert]["dateien"][i]["link"].replace(/%A0/, "")));
                        var newimage = ' style="padding-left:25px;"';
                        if (dateien[wert]["dateien"][i]["timestamp"]*1000 > newdatum)
                            newimage = ' style="padding-left:25px;background-image:url(img/symbol_new_small.png);background-repeat:no-repeat;"'; 
                        ctext = ctext.replace(/\(\(NEWIMG\)\)/, newimage);
                        ctext = ctext.replace(/\(\(NAME\)\)/, dateien[wert]["dateien"][i]["name"]);
                        ctext = ctext.replace(/\(\(DATUM\)\)/, dateien[wert]["dateien"][i]["datum"]);
                        ctext = ctext.replace(/\(\(GROESSE\)\)/, Math.ceil(floatval(dateien[wert]["dateien"][i]["groesse"])) + " MB");
                        var art = "free";
                        if (parseInt(dateien[wert]["dateien"][i]["groesse"]) > 200)
                            art = "prem";
                        ctext = ctext.replace(/\(\(ART\)\)/, art);
                        if (art == "prem") {
                            btext += ctext;
                        } else {
                            bbtext += ctext;
                        }
                    }
                    if (btext != "")
                        btext = system["template"]["uuPzeile"] + btext;
                    if (bbtext != "")
                        bbtext = system["template"]["uuFzeile"] + bbtext;
                    // setze die einträge ein
                    atext = atext.replace(/\(\(EINTRAEGE\)\)/, btext + bbtext);
                    text += atext;
                }
                // wenn vorhanden , liste die RelatedVon auf
                atext = "";
                daten = obj.responseXML.getElementsByTagName("RelatedVon")[0].getElementsByTagName("Related");
                var related = new Object();
                for (i = 0; i < daten.length; i++) {
                    ctext = system["template"]["relatedvonzeile"];
                    ctext = ctext.replace(/\(\(DATEI\)\)/, getXMLWertText(daten[i].getElementsByTagName("Datei")[0]));
                    ctext = ctext.replace(/\(\(RELATEDART\)\)/, getXMLWertText(daten[i].getElementsByTagName("Art")[0]).toUpperCase());
                    ctext = ctext.replace(/\(\(TITEL\)\)/, getXMLWertText(daten[i].getElementsByTagName("Titel")[0]));
                    ctext = ctext.replace(/\(\(RUBRIK\)\)/, system["rubrik"]);
                    var genre = "";
                    if (system["genre"] && system["genre"] != "")
                        genre = "&genre=" + system["genre"];
                    ctext = ctext.replace(/\(\(GENRE\)\)/, genre);
                    if (!related[getXMLWertText(daten[i].getElementsByTagName("Art")[0])])
                        related[getXMLWertText(daten[i].getElementsByTagName("Art")[0])] = new Array();
                    related[getXMLWertText(daten[i].getElementsByTagName("Art")[0])].push(ctext);
                }
                for (var key in related) {
                    ctext = system["template"]["uzeile"];
                    ctext = ctext.replace(/\(\(NAME\)\)/, key.toUpperCase());
                    ctext = ctext.replace(/\(\(ANZAHL\)\)/, related[key].length);
                    ctext = ctext.replace(/\(\(DATUM\)\)/, "");
                    ctext = ctext.replace(/\(\(GROESSE\)\)/, "");
                    ctext = ctext.replace(/\(\(ZEIGEN\)\)/, "none");
                    btext = "";
                    for (i = 0; i < related[key].length; i++) {
                        var cctext = system["template"]["relatedvon"];
                        cctext = cctext.replace(/\(\(LINK\)\)/g, related[key][i]);
                        btext += cctext;
                    }
                    ctext = ctext.replace(/\(\(EINTRAEGE\)\)/, btext);
                    atext += ctext;
                }
                text += atext;
                kind.style.background = "none";
                kind.style.minHeight = "0";
                if (zeigeDatenblatt)
                    text = setzeDatenblattLink(datei) + text;
                kind.innerHTML = text;
            }
        });                
    }                        
    return false;
}
function zeigeEintragMitElementKlein(datei, kind, zeigeDatenblatt, force)
{
    if (kind.tag != "geladen" || force) {
        kind.innerHTML = "";  
        // lade die Daten, wenn nicht schon geladen
        advAJAX.get({
            url: system["jspfad"] + "/" + datei,
            onSuccess: function(obj) {
                kind.tag = "geladen";
                // gehe über die dateien und zählen und liste die auf
                var daten = obj.responseXML.getElementsByTagName("datei");
                system["aktdaten"] = obj.responseXML;
                // daten sind xml                
                var dateien = new Object();
                var wert = system["aktdaten"].getElementsByTagName("Serial");
                var i = 0;
                checkAktualisierung(getXMLWertText(wert[0]));
                var newdatum = haupt_holeNewDatumTimestamp();
                for (i = 0; i < daten.length; i++) {
                    var feld = daten[i].getElementsByTagName("Art");
                    wert = getXMLWertText(feld[0]);
                    if (!dateien[wert]) {
                        dateien[wert] = new Object();
                        dateien[wert]["anzahl"] = 0;
                        dateien[wert]["groesse"] = 0.0;
                        dateien[wert]["datum"] = "";
                        dateien[wert]["neues"] = false;
                        dateien[wert]["jsdatum"] = new Date(1975, 9, 3);
                        dateien[wert]["dateien"] = new Array();
                    }
                    dateien[wert]["anzahl"] = parseInt(dateien[wert]["anzahl"]) + 1;
                    datum = parseFloat(daten[i].getElementsByTagName("GroesseMB")[0].childNodes[0].nodeValue);
                    if (isNaN(datum))
                        datum = 0;
                    dateien[wert]["groesse"] += datum;
                    // datum prüfen
                    var datumbereiche = daten[i].getElementsByTagName("Eingefuegt")[0].childNodes[0].nodeValue.split(".");
                    var jahr = parseInt(datumbereiche[2], 10);
                    if (jahr < 100)
                        datumbereiche[2] = 2000 + jahr;
                    datum = new Date(datumbereiche[2], parseInt(datumbereiche[1], 10), parseInt(datumbereiche[0], 10));
                    if (datum - dateien[wert]["jsdatum"] > 0) {
                        dateien[wert]["jsdatum"] = datum;
                        dateien[wert]["datum"] = getXMLWertText(daten[i].getElementsByTagName("Eingefuegt")[0]);
                    }
                    var pos = dateien[wert]["dateien"].length;
                    dateien[wert]["dateien"][pos] = new Object();
                    dateien[wert]["dateien"][pos]["link"] = getXMLWertText(daten[i].getElementsByTagName("RS-Link")[0]);
                    dateien[wert]["dateien"][pos]["name"] = getXMLWertText(daten[i].getElementsByTagName("Name")[0]);
                    dateien[wert]["dateien"][pos]["datum"] = getXMLWertText(daten[i].getElementsByTagName("Eingefuegt")[0]);
                    dateien[wert]["dateien"][pos]["timestamp"] = getXMLWertText(daten[i].getElementsByTagName("EingefuegtTimestamp")[0]);
                    dateien[wert]["dateien"][pos]["groesse"] = getXMLWertText(daten[i].getElementsByTagName("GroesseMB")[0]);
                    if (dateien[wert]["dateien"][pos]["timestamp"]*1000 > newdatum)
                        dateien[wert]["neues"] = true;
                }
                // wenn dateien vorhanden , dann liste deren Typen und anzahl, lastdatum und grösse auf
                var text = "";
                var atext = "";
                var btext = "";
                var ctext = "";
                for (wert in dateien) {
                    atext = system["template"]["uzeileklein"];
                    atext = atext.replace(/\(\(NAME\)\)/, wert);
                    atext = atext.replace(/\(\(ANZAHL\)\)/, dateien[wert]["anzahl"]);
                    atext = atext.replace(/\(\(DATUM\)\)/, dateien[wert]["datum"]);
                    atext = atext.replace(/\(\(GROESSE\)\)/, Math.ceil(floatval(dateien[wert]["groesse"])) + " MB");
                    if (dateien[wert]["neues"]) {
                        atext = atext.replace(/\(\(NEWIMG\)\)/, ' style="padding-left:25px;background-image:url(img/symbol_new_small.png);background-repeat:no-repeat;"');
                    } else {
                        atext = atext.replace(/\(\(NEWIMG\)\)/, ' style="padding-left:25px;"');
                    }                                  
                    if (system["rubrik"] == wert.toLowerCase()) {
                        atext = atext.replace(/\(\(ZEIGEN\)\)/, "block");
                    } else {
                        atext = atext.replace(/\(\(ZEIGEN\)\)/, "none");
                    }
                    // liste die einträge
                    // erst premium einträge , dann die normalen
                    btext = ""; // premium
                    var bbtext = ""; // normal
                    for (i = 0; i < dateien[wert]["dateien"].length; i++) {
                        ctext = system["template"]["uuzeileklein"];
                        ctext = ctext.replace(/\(\(URL\)\)/g, decodeURIComponent(dateien[wert]["dateien"][i]["link"].replace(/%A0/, "")));
                        var newimage = ' style="padding-left:25px;"';
                        if (dateien[wert]["dateien"][i]["timestamp"]*1000 > newdatum)
                            newimage = ' style="padding-left:25px;background-image:url(img/symbol_new_small.png);background-repeat:no-repeat;"'; 
                        ctext = ctext.replace(/\(\(NEWIMG\)\)/, newimage);
                        ctext = ctext.replace(/\(\(NAME\)\)/, dateien[wert]["dateien"][i]["name"]);
                        ctext = ctext.replace(/\(\(DATUM\)\)/, dateien[wert]["dateien"][i]["datum"]);
                        ctext = ctext.replace(/\(\(GROESSE\)\)/, Math.ceil(floatval(dateien[wert]["dateien"][i]["groesse"])) + " MB");
                        var art = "free";
                        if (parseInt(dateien[wert]["dateien"][i]["groesse"]) > 200)
                            art = "prem";
                        ctext = ctext.replace(/\(\(ART\)\)/, art);
                        if (art == "prem") {
                            btext += ctext;
                        } else {
                            bbtext += ctext;
                        }
                    }
                    if (btext != "")
                        btext = system["template"]["uuPzeileklein"] + btext;
                    if (bbtext != "")
                        bbtext = system["template"]["uuFzeileklein"] + bbtext;
                    // setze die einträge ein
                    atext = atext.replace(/\(\(EINTRAEGE\)\)/, btext + bbtext);
                    text += atext;
                }
                // wenn vorhanden , liste die RelatedVon auf
                atext = "";
                daten = obj.responseXML.getElementsByTagName("RelatedVon")[0].getElementsByTagName("Related");
                var related = new Object();
                for (i = 0; i < daten.length; i++) {
                    ctext = system["template"]["relatedvonzeile"];
                    ctext = ctext.replace(/\(\(DATEI\)\)/, getXMLWertText(daten[i].getElementsByTagName("Datei")[0]));
                    ctext = ctext.replace(/\(\(RELATEDART\)\)/, getXMLWertText(daten[i].getElementsByTagName("Art")[0]).toUpperCase());
                    ctext = ctext.replace(/\(\(TITEL\)\)/, getXMLWertText(daten[i].getElementsByTagName("Titel")[0]));
                    ctext = ctext.replace(/\(\(RUBRIK\)\)/, system["rubrik"]);
                    var genre = "";
                    if (system["genre"] && system["genre"] != "")
                        genre = "&genre=" + system["genre"];
                    ctext = ctext.replace(/\(\(GENRE\)\)/, genre);
                    if (!related[getXMLWertText(daten[i].getElementsByTagName("Art")[0])])
                        related[getXMLWertText(daten[i].getElementsByTagName("Art")[0])] = new Array();
                    related[getXMLWertText(daten[i].getElementsByTagName("Art")[0])].push(ctext);
                }
                for (var key in related) {
                    ctext = system["template"]["uzeileklein"];
                    ctext = ctext.replace(/\(\(NAME\)\)/, key.toUpperCase());
                    ctext = ctext.replace(/\(\(ANZAHL\)\)/, related[key].length);
                    ctext = ctext.replace(/\(\(DATUM\)\)/, "");
                    ctext = ctext.replace(/\(\(GROESSE\)\)/, "");
                    ctext = ctext.replace(/\(\(ZEIGEN\)\)/, "none");
                    btext = "";
                    for (i = 0; i < related[key].length; i++) {
                        var cctext = system["template"]["relatedvon"];
                        cctext = cctext.replace(/\(\(LINK\)\)/g, related[key][i]);
                        btext += cctext;
                    }
                    ctext = ctext.replace(/\(\(EINTRAEGE\)\)/, btext);
                    atext += ctext;
                }
                text += atext;
                kind.style.background = "none";
                kind.style.minHeight = "0";
                if (zeigeDatenblatt)
                    text = setzeDatenblattLink(datei) + text;
                kind.innerHTML = text;
            }
        });                
    }                        
    return false;
}
function zeigeEintragRel(datei, relatedart, ausloeser) {
    toggle(ausloeser);
    var elem = ausloeser.parentNode.parentNode.parentNode.parentNode.parentNode; // div container            
    var kind = elem.lastChild;
    if (kind.tag != "geladen") {
        kind.innerHTML = "";  
        // lade die Daten, wenn nicht schon geladen
        advAJAX.get({
            url: system["jspfad"] + "/" + datei,
            onSuccess: function(obj) {
                kind.tag = "geladen";
                var daten = obj.responseXML.getElementsByTagName("RelatedVon")[0].getElementsByTagName("Related");
                system["aktdaten"] = obj.responseXML;
                var dateien = new Object();
                var wert = system["aktdaten"].getElementsByTagName("Serial");
                checkAktualisierung(getXMLWertText(wert[0]));
                var text = "";
                var atext = "";
                var ctext = "";
                // wenn vorhanden , liste die RelatedVon auf
                var related = new Object();
                var i = 0;
                for (i = 0; i < daten.length; i++) {
                    ctext = system["template"]["relatedvonzeile"];
                    ctext = ctext.replace(/\(\(DATEI\)\)/, getXMLWertText(daten[i].getElementsByTagName("Datei")[0]));
                    ctext = ctext.replace(/\(\(RELATEDART\)\)/, getXMLWertText(daten[i].getElementsByTagName("Art")[0]).toUpperCase());
                    ctext = ctext.replace(/\(\(TITEL\)\)/, getXMLWertText(daten[i].getElementsByTagName("Titel")[0]));
                    ctext = ctext.replace(/\(\(RUBRIK\)\)/, system["rubrik"]);
                    var genre = "";
                    if (system["genre"] && system["genre"] != "")
                        genre = "&genre=" + system["genre"];
                    ctext = ctext.replace(/\(\(GENRE\)\)/, genre);
                    if (!related[getXMLWertText(daten[i].getElementsByTagName("Art")[0])])
                        related[getXMLWertText(daten[i].getElementsByTagName("Art")[0])] = new Array();
                    related[getXMLWertText(daten[i].getElementsByTagName("Art")[0])].push(ctext);
                }
                for (var key in related) {
                    if (relatedart != key)
                        continue;
                    ctext = system["template"]["uzeile"];
                    ctext = ctext.replace(/\(\(NAME\)\)/, key.toUpperCase());
                    ctext = ctext.replace(/\(\(ANZAHL\)\)/, related[key].length);
                    ctext = ctext.replace(/\(\(DATUM\)\)/, "");
                    ctext = ctext.replace(/\(\(GROESSE\)\)/, "");
                    ctext = ctext.replace(/\(\(ZEIGEN\)\)/, "block");
                    var btext = "";
                    for (i = 0; i < related[key].length; i++) {
                        var cctext = system["template"]["relatedvon"];
                        cctext = cctext.replace(/\(\(LINK\)\)/g, related[key][i]);
                        btext += cctext;
                    }
                    ctext = ctext.replace(/\(\(EINTRAEGE\)\)/, btext);
                    atext += ctext;
                }
                text += atext;
                kind.style.background = "none";
                kind.style.minHeight = "0";
                kind.innerHTML = text;
            }
        });                
    }                        
    return false;
}
function zeige_SubMenue(rubrik, genre)
{
    if (rubrik == "")
        return false;
    var datei = "genre_"+rubrik+".txt";
    advAJAX.get({
        url: system["jspfad"]+"/"+datei,
        onSuccess : function(obj) {                
            // daten sind zeilenweise und mit leerzeichen getrennt
            var text = "";
            var zeilen = obj.responseText.split("\n");
            var atext = "";
            checkAktualisierung(zeilen[0]);
            for(var i=1;i<zeilen.length;i++) {
                var teil = zeilen[i];       
                var pos = teil.indexOf(" ");        
                var dateiname = teil.substring(0, pos);                        
                var name = teil.substring(pos+1);
                if (name.length > 0) {
                    atext = '<option value="'+dateiname+'"';
                    if (genre == dateiname)
                        atext += ' selected';
                    atext += '>';
                    atext += name;
                    atext += '</option>';
                    text += atext;
                }
            }
            document.getElementById("menuplatz2").innerHTML = system["template"]["submenue"].replace(/\(\(EINTRAEGE\)\)/, text);
        }
    });    
}
function ladeGenreListe()
{
    if (system["genreliste"])
        return true;
    system["genreliste"] = new Object();
    system["genrelisteREV"] = new Object();
    var datei = "genre_LISTE.txt";
    advAJAX.get({
        url: system["jspfad"]+"/"+datei,
        onSuccess : function(obj) {                
            // daten sind zeilenweise und mit leerzeichen getrennt
            var text = "";
            var zeilen = obj.responseText.split("\n");
            var atext = "";
            checkAktualisierung(zeilen[0]);
            for(var i=1;i<zeilen.length;i++) {
                var teil = zeilen[i];       
                var pos = teil.indexOf(" ");        
                var dateiname = teil.substring(0, pos);                        
                var name = trim(teil.substring(pos+1));
                if (name.length > 0) {
                    system["genreliste"][dateiname] = name;
                    system["genrelisteREV"][name] = dateiname;
                }
            }
        }
    });    
}
