//Mantel, Boden und Hoehe muessen die gleiche Anzahl von Eintraegen aufweisen
var Mantel  = new Array("Transparent","Transparent","Schwarz","Schwarz","Rot"    ,"Kornblumenblau","Hellblau"  ,"Schwarz","Grün"   );
var Boden   = new Array("Transparent","Transparent","Orange" ,"Schwarz","Schwarz","Kornblumenblau","Dunkelblau","Rot"    ,"Schwarz");
var Bild    = new Array("1a","9a","2a","3a","4a","5a","6a","7a","8a");
// Preise für gerollte PK
var PreisG  = new Array(2190         ,2190     ,2090     ,2090     ,2090     ,2090            ,1790         ,1790    ,1790     );
// Preise für zusammengebaute PK
var PreisK  = new Array(2590         ,2590     ,2490     ,2490     ,2490     ,2490            ,2090         ,2090    ,2090     );
var Special = new Array("Aufschrift Papierkorb","Logo PapierkorbDesign" ,"","", "", "", "", "", "");
var Hoehe   = new Array("50 cm"      , "50 cm", "50 cm" , "50 cm" , "50 cm" , "50 cm"         , "33 cm"     , "33 cm"  , "33 cm"  );
var VersandKostenZusammenGross = 920;	// der große, fertig geschnürte PK
var VersandKostenGerolltGross = 650;	// der große, do it yourself PK
var VersandKostenZusammenKlein = 715;	// der kleine, fertig geschnürte PK
var VersandKostenGerolltKlein = 600;	// der kleine, do it yourself PK
var cookieName = "PapierkorbDesign";
var Summe = 0;				// Zwischenspeicher für die Gesamtsumme der Rechnung

/*
nc    =  Netscape Navigator der vierten Generation
moz   =  Mozilla basierte Browser wie Netscape 7
op6   =  Opera 5/6 (kennt document.documentElement nicht)
op7   =  Opera 7
ie    =  Alle Internetexplorer
ie4   =  Internet Explorer der vierten Generation
ie5Up =  Internet Explorer an Generation 5
dom   =  Alle Dom-fähigen Browser
*/
var nc    =  (document.captureEvents  && !document.getElementById)?       1 : 0;
var moz   =  (document.captureEvents  && document.documentElement)?       1 : 0;
var op6   =  (document.getElementById && !document.documentElement)?      1 : 0;
var op7   =  (window.opera && /Opera( |\/)7/i.exec(navigator.userAgent))? 1 : 0;
var ie    =  document.all? 1 : 0;
var ie4   =  (document.all            && !document.documentElement)?      1 : 0;
var ie5Up =  (document.all            && document.documentElement)?       1 : 0;
var dom   =  document.getElementById? 1 : 0;

// gibt die URL mit dem aktuell verwendeten Protokoll (file,http,https) zurück
function getURL(uri)
{
    return window.location.protocol + "//" + uri;
}

// print bild link as onMouseOver for image10
function pbl(content, i) {
    return "<a href=# onMouseOver=\"image10.src='images/" + Bild[i] + ".jpg';\">" + content + "</a>";
}

function printMoney (money) {
    var euro = parseInt(money / 100);
    var cent = money % 100;
    if (String(cent).length == 1) {
	cent = "0" + cent;
    }

    return euro + "," + cent + "&nbsp;¤";
}
// errechne den Nettobetrag aus dem Bruttobetrag unter zu Hilfenahme der angegebenen Mehrwertsteuer
function netto (brutto, mwst)
{
    return Math.round ((100 * brutto) / (100 + mwst));
}
// errechne den MwSt-Betrag aus dem Bruttobetrag unter zu Hilfenahme der angegebenen Mehrwertsteuer
// immer nur in eine Richtung rechnen, damit die Bruttosumme immer stimmt
function mwst (brutto, mwst)
{
    return brutto - netto (brutto, mwst);
}

