// javalibshop.js

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

function saveForm() {
	var order = new String(getCookie("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("BESTELLUNG", order);
	return null;
}

function loadForm() {
// Initialisiert das Formular
	var elnam = new String();
	var order = new String(getCookie("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) {
	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) {
	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) {
	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");
				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 * 24 * 31));
	}
	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;
}

function checkTextObj(textobj, minlen) {
	var str = new String(textobj.value);
	// var str = new String(textobj);
	if (textobj.name.indexOf("email") >= 0) {
	   if ((str.indexOf("@") < 1) || (str.lastIndexOf(".") < str.lastIndexOf("@"))) return (-2);
		//	if (str.indexOf("@") < 1) return (-2);
	}
	if (str.length < minlen) return (-1);
	return 0;
}

function checkUserData() {
	err = checkTextObj(document.form.h_name, 5);
	if (err < 0) { alert ("Ihr Name ist zu kurz!"); return (-1);}
	err = checkTextObj(document.form.h_adr1, 5);
	if (err < 0) { alert ("Bitte geben Sie Ihre Adresse ein!"); return (-1);}
	err = checkTextObj(document.form.h_adr2, 5);
	if (err < 0) { alert ("Bitte geben Sie Ihre Postleitzahl und Ihren Ort ein!"); return (-1);}
	err = checkTextObj(document.form.h_email, 6);
	if (err == -1) { alert("Bitte geben Sie Ihre e-Mail-Adresse ein"); return (-1);}
	if (err == -2) { alert("E-Mailadresse in ungueltigem Format."); return (-1);}
	saveUserData();
	window.location = '/cgi-bin/shop.cgi?showOrder';
	return 0;
}

function saveUserData() {
	var usrdat = new String( document.form.h_name.value + ";");
	usrdat += document.form.h_adr1.value + ";";
	usrdat += document.form.h_adr2.value + ";";
	usrdat += document.form.h_email.value + ";";
   usrdat += document.form.h_brief.value + ";";
	setCookie("BESUCHER", usrdat);
	return null;
}

function loadUserData() {
	var usrdat = new String (getCookie("BESUCHER"));
	if (usrdat.length > 4) {
		var varbgn = 0;
		var varend = usrdat.indexOf (";");
		document.form.h_name.value = usrdat.substring(varbgn, varend);
		varbgn = varend + 1;
		varend = usrdat.indexOf (";", varbgn);
		document.form.h_adr1.value = usrdat.substring(varbgn, varend);
		varbgn = varend + 1;
		varend = usrdat.indexOf (";", varbgn);
		document.form.h_adr2.value = usrdat.substring(varbgn, varend);
		varbgn = varend + 1;
		varend = usrdat.indexOf (";", varbgn);
		document.form.h_email.value = usrdat.substring(varbgn, varend);
		varbgn = varend + 1;
		varend = usrdat.indexOf (";", varbgn);
		document.form.h_brief.value = usrdat.substring(varbgn, varend);
	}
	return null;
}

