// Javascript shopping functions ++
// (c) 2003 Konstantin Gremliza

function abo_check(abo) {
	if ( abo == "kt" ) {
		var ktabop = new Array(4);
		for ( var i = 0; i < 4 ; i++ ) {
			var o = eval("document.best.ktabop" + i );
			if ( o.selectedIndex > 0 ) {
				ktabop[i] = o.options[o.selectedIndex].value;
			} else {
				if ( i == 0 ) {
					alert("Mit welchem Text soll das Abonnement beginnen?");
				} else {
					alert("Bitte wählen Sie eine " + i + ".  Aboprämie");
				}
				o.focus();
				return false;
			}
		}
		for ( var i = 0; i < 2 ; i++ ) {
			if ( ktabop[1] == ktabop[2] || ktabop[1] == ktabop[3] || ktabop[3] == ktabop[2] ) {
				alert("Bitte wählen Sie unterschiedliche Aboprämien aus"); 
				return false;
			}
		}	
	}
	if ( ! zw_check() ) return false;
	if ( ! adr_check() ) return false;
	if ( abo == "khgeschenk"  && ! adr2_check() ) return false;
	if ( ! email_check(true) ) return false;
	return true;
}
function email_check(mandatory) {
	if (mandatory) {
		re = /^[-_.0-9a-zA-Z]+@[-.a-zA-Z0-9]+$/;
	} else {
		re = /^([-_.0-9a-zA-Z]+@[-.a-zA-Z0-9]+)*$/;
	}
	if ( ! f_check_v(document.best.eMail, re, "Bitte geben Sie eine gültige Mail Adresse an.") ) {
		return false;
	}
	return true;
}

function adr_check() {
	if ( ! f_check_v(document.best.Vorname, /^[a-zA-ZöäüÄÖÜß][-.a-zA-ZöäüÄÖÜß ]+$/, "Bitte geben Sie einen gültigen Vornamen an.") ) {
		return false;
	}
	if ( ! f_check_v(document.best.Nachname, /^[a-zA-ZöäüÄÖÜ][-a-zA-ZöäüÄÖÜß ]+$/, "Bitte geben Sie einen gültigen Nachnamen an.") ) {
		return false;
	}
	if ( ! f_check_v(document.best.Anschrift, /^[a-zA-ZöäüÄÖÜ][-./0-9a-zA-ZöäüÄÖÜß ]+$/, "Bitte geben Sie einen gültigen Strassennamen an.") ) {
		return false;
	}
	if ( ! f_check_v(document.best.PLZ, /^\d+$/, "Bitte geben Sie eine gültige PLZ an.") ) {
		return false;
	}
	if ( ! f_check_v(document.best.Wohnort, /^[a-zA-ZöäüÄÖÜß][-0-9a-zA-ZöäüÄÖÜß ]+$/, "Bitte geben Sie einen gültigen Wohnort an.") ) {
		return false;
	}
	if ( ! f_check_v(document.best.Land, /^[a-zA-ZöäüÄÖÜß][-a-zA-ZöäüÄÖÜß ]+$/, "Bitte geben Sie ein gültiges Land an.") ) {
		return false;
	}
	if ( ! f_check_v(document.best.Telefon, /^\+?[-/0-9 ]*$/, "Bitte geben Sie eine gültige Telefonnummer an.") ) {
		return false;
	}
	if ( ! f_check_v(document.best.Fax, /^\+?[0-9 ]*$/, "Bitte geben Sie eine gültige Faxnummer an.") ) {
		return false;
	}
	if ( ! f_check_v(document.best.eMail, /^[-_.0-9a-zA-Z]+@[-.a-zA-Z0-9]+$/, "Bitte geben Sie eine gültige E-Mail Adresse an.") ) {
		return false;
	}
	return true;
}

function adr2_check() {

	if ( ! f_check_v(document.best.VornameDeliverTo, /^[a-zA-ZöäüÄÖÜß][-.a-zA-ZöäüÄÖÜß ]+$/, "Bitte geben Sie einen gültigen Empfänger-Vornamen an.") ) {
		return false;
	}
	if ( ! f_check_v(document.best.NachnameDeliverTo, /^[a-zA-ZöäüÄÖÜ][-a-zA-ZöäüÄÖÜß ]+$/, "Bitte geben Sie einen gültigen Empfänger-Nachnamen an.") ) {
		return false;
	}
	if ( ! f_check_v(document.best.AnschriftDeliverTo, /^[a-zA-ZöäüÄÖÜ][-./0-9a-zA-ZöäüÄÖÜß ]+$/, "Bitte geben Sie einen gültigen Empfänger-Strassennamen an.") ) {
		return false;
	}
	if ( ! f_check_v(document.best.PLZDeliverTo, /^\d+$/, "Bitte geben Sie eine gültige Empfänger-PLZ an.") ) {
		return false;
	}
	if ( ! f_check_v(document.best.WohnortDeliverTo, /^[a-zA-ZöäüÄÖÜß][-0-9a-zA-ZöäüÄÖÜß ]+$/, "Bitte geben Sie einen gültigen Empfänger-Wohnort an.") ) {
		return false;
	}
	if ( ! f_check_v(document.best.LandDeliverTo, /^[a-zA-ZöäüÄÖÜß][-a-zA-ZöäüÄÖÜß ]+$/, "Bitte geben Sie ein gültiges Empfänger-Land an.") ) {
		return false;
	}
	if ( ! f_check_v(document.best.TelefonDeliverTo, /^\+?[-/0-9 ]*$/, "Bitte geben Sie eine gültige Empfänger-Telefonnummer an.") ) {
		return false;
	}
	if ( ! f_check_v(document.best.FaxDeliverTo, /^\+?[0-9 ]*$/, "Bitte geben Sie eine gültige Empfänger-Faxnummer an.") ) {
		return false;
	}
	if ( ! f_check_v(document.best.eMailDeliverTo, /^[-_.0-9a-zA-Z]+@[-.a-zA-Z0-9]+$/, "Bitte geben Sie eine gültige E-Mail Adresse an.") ) {
		return false;
	}
	return true;
}