// einen Formular-input button zusammen bauen
//   type - Typ, z.B. submit oder button
//   value - die Beschriftung
//   background - die Farbe (Beschriftung erfolgt in Schwarz)
//   active - die Farbe, wenn die Maus drüber schwebt (Beschriftung erfogt in Weiß)
//   onClick - ebendieses, ist optional
function formInput(type, value, background, active, onClick)
{
    var browser = navigator.userAgent;

    if (onClick) {
	onClick = "onClick=\"" + onClick + "\" ";
    } else {
	onClick = "";
    }

    var result = "input type=" + type + " value=\"" + value + "\" " + onClick;

    // nicht für Netscape 4, sonst wird nichts angezeigt
    if (!nc) {
	result += "style=\"background: " + background + "; border:1px solid black;\" " +
	    "onmouseover=\"this.style.background='" + active + "'; this.style.color='#FFFFFF';\" " +
	    "onmouseout=\"this.style.background='" + background + "'; this.style.color='#000000';\"";
    }

    return "<" + result + ">";
}

function showCart() {

    var wert="";
    var tmp;
    var nr = 0;
    for (i=0; i < Mantel.length*2; i++) {
	tmp = document.forms["Shop"].elements[i].value;
	nr = parseInt(tmp);
	if (isNaN (nr) || (nr < 0) || (nr > 99)) {
	    alert ("Ihr Eingabe \"" + tmp +"\" ist ungültig.\nBitte geben Sie eine Zahl zwischen 0 und 99 ein!");
	    location.reload();
	    return;
	}
	wert += tmp + "|";
    }
    SetCookie (cookieName + "Shop", wert);
    location.href="Warenkorb.html";
}

// aus der Eingabe des Lösungswortes (Schritt 1/3) zur Gewinnspielauswahl (Schritt 2/3)
function zurGewinnspielauswahl() {
    var loesung = elt(trim(document.forms["Gewinnspielanfang"].elements[0].value));

    if (loesung.length == 0) {
	alert("Bitte eine Zahl eingeben!");
	return false; 
    }

    for (i=0 ; i < loesung.length ; ++i) {
	if (loesung.charAt(i) < "0" || loesung.charAt(i) > "9" ) {
	    alert("Bitte eine positive Zahl eingeben!");
	    //document.Formular.Alter.focus();
	    location.href="Gewinnspielanfang.html";
	    return false; 
	}
    }

    SetCookie (cookieName + "Los", loesung + "||");
    location.href="Gewinnspielauswahl.html";
    return true;
}


// aus der Gewinnspielauswahl (Schritt 2/4) zum Gewinnspieladresse (Schritt 3/4) gehen
function zurGewinnspieladresse() {

    for (var i=0; i < Mantel.length - 2; i++) {
	if (document.Gewinnspielauswahl.PK[i].checked) {
	    // Lösungswort holen
	    var data=getData("Los", 2, "");
	    // Lösungswort und gewählten Papierkorbtyp merken
	    // die ersten beiden sind ausgeblendet und dann alle geschnürten ausgeblendet
	    SetCookie (cookieName + "Los", data[0] + "|" + ((2 + i) * 2) + "|");
	    location.href="Gewinnspieladresse.html";
	    return;
	}
    }
    alert ("Bitte wählen Sie den Papierkorb aus,\nden Sie haben wollen, wenn Sie gewinnen!");
    location.href="Gewinnspielauswahl.html";
}

// aus der Adresse (Schritt 3) zur Bestellung (Schritt 4) gehen
// dabei die Adresse im 2. cookie PapierkorbDesignAdresse merken
function zurBestellung() {

    if (adresseUebernehmen("Adresse")) {
	location.href="Bestellung.html";
    } else {
	location.reload();
    }
}

// aus der Gewinnspieladresse (3/4) zum Gewinnspielabschluss (4/4) gehen
// die Adresse im Adresse-cookie merken
function zumGewinnspielabschluss()
{

    if (adresseUebernehmen("Gewinnspieladresse")) {
	location.href="Gewinnspielabschluss.html";
    } else {
	location.reload();
    }
}

