home *** CD-ROM | disk | FTP | other *** search
- // Funktionen fuer die Meldungsanzeige
- // ===================================
-
- // Autor: Dietmar Rabich
- // http://www.rabich.de
-
- // 28.2.2000
-
- // --- Hilfswerte ---
-
- var wochentage =
- [
- "Sonntag",
- "Montag",
- "Dienstag",
- "Mittwoch",
- "Donnerstag",
- "Freitag",
- "Sonnabend"
- ]
-
- var monate =
- [
- "Januar",
- "Februar",
- "März",
- "April",
- "Mai",
- "Juni",
- "Juli",
- "August",
- "September",
- "Oktober",
- "November",
- "Dezember"
- ]
-
- var anfang = "<%"
- var ende = "%>"
-
- var standard_meldung = "Derzeit liegen keine Informationen vor."
-
- var cnt
-
- // --- Interne Funktionen ---
-
- // Formate
- function datum_format_kurz(d)
- {
- return String(d.getDate()) + "." +
- String(d.getMonth() + 1) + "." +
- String(d.getFullYear ? d.getFullYear() : d.getYear())
- }
-
- function datum_format_lang(d)
- {
- return wochentage[d.getDay()] + ", " +
- String(d.getDate()) + ". " +
- monate[d.getMonth()] + " " +
- String(d.getFullYear ? d.getFullYear() : d.getYear())
- }
-
- function datum_format_mit_zeit(d)
- {
- return d.toString()
- }
-
- function zwei_ziffern(x)
- {
- if(x < 10)
- return "0" + String(x)
- return String(x)
- }
-
- function datum_format_zeit(d)
- {
- return String(d.getHours()) + ":" +
- zwei_ziffern(d.getMinutes()) + ":" +
- zwei_ziffern(d.getSeconds())
- }
-
- // Konfigurationsparameter
- function datum_und_zeit()
- {
- var heute = new Date()
- return datum_format_mit_zeit(heute)
- }
-
- function datum_lang()
- {
- var heute = new Date()
- return datum_format_lang(heute)
- }
-
- function datum()
- {
- var heute = new Date()
- return datum_format_kurz(heute)
- }
-
- function zeit()
- {
- var heute = new Date()
- return datum_format_zeit(heute)
- }
-
- function nummer()
- {
- return String(cnt)
- }
-
- // --- Liste der Werte und Systemwerte sowie die Ersetzungen ---
- // typ=0 Wert aus Meldungen, typ=1 Systemwert (Funktion), typ=2 Datum
-
- var liste =
- [
- {
- variable:"titel",
- feld:"Titel",
- typ:0,
- subtyp:0
- },
- {
- variable:"text",
- feld:"Text",
- typ:0,
- subtyp:0
- },
- {
- variable:"autor",
- feld:"Autor",
- typ:0,
- subtyp:0
- },
- {
- variable:"datum",
- feld:"Meldungsdatum",
- typ:2,
- subtyp:0
- },
- {
- variable:"datum",
- feld:"MeldungsdatumLang",
- typ:2,
- subtyp:1
- },
- {
- variable:"datum",
- feld:"MeldungsdatumUndZeit",
- typ:2,
- subtyp:2
- },
- {
- variable:"datum",
- feld:"Meldungszeit",
- typ:2,
- subtyp:3
- },
- {
- variable:datum_und_zeit,
- feld:"DatumUndZeit",
- typ:1,
- subtyp:0
- },
- {
- variable:datum,
- feld:"Datum",
- typ:1,
- subtyp:0
- },
- {
- variable:datum_lang,
- feld:"DatumLang",
- typ:1,
- subtyp:0
- },
- {
- variable:zeit,
- feld:"Zeit",
- typ:1,
- subtyp:0
- },
- {
- variable:nummer,
- feld:"Nummer",
- typ:1,
- subtyp:0
- }
- ]
-
- // --- Hauptfunktionen ---
-
- // Wert zum Feld ermitteln
- function wert(nr, p)
- {
- var i
- for(i = 0; i < liste.length; i++)
- {
- if(liste[i].feld == p)
- switch(liste[i].typ)
- {
- // Funktion
- case 1:
- return liste[i].variable()
-
- // Datum
- case 2:
- var temp = new Date(meldungen[nr][liste[i].variable])
- switch(liste[i].subtyp)
- {
- case 0:
- return isNaN(temp) ?
- datum() :
- datum_format_kurz(temp)
-
- case 1:
- return isNaN(temp) ?
- datum_lang() :
- datum_format_lang(temp)
-
- case 2:
- return isNaN(temp) ?
- datum_und_zeit() :
- datum_format_mit_zeit(temp)
-
- case 3:
- return isNaN(temp) ?
- zeit() :
- datum_format_zeit(temp)
-
- default:
- break
- }
- break
-
- // Normalwert
- default:
- return meldungen[nr][liste[i].variable]
- }
- }
- return "Unbekannter Wert!!!"
- }
-
- // Platzhalter durch Werte ersetzen
- function ersetze(mldg_nr)
- {
- var s = vorlagen[meldungen[mldg_nr].vorlage]
-
- ++cnt
-
- var pos = s.indexOf(anfang)
- var platzhalter = ""
- var s_anfang = ""
- var s_ende = ""
- var temp = 0
-
- while(pos != -1)
- {
- s_anfang = s.substring(0, pos)
- platzhalter = s.substring(pos)
- pos2 = platzhalter.indexOf(ende)
- s_ende = platzhalter.substring(pos2 + ende.length)
- platzhalter = platzhalter.substring(anfang.length, pos2)
- s = s_anfang + wert(mldg_nr, platzhalter)
- temp = s.length
- s += s_ende
- pos = s.indexOf(anfang, temp)
- }
-
- return s
- }
-
- // Test, ob die Meldung angezeigt werden soll
- function anzuzeigen(nr)
- {
- var heute = new Date()
- var von = ((meldungen[nr].von == "") || (meldungen[nr].von == null)) ? null : new Date(meldungen[nr].von)
- var bis = ((meldungen[nr].bis == "") || (meldungen[nr].bis == null)) ? null : new Date(meldungen[nr].bis)
-
- if(!von && !bis)
- return true
- if(!von)
- return (heute.getTime() <= bis.getTime())
- if(!bis)
- return (von.getTime() <= heute.getTime())
-
- return ((von.getTime() <= heute.getTime()) && (heute.getTime() <= bis.getTime()))
- }
-
- // Anzeige aller Meldungen
- function anzeige()
- {
- var i
- var anzeige_erfolgt = false
- cnt = 0
-
- document.open("text/html")
-
- for(i = 0; i < meldungen.length; i++)
- if(anzuzeigen(i))
- {
- document.writeln(ersetze(i))
- anzeige_erfolgt = true
- }
-
- if(!anzeige_erfolgt)
- document.writeln(standard_meldung)
-
- document.close()
- }
-