function zw_check() {
	var a = document.getElementsByName("zw");
	var selected = false;
	for ( var i = 0; i < a.length; i = i + 1) {
		if ( a[i].checked ) {
			selected = true; 
			var selected_value = a[i].value;
			break;
		}
	}
	if ( ! selected ) {
		alert("Bitte wählen Sie eine Zahlungsweise");
		return false;
	}
	if ( selected_value == "Bankeinzug" ) {
		if ( ! f_check_v(document.best.bank, /^[a-zA-ZÄÖÜäüöß][-0-9a-zA-ZöäüÄÖÜß ]+$/, "Bitte geben Sie einen gültigen Namen für das Kreditinstitut an.") ) {
			return false;
		}
		if ( ! f_check_v(document.best.blz, /^\d{8}$/, "Bitte geben Sie eine gültige Bankleitzahl an.") ) {
			return false;
		}
		if ( ! f_check_v(document.best.kto, /^\d+$/, "Bitte geben Sie eine gültige Kontonummer an.") ) {
			return false;
		}
	}
	return true;
}

function setco(e, bg, fg, c) {
	e.style.backgroundColor=bg;
	e.style.cursor = c || "default";
	e.style.color=fg;
}

function setimma(e) {
	var re = /^Stud/;
	if (e.value.match(re)) {
		document.getElementById("imma").style.color = "red";
	} else {
		document.getElementById("imma").style.color = "gainsboro";
	}
} 


function getexpirydate( nodays){
	var UTCstring;
	Today = new Date();
	nomilli = Date.parse(Today);
	Today.setTime(nomilli+nodays*24*60*60*1000);
	UTCstring = Today.toUTCString();
	return UTCstring;
}

function z_format(z) {
	z = Math.round(100 * z) / 100;
	z += "";
	var y = z.indexOf(".");
	switch (y) {
	case -1:	z += ".00";
				break;
	default:	if (z.length -y == 2) z += "0";
				break;
	}
	return z;
}
	

function wkset(line, anzahl, preis, key) {  // key:KH200301  value: 1:Konkret Heft 01 2003:4.8 
	if (anzahl == 0) {
		wkachg(key, anzahl);
		document.cookie = key + "=;EXPIRES=" + getexpirydate(-1);
		window.location.reload();
	} else {
		document.waren.elements[line * 7].value = anzahl;
		document.waren.elements[2 + line * 7].value = z_format(preis * (1 - 0.07));
		document.waren.elements[3 + line * 7].value = z_format(preis);
		document.waren.elements[4 + line * 7].value = z_format(preis * anzahl * (1 - 0.07));
		document.waren.elements[5 + line * 7].value = z_format(preis * anzahl);
		wkachg(key, anzahl);
	}
}

function wkclear() {
	re = /^(KH|KT|LK|CD|AB|JP|TSHIRT|KONKRET_SCHAL)/;
	var c;
	var cookie = document.cookie.split("; ");
	for (var i = 0; i < cookie.length; i++) {
		c = cookie[i].split("=", 2);
		if (c[0].match(re)) {
			document.cookie = c[0] + "=;EXPIRES=" + getexpirydate(-1);
		}
	}
}
	
function wkcalc() {
	var brutto = 0;
	var netto = 0;
	var vk;
	for ( var i = 0; i < document.waren.elements.length; i++) {
		if ( document.waren.elements[i].name == "brutto") {
			brutto += parseFloat(document.waren.elements[i].value);
		}
	}
//	brutto == 0 || brutto > 30 ? vk = 0 : vk = 2.60;
//	brutto += vk;
	document.waren.sum3.value = z_format(brutto);
	document.waren.sum2.value = z_format(brutto * (1 - 0.07));
//	document.wks.sum1.value = z_format(vk);
}

function wkainc(artikel) {
	var c;
	var cookie = document.cookie.split("; ");
	for (var i = 0; i < cookie.length; i++) {
		c = cookie[i].split("=", 2);
		if (c[0] == artikel ) {
			d = c[1].split(":");
			return d[0];
		}
	}
	return -1;
}

function wkachg(artikel, anzahl) {
	var c;
	var cookie = document.cookie.split("; ");
	for (var i = 0; i < cookie.length; i++) {
		c = cookie[i].split("=", 2);
		if (c[0] == artikel ) {
			d = c[1].split(":");
			document.cookie = artikel + "=" + anzahl + ":" + d[1] + ":" + d[2];  
		}
	}
}

function wkbestell(preis, artikel, txt, anzahl) {
	var count = wkainc(artikel);
	switch (count) {
	case -1:	document.cookie = artikel + "=" + anzahl + ":" + txt + ":" + preis;
				window.location = document.URL;
				break;
	default:	anzahl += Number(count);
				for (var i=0; i<document.waren.elements.length; i++) {
					if (document.waren.elements[i].name == artikel) break;
				}
				wkset(i / 7, anzahl, preis, artikel);
				wkcalc();
				document.cookie = artikel + "=" + anzahl + ":" + txt + ":" + preis;	
				break;
	}
}

function optgo(e) {
	var i = e.selectedIndex;
	if(i>0) {
 		this.location.href = e.options[i].value;
	}
}

function f_check_v(e, reg, msg) {
	if(!e) alert(msg);
	if ( reg.test(e.value) ) {
		return true;
	} else {
		alert(msg);
		e.focus();
		return false;
	}
}