function gewinnspielAbschluss()
{
    var email = "";				// fuer den Email-Versand

    adresseUebernehmen("Gewinnspielabschluss");

    // Adressdaten
    var data=getData("Adresse", 6, "");
    email += "\nder folgende Auftrag ist eingegangen:\n";
    email += "Nummer: [" + bestellNummer + "]\n";
    email += "Name: [" + data[0] + "]\n";
    email += "Strasse: [" + data[1] + "]\n";
    email += "PLZ: [" + data[2] + "]\n";
    email += "Ort: [" + data[3] + "]\n";
    email += "Email: [" + data[4] + "]\n";
    email += "Telefon: [" + data[5] + "]\n";
}

// die Adresse aus dem Formular form auslesen und in den Adresse-cookie speichern
function adresseUebernehmen(formName)
{
    var wert="";
    var tmp;

    // über die 7 Formularfelder gehen
    for (i=0; i < 7; i++) {
	tmp = elt(trim(document.forms[formName].elements[i].value)) + "|";
	// die ersten vier Felder sind Pflichtfelder, wir wollen wenigstens 3 Zeichen sehen
	if ((i < 4) && (tmp.length <= 3)) {
	    switch (i) {
		case 0: alert ("Bitte geben Sie Ihren Namen ein!"); break;
		case 1: alert ("Bitte geben Sie Strasse und Hausnummer Ihrer Liefer-Adresse ein!"); break;
		case 2: alert ("Bitte geben Sie die Postleitzahl Ihrer Liefer-Adresse ein!"); break;
		case 3: alert ("Bitte geben Sie den Ort für Ihre Liefer-Adresse ein!"); break;
	    }
	    return false;
	}
	if (i == 2) {
	    // PLZ auf eine fünfstellige Zahl prüfen
	    nr = parseInt(tmp);
	    if ((tmp.length) != 6 || isNaN (nr) || (nr < 0) || (nr > 99999)) {
		alert ("Bitte geben Sie die Postleitzahl als fünfstellige Zahl ein!");
		return false;
	    }
	}
	wert += tmp;
    }
    SetCookie (cookieName + "Adresse", wert);
    return true;
}

// Bestell-Nummer und lokales Datum und Uhrzeit
// im 3. cookie PapierkorbDesignBestellung merken
function createBestellung() {
    var date = (new Date()).toLocaleString(); // Mit 26 Nov 2003 18:15:02 CET (oder anders!)
    // 6stellige Bestellnummer
    var bestellNummer = parseInt (Math.random() * 1000000);

    SetCookie (cookieName + "Bestellung", bestellNummer + "|" + date + "|");
}

// es werden immer 2 Preise hintereinander abgelegt, zuerst der gerollte und dann der zusammengebaute
// formName ist Shop oder Adresse (der cookie Postfix)
// lenght ist die Länge des leeren arrays, wenn der cookie nicht gesetzt ist
// init ist die Initialisierung für nicht gesetzte Daten z.B. "" oder "0"
function getData (formName, length, init) {

    var content=new Array();
    var i = 0;

    wert = GetCookie (cookieName + formName);
    if (wert) {
	for (i=0; wert.indexOf("|") > -1; i++) {
	    var d = wert.substring(0,wert.indexOf("|"));	// Daten bis zum Trennstrich auslesen
	    // hlu, 16.2.04: IE 4 (W98) kann push noch nicht
	    // content.push(d);					// Daten als neues Element im Array einfügen
	    content[content.length] = d;			// Daten als neues Element im Array einfügen
	    wert = wert.substr(wert.indexOf("|")+1,wert.length);// gelesene Daten wegschneiden
	}
	return content;						// gibt das Array zurück
    }

    // Es gibt noch kein Cookie
    for (i=0; i < length; i++) {
	// hlu, 16.2.04: IE 4 (W98) kann push noch nicht
	// content.push(init);
	content[content.length] = init;
    }
    return content;
}

