/**
 * Meldungsobjekt
 *
 * Benoetigt prototype.js und scriptaculous.js
 */
function Meldungen()
{
	this.boxContainer = null;
	this.box = null;
	this.boxVorhanden = false;
	this.sichtbar = new Bool(false); // Es kann leider nicht mit new Boolean gearbeitet werden, weil es ohne Objektreferenzen arbeitet
	this.timeouts = new Array();
	this.anzahl_der_slidedowns = 0;

	this.array = new Array();
	// Allgemeines
	this.array[1]  = "&Auml;nderungen wurden gespeichert.";
	this.array[2]  = "Ein neuer Kunde wurde erstellt.";
	this.array[3]  = "Das eingegebene Datum hat ein falsches Format. Bitte benutzen Sie das Format TT.MM.JJJJ oder JJJJ-MM-TT.";
	// Benutzername
	this.array[15] = "Der Benutzername wird bereits von einem anderen Kunden verwendet.";
	this.array[16] = "Der Benutzername darf nicht mit der Zeichenfolge \"kunde\" oder \"stream\" beginnen.";
	this.array[17] = "Der Benutzername \"??\" wurde gespeichert. Sie k&ouml;nnen sich jetzt damit anmelden.";
	// Email - Adresse
	this.array[20] = "Die Email-Adresse \"??\" ist ung&uuml;ltig.";
	this.array[21] = "Die Email-Adresse \"??\" wurde bereits von einem anderen Benutzer eingetragen.";
	// Kundennummer
	this.array[25] = "Die Kundennummer ?? ist bereits vergeben worden.";
	// Name
	this.array[30] = "Es wurde kein Name angegeben.";
	// Nachrichten
	this.array[35] = "Nachricht(en) wurden erfolgreich versandt.";
	this.array[36] = "Nachrichten mit leerem Inhalt werden nicht versandt.";
	this.array[37] = "Es war kein Betreff angegeben. Deshalb wurde \"[Kein Betreff]\" eingetragen.";
	this.array[38] = "Soll die Nachricht wirklich gel&ouml;scht werden? Sie wird endg&uuml;ltig gel&ouml;scht " +
				 	 "und kann nicht wieder hergestellt werden.";
	this.array[39] = "Die Nachricht wurde gel&ouml;scht";
	this.array[40] = "Nachricht(en) konnten nicht versandt werden.";
	// AutoDJ
	this.array[70] = "Die Playlist wird innerhalb der n&auml;chsten 60 sec gestartet.";
	this.array[71] = "Die Playlist kann nicht gestartet werden.";
	this.array[72] = "Die Playlist wird innerhalb der n&auml;chsten 60 sec gestoppt.";
	this.array[73] = "Die Playlist kann nicht gestoppt werden. Versuchen Sie es in einer" +
			   		 "Minute noch einmal.";
	this.array[74] = "Eine Playlist muss mindestens ein Lied beinhalten, um abgespielt werden zu k&ouml;nnen.";
	// StreamServer
	this.array[75] = "Der Moderator wurde vom Server getrennt.";
	this.array[76] = "Der Server ist zur Zeit offline.";
	this.array[77] = "Der Server-Typ wurde umgestellt. Es kann jedoch bis zu 10 Minuten dauern, " +
			   		 "bis der neue Server installiert wurde.";
	this.array[78] = "Der Server-Typ konnte nicht umgestellt werden.";
	this.array[79] = "Der StreamServer (ID: ??) wird auf einen anderen Server verlegt.";
	this.array[80] = "Der Streamserver <i>??</i> wurde erfolgreich gel&ouml;scht.";
	this.array[81] = "Die maximale Anzahl an Servern ist bereits erreicht. Es kann kein weiterer Server " +
			   		 "in diesem Tarif erstellt werden.";
	this.array[82] = "Der Streamserver wird erstellt. Es kann jedoch bis zu 10 Minuten dauern, bis der " +
			  		 "Installationsprozess abgeschlossen wurde.";
	this.array[83] = "Ein StreamServer, der den Inhalt eines anderen Servers weitergibt, kann nicht verschoben werden. "+
			   		 "Nur der Quellserver kann verschoben wurden.<br> Die ID des Quellservers ist: ??";
	this.array[84] = "Dem Server wurde eine andere Playlist zugewiesen.";
	// StreamServer - Administration
	this.array[85] = "Der Zuh&ouml;rer mit der IP ?? wurde vom Server getrennt.";
	this.array[86] = "Die IP ?? wurde auf dem Server gesperrt.";
	this.array[87] = "Das Subnet ?? wurde auf dem Server gesperrt.";
	this.array[88] = "Die IP ?? wird auf dem Server wieder zugelassen.";
	// Kunden
	this.array[95] = "Der Kunde ?? wurde auf \"aktiv\" gesetzt.";
	this.array[96] = "der Kunde ?? wurde auf \"inaktiv\" gesetzt.";
	this.array[97] = "Kontonummern d&uuml;rfen nur aus Ziffern bestehen! Benutzen Sie bitte " +
			   		 "keine anderen Zeichen";
	this.array[98] = "Diese Funktion kann nicht ausgef&uuml;hrt werden, weil Ihr Benutzerkonto auf " +
			  		 "\"inaktiv\" gestellt wurde. Bei Fragen, kontaktieren Sie bitte den Administrator.";
	this.array[99] = "Dem Kunden mit der ID: ??, wurde das Lastschriftverfahren erlaubt.";
	this.array[100] = "Dem Kunden mit der ID: ??, wurde die Erlaubnis zum Lastschriftverfahren entzogen.";
	this.array[101] = "Dem Team von StreamPlus wurde ein Antrag mit Ihren Daten per Mail zugeschickt.";
	this.array[102] = "Der Kunde mit der Kunden-Nr. <i>??</i> wird in Zukunft keine automatischen Rechnungen &uuml;ber " +
					  "StreamPlus erhalten.";
	this.array[103] = "Der Kunde mit der Kunden-Nr. <i>??</i> wird in Zukunft Rechnungen &uuml;ber StreamPlus erhalten.";
	this.array[104] = "Der Kunde mit der Kunden-Nr. <i>??</i> wurde gel&ouml;scht.";
	this.array[105] = "Der Kunde konnte nicht gel&ouml;scht werden, weil er bereits Rechnungen erhalten hat.";
	this.array[106] = "Die K&uuml;ndigung wurde aufgehoben.";
	this.array[107] = "Der Kunde konnte nicht aktiviert werden, weil er bereits gek&uuml;ndigt hat.";
    this.array[108] = "Das Geburtsdatum hat ein falsches Format. Bitte benutzen Sie das Format \"TT.MM.JJJJ\".";
	// Tarife
	this.array[110] = "Dem Kunden ?? wurde ein neuer Tarif hinzugef&uuml;gt.";
	this.array[111] = "Dem Server k&ouml;nnen nicht so viele Zuh&ouml;rer zugeordnet werden. " +
					  "Scheinbar wurden	anderen Servern bereits alle Zuh&oum;rer zugeordnet.";
    this.array[112] = "Das Bestelldatum kann maximal um 7 Tage nach hinten verschoben werden.";
    this.array[115] = "Der Tarif ?? wurde gel&ouml;scht.";
    this.array[116] = "F&uuml;r den Tarif gibt es keinen Vertrag.";
    this.array[117] = "Der Tarif wurde nicht gefunden.";
    this.array[118] = "Es kann nur auf einen h&ouml;herwertigen Tarif gewechselt werden.";
    this.array[119] = "Der Tarif konnte nicht gel&ouml;scht werden, da es noch Teamspeak Server gibt, die nicht gel&ouml;scht werden konnten.";
	// Rechnungen
	this.array[130] = "Die Rechnung mit der Nr. ?? wurde auf \"bezahlt\" gesetzt.";
	this.array[131] = "Die Rechnung mit der Nr. ?? wurde &uuml;ber PayPal bezahlt. Vielen Dank.";
	this.array[132] = "Es wurde ein falsches Zahlungsmittel angegeben";
	this.array[133] = "Die Rechnung mit der Nr. ?? konnte nicht auf \"bezahlt\" gesetzt werden.";
	// Relay-Server
	this.array[150] = "Der Relay-Server wurde angelegt. Es kann jedoch bis zu 10 Minuten dauern, bis der " +
			   		  "Installationsprozess abgeschlossen wurde.";
	this.array[151] = "Der Relay-Server konnte nicht angelegt werden.";
	this.array[152] = "Der Relay-Server konnte nicht angelegt werden, weil die gew&uuml;nschte Bitrate" +
					  "der maximal zul&auml;ssigen in diesem Tarif &uuml;bersteigt, oder schon genug Server angelegt wurden.";
	// StreamServer
	this.array[170] = "Die Anzahl der Zuh&ouml;rer kann bei Testservern nicht ge&auml;ndert werden.";
	this.array[171] = "Testserver k&ouml;nnen nicht gel&ouml;scht werden";
	this.array[172] = "Die Stream URl wurde ge&auml;ndert.";
    this.array[173] = "Die Datei muss mindestens so lang sein wie das Ausklingen <i>(fade out)</i>.";
    this.array[174] = "Die Playlist konnte nicht gewechselt werden.";
    this.array[175] = "Eventuell m&uuml;ssen Sie sich neu anmelden.";
    this.array[180] = "Der Streamserver wird in wenigen Sekunden neugestartet.";
	// Server
	this.array[250] = "Der Server wurde in die Datenbank eingetragen.";
	this.array[251] = "&Auml;nderungen am Server wurden gespeichert.";
	this.array[252] = "Der Server konnte nicht erstellt werden, weil die IP oder der Hostname bereits vorhanden sind.";
	this.array[253] = "Die IP ?? ist nicht erlaubt.";
	this.array[254] = "Auf dem Server sind bereits Streamserver installiert. Daher kann er nicht gel&ouml;scht werden.";
	// Passwoerter
	this.array[300]  = "Das Passwort muss mindestens aus einem Zeichen bestehen";
	this.array[302] = "Passwort wurde neu gesetzt.";
	this.array[303] = "Das Passwort konnte nicht erneuert werden, weil die Passwort-Wiederholung " +
				   	  "falsch war.";
	this.array[304] = "Das Passwort konnte nicht erneuert werden. Entweder das alte Passwort ist nicht "+
				      "korrekt, oder die Passwort-Wiederholung ist falsch.";
	this.array[305] = "Passwort und Passwort-Wiederholung stimmen nicht &uuml;berein.";
	this.array[306] = "Das Passwort enth&auml;llt Zeichen, die nicht druckbar sind. "+
				      "Bitte keine Leerzeichen oder &auml;hnliches benutzen.";
	// Passwort vergessen
	this.array[320] = "Die eingegebene Email Adresse konnte in unserer Datenbank nicht gefunden werden. " +
					  "Bitte &uuml;berpr&uuml;fen Sie die schreibweise.";
	this.array[321] = "Ihnen wurde eine Email zugeschickt, in der Sie einen Link finden, um das Passwort neu setzen zu lassen.";
    this.array[322] = "Der benutzte Link ist fehlerhaft, bitte lassen Sie sich die Email erneut zuschicken.";
	this.array[323] = "Ihr Passwort wurde bereits zur&uuml;ckgesetzt. Sie erhalten von uns eine Email mit den neuen Zugangsdaten.";
	// MP3s
	this.array[400] = "Die MP3 Datei ?? ist fehlerhaft.";
	this.array[401] = "Die Datei konnte nicht gel&ouml;scht werden, da sie nicht mehr zu finden ist. Bitte nehmen Sie Kontakt mit dem Streamplus Team auf.";
	this.array[402] = "Die Datei konnte nicht gel&ouml;scht werden, da sie nicht beschreibbar ist. Bitte nehmen Sie Kontakt mit dem Streamplus Team auf.";
	this.array[403] = "Die Datei wurde gel&ouml;scht.";
    this.array[404] = "Die Datei kann nicht gel&ouml;scht werden, da sie mit einer Playlist verkn&uuml;pft ist, die gerade abgespielt wird.";
    // Ordner
    this.array[600] = "Der Ordner <i>\"??\"</i> wurde gel&ouml;scht.";
	// Playlisten
	this.array[700] = "Die Playlist <i>\"??\"</i> wurde erstellt. Sie k&ouml;nnen ihr jetzt MP3s hinzuf&uuml;gen.";
	this.array[701] = "Die Playlist <i>\"??\"</i> wurde gel&ouml;scht.";
	this.array[702] = "Es ist bereits eine Playlist mit dem Namen <i>\"??\"</i> vorhanden.";
	this.array[703] = "Die Playlist wird auf den Servern aktualisiert. Es kann jedoch einige Minuten" +
		   			 "dauern, bis die &Auml;nderungen &uuml;bernommen werden.";
	this.array[704] = "Die Playlist konnte aus einem unbekannten Grund nicht aktualisiert werden.";
	this.array[705] = "Die Datei \"??\" wurde der Playlist hinzugef&uuml;gt.";
	this.array[706] = "Die Datei \"??\" konnte der Playlist nicht hinzugef&uuml;gt werden, weil "+
					 "bereits eine Datei mit diesem Namen vorhanden ist.";
	this.array[707] = "Die ausgew&auml;hlten Dateien wurden aus der Playlist gel&ouml;scht.";
	this.array[708] = "Die Datei \"??\" wurde aus der Playlist gel&ouml;scht.";
	this.array[709] = "Die Datei \"??\" konnte nicht aus der Playlist gel&ouml;scht werden.";
	this.array[710] = "Die Reihenfolge der Dateien wurde ge&auml;ndert. Die &Auml;nderung wird "+
					  "auf den Servern &uuml;bernommen.";
	this.array[711] = "Die Datei \"??\" ist besch&auml;digt und kann deshalb nicht in die Playlist aufgenommen" +
		   			  "werden.";
    this.array[712] = 'Die Playlist muss einen Namen haben.';
    this.array[750] = "Das Datum oder die Zeit wurde in einem falschen Format eingegeben.<br />Bitte nutzen Sie das Format: <i>TT.MM.JJJJ</i> bzw. <i>hh:mm:ss</i>";
    this.array[751] = "Die Endzeit darf nicht vor der Startzeit liegen. Bitte korrigieren Sie Ihre Eingaben.";
    this.array[752] = "Der Eintrag w&uuml;rde sich mit einem anderen Eintrag in dieser Playlist &uuml;berschneiden. Dies ist nicht m&ouml;glich.";
    // Webhosting
    this.array[1000] = "Die Domain ist nicht mehr verf&uuml;gbar.";
    this.array[1001] = "Ihre Eingabe ist nicht korrekt. Bitte geben Sie eine Adresse ohne Angaben wie \"http\", \"www\" oder die Domainendung ein.";
    this.array[1002] = "Die Authentifizierung ist fehlgeschlagen. Bitte kontaktieren Sie den Administrator.";
    this.array[1003] = "Bei der Registrierung Ihrer Domain entstand ein Fehler, bitte versuchen Sie es sp&auml;ter noch einmal";
    this.array[1004] = "Der Service ist zur Zeit nicht erreichbar. Bitte versuchen Sie es sp&auml;ter noch einmal.";
    this.array[1005] = 'Die Datei hat ein falsches Format. Es muss entweder eine JPG, PNG oder GIF Datei sein.';
    this.array[1006] = 'Die hochgeladene Datei ist zu gro&szlig;. Die Datei darf nicht gr&ouml;&szlig;er als 2 MB sein.';
    this.array[1007] = 'Das Passwort wurde ge&auml;ndert und per Email an Sie geschickt.';
    this.array[1008] = 'Dein Webhosting Zugang wurde ge&auml;ndert. Die neuen Daten, werden Dir per Email zugeschickt.';
    this.array[1009] = 'Die Domain kann nicht umgezogen werden, da sie noch nicht existiert.';
    // Webhosting / Domain
    this.array[1030] = 'Die Domain konnte nicht gel&ouml;scht werden, da sie nicht existiert.';
    // Webhosting / Confixx
    this.array[1050] = 'Der Confixx Account wurde bereits gel&ouml;scht.';
    this.array[1051] = 'Der Confixx Account konnte nicht deaktiviert werden.';
    // Kunde
    this.array[1100] = 'Die Kontonummer muss aus mindestens 3 Ziffern bestehen.';
    this.array[1101] = 'Die Kontonummer ist falsch angegeben. Bitte geben Sie nur Ziffern an.';
    this.array[1102] = 'Die Bankleitzahl muss aus mindestens 6 Ziffern bestehen.';
    this.array[1103] = 'Die Bankleitzahl ist falsch eingegeben. Bitte geben Sie nur Ziffern an.';
    this.array[1110] = 'Ihr Kundenkonto konnte nicht aktiviert werden. Sie haben einen falschen Link aufgerufen.';
    this.array[1115] = "Das Lastschriftverfahren ist zur Zeit nur f&uuml;r Kunden aus Deutschland m&ouml;glich.";
    this.array[1150] = "Der Kunde mit der ID ?? konnte nicht gefunden werden.";
    // Kunde - Login
    this.array[1200] = "Der Benutzername und das Passwort stimmen nicht &uuml;berein.";
    this.array[1201] = "Das Kundenkonto wurde bereits gek&uuml;ndigt. Daher ist kein Login mehr m&ouml;glich.";
    // KundenDateien
    this.array[1500] = 'Die Datei "??" wurde erfolgreich hochgeladen.';
    this.array[1501] = 'Die Datei konnte nicht hochgeladen werden.';
    this.array[1505] = 'Die Datei wurde erfolgreich gel&ouml;scht.';
    this.array[1506] = 'Die Datei konnte nicht vom Dateisystem gel&ouml;scht werden.';
    this.array[1507] = 'Die Datei konnte zwar vom Dateisystem gel&ouml;scht werden, aber nicht aus der Datenbank.';
    this.array[1510] = 'Die Datei "??" konnte nicht gelesen werden. Entweder sie ist auf dem Dateisystem nicht mehr vorhanden oder sie ist Lesegesch&uuml;tzt.';
    // KundenBewertungen
    this.array[1550] = 'Sie haben bereits eine Bewertung abgegeben.';
    this.array[1551] = 'Die Antwort wurde nicht korrekt &uuml;bertragen. Bitte versuchen Sie es erneut.';
    this.array[1552] = 'Bitte beantworten Sie alle Fragen.';
    // Gutscheine
    this.array[1600] = 'Die Gutscheincodes wurden in die Datenban eingetragen.';
    this.array[1601] = 'Es sind bereits Gutscheine in der Datenbank eingetragen worden.';
    this.array[1602] = 'Es sind noch keine Gutscheine erstellt worden.';
    this.array[1603] = "Es gibt nicht genug Gutscheine mit dem Wert von ?? Euro.";
    this.array[1610] = 'Der Code ist korrekt. Der Betrag wird Ihrem Streamplus-Konto gutgeschrieben.';
    this.array[1611] = 'Der Code ist entweder falsch oder wurde bereits eingel&ouml;st.';
    this.array[1612] = "Der Gutschein gilt leider nur f&uuml;r Neukunden.";
    // Translation
    this.array[1700] = "Der String konnte nicht eingef&uuml;gt werden. Bitte w&auml;hlen Sie eine Sprache und eine \"Section\" aus.";
    // Teamspeak Server
    this.array[1900] = "Es wurde ein Teamspeak Server installiert.";
    this.array[1901] = "Der Teamspeak Server l&auml;sst sich nicht l&ouml;schen.";
    this.array[1902] = "Der Teamspeak Server konnte nicht gefunden werden. Wurde er vielleicht gestoppt?.";
    this.array[1903] = "Die Daten des Teamspeak Servers wurden gespeichert.";
    this.array[1904] = "Es gab einen Fehler beim &Auml;ndern des Namens. Bitte versuchen Sie es sp&auml;ter noch einmal.";
    this.array[1905] = "Es gab einen Fehler beim &Auml;ndern des Passworts. Bitte versuchen Sie es sp&auml;ter noch einmal.";


	this.createBox = function()
    {
        if(!this.boxVorhanden)
        {
            // Erstellung der Meldungs-Liste

            this.box = document.createElement("ul");
            this.box.id = "meldungen";

            // Erstellung vom boxContainer

            this.boxContainer = document.createElement("div");
            this.boxContainer.id = "meldungenDiv";
            this.boxContainer.style.display = "none";
            this.boxContainer.appendChild(this.box);
            this.boxContainer.appendChild(document.createElement("br"));

            if(document.getElementById("meldungsContainer") == undefined)
                alert("Die Seite hat keinen Meldungs-Container");
            else
                document.getElementById("meldungsContainer").insertBefore(this.boxContainer, document.getElementById("meldungsContainer").firstChild);

            this.boxVorhanden = true;
            this.sichtbarMachen();
        }
	}

	this.neu = function(nr, wert)
    {
		this.createBox();

		if(!this.vorhanden(nr,wert))
        {
			var box = this.box;

            var li = document.createElement("li");
            li.innerHTML = this.array[nr].replace("??",wert);
            li.style.listStyleImage = "none";

            box.appendChild(li);

			if(!this.sichtbar.getValue())
				this.sichtbarMachen();

			this.unsichtbarMachen();
		}
	}

	this.vorhanden = function(nr,wert)
    {
		var box = this.box;

		for(var i=0; i < box.childNodes.length; i++)
        {
			if(box.childNodes[i].innerHTML == this.array[nr].replace("??",wert))
            {
				return true;
			}
		}
		return false;
	}

	this.reset = function()
    {
        var box = document.getElementById("meldungen");

		while(box.hasChildNodes())
        {
			box.removeChild( box.firstChild );
		}
	}

	this.unsichtbarMachen = function()
    {
		var boxContainer = this.boxContainer;

		var sichtbar = this.sichtbar;
		clearTimeout(this.timeouts[0]);
		clearTimeout(this.timeouts[1]);
		this.timeouts[0] = setTimeout(
            function() {
				Effect.SlideUp(boxContainer, {duration: 1.5});
				sichtbar.setValue(false); 
            },
            5000
        );

		var reset = this.reset; // reset() muss nach einem laengeren Timeout ausgefuehrt werden
		this.timeouts[1] = setTimeout( function() {reset();}, 6500);
	}

	this.sichtbarMachen = function()
    {
        var boxContainer = this.boxContainer;
        Effect.SlideDown(boxContainer, {duration: 1.0});

		clearTimeout(this.timeouts[0]);
		clearTimeout(this.timeouts[1]);
		this.timeouts[0] = null;

		this.sichtbar.setValue(true);
	}
}