function submitForm() {
        saveForm();
        window.location = "/cgi-bin/shopping.cgi?aktualisieren";
}

function saveForm() {
        var order = new String(getCookie("TFS_BESTELLUNG"));
        var elnam = new String();
        for (var i = 0; i < document.form.elements.length; i++){
                elnam = document.form.elements[i].name;
                if (elnam.indexOf("BT_") != "0"){
                        order = delItem(order, document.form.elements[i]);
                }
        }
        for (var i = 0; i < document.form.elements.length; i++){
                elnam = document.form.elements[i].name;
                if (elnam.indexOf("BT_") != "0"){
                        order = addItem(order, document.form.elements[i]);
                }
        }
        setCookie("TFS_BESTELLUNG", order);
        return true;
}

function saveBook(booknr) {
        var order = new String(getCookie("TFS_BESTELLUNG"));
        var elnam = new String();
				elnam = booknr;
        if (elnam.indexOf("BT_") != "0"){

// Loescht aus der Zeichenkette str vom Schluessel item2delete bis zum naechsten Semikolon
					name2delete = elnam + ":";
					delbgn = order.indexOf(name2delete);
					if (delbgn < 0) {
					} // Schluessel nicht gefunden
					else {
							delend = order.indexOf(";", delbgn) + 1;
							return order.substring (0, delbgn) + order.substring (delend, order.length);
					}
        }

        if (elnam.indexOf("BT_") != "0"){
// Fuegt der Zeichenkette str den Schluessel item2add und den Wert zu
	        var ival = "1";
//        str = delItem(str, item2add.name);
  	      if (ival > 0) { 
						order = order + elnam + ":" + ival + ";"
					}

				}
        setCookie("TFS_BESTELLUNG", order);
        return null;
}

function loadForm() {
// Initialisiert das Formular
        var elnam = new String();
        var order = new String(getCookie("TFS_BESTELLUNG"));
        for (var i = 0; i < document.form.elements.length; i++){
                elnam = document.form.elements[i].name;
                if (elnam.indexOf("BT_") != "0"){
                        document.form.elements[i].value = getQty(order, document.form.elements[i].name);
                }
        }
        return null;
}

function addItem(str, item2add) {
// Fuegt der Zeichenkette str den Schluessel item2add und den Wert zu
        var ival = new String (cleanInput(item2add.value));
//        str = delItem(str, item2add.name);
        if (ival > 0) { str = str + item2add.name + ":" + ival + ";"}
        return str;
}

function delItem(str, item2delete) {
// Loescht aus der Zeichenkette str vom Schluessel item2delete bis zum naechsten Semikolon
        name2delete = item2delete.name + ":";
        delbgn = str.indexOf(name2delete);
        if (delbgn < 0) { return str; } // Schluessel nicht gefunden
        else {
                delend = str.indexOf(";", delbgn) + 1;
                return str.substring (0, delbgn) + str.substring (delend, str.length);
        }
}

function getQty(str, name2evaluate) {
// Ermittelt aus der Zeichenkette str den Wert zwischen Schluessel item2delete und dem naechsten Semikolon
        var objnam = new String(name2evaluate + ":");
        var delbgn = str.indexOf(objnam);
        if (delbgn < 0) { return "0"; }
        else {
                var varbgn = delbgn + objnam.length;
                varend = str.indexOf(";", delbgn);
                return str.substring (varbgn, varend);
        }
}

function cleanInput(input) {
        var str = new String(input);
        if ( str.length < 1 ) { str = "0" }
        else {
                for (var index=0; index < str.length; index++) {
                        if (str.charAt(index) < "0" || str.charAt(index) > "9") {
                                alert ("\nBitte nur Ziffern eingeben!\n(Das sind die Dinger von 0 bis 9 !)");
                                str = "0";
                        }
                }
                str++; // befreit auf einfachste weise
                str--; // von fuehrenden nullziffern
        }
        return str;
}

function setCookie (coknam, value, expires) {
        if (!expires) {
                expires = new Date();
                expires.setTime (expires.getTime() + (1000 * 60 * 60));
        }
        document.cookie = coknam + "=" + escape (value) + "; expires=" + expires.toGMTString() +  "; path=/";
        return null;
}

function getCookie (coknam) {
        var doccok = document.cookie;
        coknam = coknam + "=";
        var coklen = doccok.length;
        var cokbgn = 0;
        while (cokbgn < coklen) {
                var varbgn = cokbgn + coknam.length;
                if (doccok.substring(cokbgn, varbgn) == coknam) {
                var varend = doccok.indexOf (";", varbgn);
                if (varend == -1) varend = coklen;
                return unescape(doccok.substring(varbgn, varend));
        }
        cokbgn = doccok.indexOf(" ", cokbgn) + 1;
        if (cokbgn == 0) break;
        }
        return "";
}

function delCookie (coknam) {
        document.cookie = coknam + "=" + "; expires=Thu, 01-Jan-70 00:00:00 GMT" +  "; path=/";
        return null;
}