// formName ist Shop oder Adresse (der cookie Postfix)
// length ist die Länge des leeren arrays, wenn der cookie nicht gesetzt ist
// init ist die Initialisierung für nicht gesetzte Daten z.B. "" oder "0"
// reload für location.reload()
function resetCookie(formName, length, init, reload) {

    var content ="";
    for (i=0; i < length; i++) {
	content += init + "|"
    }
    SetCookie (cookieName + formName, content);

    if (reload == true) {
	location.reload();
    }
}

// Gesamtanzahl aller PK im Warenkorb
function getGesamtAnzahl()
{
    var gesamtAnzahl = 0;
    var data=getData("Shop", Mantel.length*2, "0");

    for (i=0; i < Mantel.length*2; i++) {
	gesamtAnzahl += parseInt(data[i]);
    }

    return parseInt(gesamtAnzahl);
}

// ermittle die Versandkosten in Cent
function versandKosten()
{
    var zusammenGebaut = 0;	// Flag: gibt es einen zusammengebauten PK? -> höherer Versandpreis
    var grosserPK = 0;		// Flag: ist ein grosser PK dabei -> höherer Versandpreis

    var data=getData("Shop", Mantel.length*2, "0");

    i = 0;	// die Haelfte von j
    for (j=0; j < Mantel.length*2; j++) {
	if (j > 0) {
	    i = parseInt(j/2);
	}
	if (data[j] > 0) {
	    // es werden immer 2 Preise hintereinander abgelegt, zuerst der gerollte und dann der zusammengebaute
	    if (j % 2) {
		// es ist ein zusammengebauter PK dabei -> höhere Versandkosten
		zusammenGebaut = 1;
	    }
	    if (Hoehe[i] == "50 cm") {
		// es ist ein großer PK dabei -> höhere Versandkosten
		grosserPK = 1;
	    }
	}
    }

    // die Versandkosten werden an Hand des teuersten Einzelexemplars ermittelt
    if (zusammenGebaut && grosserPK) {
	// der große, fertig geschnürte PK
	return VersandKostenZusammenGross;	// 9,20 ¤
    } else if (zusammenGebaut) {
	// der kleine, fertig geschnürte PK
	return VersandKostenZusammenKlein;	// 7,15 ¤
    } else if (grosserPK) {
	// der große, do it yourself PK
	return VersandKostenGerolltGross;	// 6,50 ¤
    } else {
	// der kleine, do it yourself PK
	return VersandKostenGerolltKlein;	// 6,00 ¤
    }
}

// 8 Adresszeilen
// holt sich die Vorbelegung aus dem Adresse-cookie
function printAdressRows()
{
    var data = getData ("Adresse", 7, "");

    document.writeln("	<tr bgcolor=#D2D2D2><th colspan=2>Liefer-Adresse</th></tr>");
    document.writeln("	<tr bgcolor=#F2F2F2><td align=right>Vor- und Nachname <font class=pflicht>*</font></td><td><input type=text size=40 align=left value=\"" + data[0] + "\"></td></tr>");
    document.writeln("	<tr bgcolor=#F2F2F2><td align=right>Straße und Hausnummer <font class=pflicht>*</font></td><td><input type=text size=40 align=left value=\"" + data[1] + "\"></td></tr>");
    document.writeln("	<tr bgcolor=#F2F2F2><td align=right>Postleitzahl <font class=pflicht>*</font></td><td><input type=text size=40 align=left value=\"" + data[2] + "\"></td></tr>");
    document.writeln("	<tr bgcolor=#F2F2F2><td align=right>Ort <font class=pflicht>*</font></td><td><input type=text size=40 align=left value=\"" + data[3] + "\"></td></tr>");
    document.writeln("	<tr bgcolor=#F2F2F2><td align=right>Email</td><td><input type=text size=40 align=left value=\"" + data[4] + "\"></td></tr>");
    document.writeln("	<tr bgcolor=#F2F2F2><td align=right>Telefon</td><td><input type=text size=40 align=left value=\"" + data[5] + "\"></td></tr>");
    document.writeln("	<tr bgcolor=#F2F2F2><td align=right>Kommentar</td><td><input type=text size=40 align=left value=\"" + data[6] + "\"></td></tr>");
}

// wird aus Warenkorb.html und aus Bestellung.html heraus aufgerufen
// 7spaltiger Tabellenausschnitt
function printWarenkorb()
{
    var gesamtAnzahl = getGesamtAnzahl();

    Summe = 0;				// der Gesamtpreis

    var data=getData("Shop", Mantel.length*2, "0");

    if (gesamtAnzahl <= 0) {
	document.writeln("<tr bgcolor=#F2F2F2><td colspan=7>Ihr Warenkorb ist leer.</td></tr>");
    } else {
	document.writeln("<tr bgcolor=#D2D2D2><th>Höhe</th><th>Mantelfarbe</th><th>Bodenfarbe</th><th>Ausführung</th><th>Einzelpreis</th><th>Stückzahl</th><th>Gesamtpreis</th></tr>");
	i = 0;	// die Haelfte von j
	for (j=0; j < Mantel.length*2; j++) {
	    if (j > 0) {
		i = parseInt(j/2);
	    }
	    if (j % 2) {
		preis = PreisK[i];
	    } else {
		preis = PreisG[i];
	    }
	    if (data[j] > 0) {
		document.writeln("<tr bgcolor=#F2F2F2>");
		// Höhe
		document.writeln("<td>" + Hoehe[i] + "</td>");
		// Mantel- und Bodenfarbe, ggf zusammen gefasst
		if (Boden[i] == Mantel[i]) {
		    document.writeln("<td colspan=2 align=center>" + Boden[i]);
		} else {
		    document.writeln("<td align=center>" + Mantel[i] + "</td>");
		    document.writeln("<td align=center>" + Boden[i]);
		}
		// Besonderheiten (z.B. Aufschrift) wird ggf noch angehängt
		if (Special[i].length > 0) {
		    document.writeln("<br>(" + Special[i] + ")");
		}
		document.writeln("</td>");
		// Ausführung
		if (j % 2) {
		    document.writeln("<td align=center>zusammengebaut</td>");
		} else {
		    document.writeln("<td align=center>gerollt</td>");
		}
		// Einzelpreis
		document.writeln("<td align=right>" + printMoney(preis) + "</td>");
		// Stückzahl
		document.writeln("<td align=center>" + data[j]  + "</td>");
		// Gesamtpreis
		document.writeln("<td align=right>" + printMoney (data[j] * preis) + "</td>");
		document.writeln("</tr>");
		Summe += data[j] * preis;
	    }
	}
	vsk = versandKosten();
	document.writeln("<tr bgcolor=#F2F2F2><td colspan=6>Verpackung und Versand</td><td align=right>" + printMoney(vsk) + "</td></tr>");
	Summe += vsk;
	document.writeln("<tr bgcolor=#F2F2F2><td colspan=5><b>Summe</b> (Netto: " +
		printMoney(netto(Summe, 19)) + ", 19 % USt: " + 
		printMoney(mwst(Summe, 19)) + ")" +
		"</td><td align=center><b>" + gesamtAnzahl + "</td><td align=right><b>" + printMoney(Summe) + "</td></tr>");
    }
}

// die Bestellung (inklusive Warenkorb) als Zeilen einer 7spaltigen Tabelle ausgeben
function printBestellung()
{
    var gesamtAnzahl = getGesamtAnzahl();

    // Bestellnummer und lokales Datum+Uhrzeit aus dem cookie holen
    var data=getData("Bestellung", 2, "oops");
    var bestellNummer = data[0];
    var date = data[1];

    document.writeln("<tr bgcolor=#D2D2D2><td colspan=7 align=left>");
    document.writeln("<b><font size=+2>Bestellung: " + getGesamtAnzahl() + " ");
    if (gesamtAnzahl == 1) {
	document.write("Papierkorb");
    } else {
	document.write("Papierkörbe");
    }
    document.writeln(" <font color=\"#ca003b\"><b>drop</b></font>, Bestell-Nummer " + bestellNummer + "</font></b><br>");
    document.writeln("Lokale Zeit: " + date + "</font></b></td></tr>");
    printWarenkorb();
    document.writeln("<tr bgcolor=#F2F2F2><td colspan=7 align=left><br><b><font size=+2>Liefer-Adresse</font><br><br></b>");
    // die Adresse als formatiert mit einer unsichtbaren HTML-Tabelle ausgeben
    listeAdresse()

}

// die Adresse als formatiert mit einer unsichtbaren HTML-Tabelle ausgeben
function listeAdresse()
{
    // Adress-cookie auslesen
    data=getData("Adresse", 7, "");

    // die Adresse als sub-table formatiert ausgeben
    document.writeln("<table border=0 rules=none fgcolor=#F2F2F2>");
	document.writeln("<tr bgcolor=#F2F2F2><td align=right>Vor- und Nachname: </td><td><b>" + data[0] + "</b></td></tr>");
	document.writeln("<tr bgcolor=#F2F2F2><td align=right>Straße und Hausnummer: </td><td><b>" + data[1] + "</b></td></tr>");
	document.writeln("<tr bgcolor=#F2F2F2><td align=right>Postleitzahl: </td><td><b>" + data[2] + "</b></td></tr>");
	document.writeln("<tr bgcolor=#F2F2F2><td align=right>Ort: </td><td><b>" + data[3] + "</b></td></tr>");
	document.writeln("<tr bgcolor=#F2F2F2><td align=right>Email: </td><td><b>" + data[4] + "</b></td></tr>");
	document.writeln("<tr bgcolor=#F2F2F2><td align=right>Telefon: </td><td><b>" + data[5] + "</b></td></tr>");
	document.writeln("<tr bgcolor=#F2F2F2><td align=right>Kommentar: </td><td><b>" + data[6] + "</b></td></tr>");
    document.writeln("</table></td></tr>");
}

// die Adresse als ASCII für den Email-Versand zusammen sammeln
function getAdresse()
{
    var adresse = "";

    // Adressdaten aus dem cookie holen
    var data=getData("Adresse", 6, "");
    adresse += "Name: [" + data[0] + "]\n";
    adresse += "Strasse: [" + data[1] + "]\n";
    adresse += "PLZ: [" + data[2] + "]\n";
    adresse += "Ort: [" + data[3] + "]\n";
    adresse += "Email: [" + data[4] + "]\n";
    adresse += "Telefon: [" + data[5] + "]\n";
    adresse += "Kommentar: [" + data[6] + "]\n";

    return adresse;
}

// den Auftrag als ASCII für den Email-Versand zusammen sammeln
function getAuftrag(bestellNummer)
{
    var auftrag = "";				// unser Auftrag fuer den Email-Versand
    var gesamtAnzahl = getGesamtAnzahl();
    var lfdNr = 0;				// falls gleich mehrere PK bestellt werden
    var vsk = versandKosten();
    						// den Kommentar zur Bestellung
    Summe = 0;					// der Gesamtpreis der Bestellung

    auftrag = "\nder folgende Auftrag ist eingegangen:\n";
    auftrag += "Nummer: [" + bestellNummer + "]\n";

    // Adressdaten
    auftrag += getAdresse();

    // Shop-Daten
    auftrag += "Gesamtanzahl: [" + gesamtAnzahl + "]\n";
    if (gesamtAnzahl > 0) {
	var data=getData("Shop", Mantel.length*2, "0");
	auftrag += "Versand: [" + vsk + "]\n";
	i = 0;	// die Haelfte von j
	for (j=0; j < Mantel.length*2; j++) {
	    if (j > 0) {
		i = parseInt(j/2);
	    }
	    if (data[j] > 0) {
		++lfdNr;
		id = 40001 + j;
		auftrag += "Schluessel" + lfdNr + ": [" + id + "]\n";
		auftrag += "Hoehe" + lfdNr + ": [" + Hoehe[i] + "]\n";
		auftrag += "Boden" + lfdNr + ": [" + Boden[i] + "]\n";
		auftrag += "Mantel" + lfdNr + ": [" + Mantel[i] + "]\n";
		if (Special[i].length > 0) {
		    auftrag += "Besonderheit" + lfdNr + ": [" + Special[i] + "]\n";
		}
		if (j % 2) {
		    auftrag += "Ausfuehrung" + lfdNr + ": [" + "geschnuert" + "]\n";
		    preis = PreisK[i];
		} else {
		    auftrag += "Ausfuehrung" + lfdNr + ": [" + "gerollt" + "]\n";
		    preis = PreisG[i];
		}
		auftrag += "Preis" + lfdNr + ": [" + preis + "]\n";
		auftrag += "Anzahl" + lfdNr + ": [" + data[j] + "]\n";
		auftrag += "Gesamtpreis" + lfdNr + ": [" + (preis * data[j]) + "]\n";
		Summe += (preis * data[j]);
	    }
	}
	auftrag += "Summe: [" + (Summe + vsk) + "]\n";
	auftrag += "Netto: [" + netto(Summe + vsk, 16) + "]\n";
	auftrag += "USt: [" + mwst(Summe + vsk, 16) + "]\n";
    }

    return auftrag;
}


// allgemeiner cookie stuff

function GetCookie (name) {  
    var arg = name + "=";  
    var alen = arg.length;  
    var clen = document.cookie.length;  
    var i = 0;  
    while (i < clen) {
	var j = i + alen;    
	if (document.cookie.substring(i, j) == arg)      
	    return getCookieVal (j);    
	i = document.cookie.indexOf(" ", i) + 1;    
	if (i == 0) break;   
    }  
    return null;
}
function SetCookie (name, value) {  
    var argv = SetCookie.arguments;  
    var argc = SetCookie.arguments.length;  
    var expires = (argc > 2) ? argv[2] : null;
    var path = (argc > 3) ? argv[3] : null;  
    var domain = (argc > 4) ? argv[4] : null;  
    var secure = (argc > 5) ? argv[5] : false;  
    document.cookie = name + "=" + escape (value) + 
	((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + 
	((path == null) ? "" : ("; path=" + path)) +  
	((domain == null) ? "" : ("; domain=" + domain)) +    
	((secure == true) ? "; secure" : "");
}
function DeleteCookie (name) {  
    var exp = new Date();  
    exp.setTime (exp.getTime() - 1);   
    var cval = GetCookie (name);  
    document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}
function getCookieVal(offset) {
    var endstr = document.cookie.indexOf (";", offset);
    if (endstr == -1)
	endstr = document.cookie.length;
    return unescape(document.cookie.substring(offset, endstr));
}


// sinnvolles für strings

// HTML-Steuer-Zeichen '<', '>' und '&', die den HTML-code zerstören würden, wegnehmen
// ausserdem '|', da es als cookie Separator benutzt wird
function elt (str)
{
    str = str.replace(/</g, "?");
    str = str.replace(/>/g, "?");
    str = str.replace(/&/g, "?");
    str = str.replace(/\|/g, "?");

    return str;
}

function trim(inputString) {
    // Removes leading and trailing spaces from the passed string. Also removes
    // consecutive spaces and replaces it with one space. If something besides
    // a string is passed in (null, custom object, etc.) then return the input.
    if (typeof inputString != "string") { return inputString; }
	var retValue = inputString;
	var ch = retValue.substring(0, 1);
	while (ch == " ") { // Check for spaces at the beginning of the string
	    retValue = retValue.substring(1, retValue.length);
	    ch = retValue.substring(0, 1);
	}
	ch = retValue.substring(retValue.length-1, retValue.length);
	while (ch == " ") { // Check for spaces at the end of the string
	    retValue = retValue.substring(0, retValue.length-1);
	    ch = retValue.substring(retValue.length-1, retValue.length);
	}
	while (retValue.indexOf("  ") != -1) { // Note that there are two spaces in the string - look for multiple spaces within the string
	    retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length); // Again, there are two spaces in each of the strings
	}
	return retValue; // Return the trimmed string back to the user
} //

