count = 0;
arrElem = new Array();
arrName = new Array();
arrType = new Array();
arrErr  = new Array();
arrMust  = new Array();
sErrMsg = "";

function addElement(element, name, type, must) {
 	count++;
	arrElem[count] = element;
	arrName[count] = name;
	arrType[count] = type;
	arrErr[count]  = 0;
	arrMust[element] = (typeof(must) == 'undefined' ? 1 : must);
}

function checkform(form) {
	for (i=1; i<arrElem.length; i++) {
		arrErr[i]  = 0;
		var elm = arrElem[i];
		
		if (arrType[i]=='umfrage_multicheckbox') {
			o = eval('document.'+form);
		} else {
			if (arrType[i]!='multicheckbox') {
				o = eval('document.'+form+'.'+arrElem[i]);
			} else {
				o = document.getElementsByName(arrElem[i]);
			}
		}

		if (typeof(o)=='object') {
			switch (arrType[i]) {
				case 'text':
					if (arrMust[elm]==1 && o.value=='') {
						arrErr[i] = 1;
					}
					break;
				case 'textarea':
					if (arrMust[elm]==1 && o.value=='') {
						arrErr[i] = 1;
					}
					break;
				case 'email':
					if (arrMust[elm]==1 && o.value=='') {
						arrErr[i] = 1;
					} else {
						// Format prüfen
						e = o.value.indexOf('@');
						if (e==-1) {
							arrErr[i] = 1;
						} else {
							p = o.value.lastIndexOf('.');
							if (p==-1 || p<e) {
								arrErr[i] = 1;
							}
						}
					}
					break;
				case 'zahlungsart':
					var sel = '';
					for (j=0; j<o.length; j++) {
						if (o[j].checked) {
							sel = o[j].value;
						}
					}

					if (arrMust[elm]==1 && sel=='') {
						arrErr[i] = 1;
					} else {
						// Details prüfen
						switch (sel) {
							case 'karte':
								if (document.order.kreditkarte_karte.selectedIndex==0) {arrErr[i]=1;}
								if (document.order.kreditkarte_inhaber.value=='') {arrErr[i]=1;}
								if (document.order.kreditkarte_nummer.value=='') {arrErr[i]=1;}
								if (document.order.kreditkarte_valid.value=='') {arrErr[i]=1;}
								break;
							case 'bank':
								if (document.order.bank_nummer.value=='') {arrErr[i]=1;}
								if (document.order.bank_blz.value=='') {arrErr[i]=1;}
								if (document.order.bank_bankname.value=='') {arrErr[i]=1;}
								if (document.order.bank_inhaber.value=='') {arrErr[i]=1;}
								if (document.order.bank_datum.value=='') {arrErr[i]=1;}
								break;
						}
					}
					break;
				case 'radio':
					var c = 0;

					for (var j=0; j<o.length; j++) {
						if (o[j].checked) {
							c = 1;
							break;
						}
					}

					if (arrMust[elm]==1 && c==0) {
						arrErr[i] = 1;
					}
					break;
				case 'checkbox':
					if (arrMust[elm]==1 && o.checked==false) {
						arrErr[i] = 1;
					}
					break;
				case 'multicheckbox':
					var c = 0;

					for (var j=0; j<o.length; j++) {
						if (o[j].checked) {
							c = 1;
							break;
						}
					}

					if (arrMust[elm]==1 && c==0) {
						arrErr[i] = 1;
					}
					break;
				case 'selectbox':
					if (arrMust[elm]==1 && o.selectedIndex==0) {
						arrErr[i] = 1;
					}
					break;
				// Spezieller Typ fuer Termin Neu
				case 'uhrzeit':
					h1 = eval('document.'+form+'.beginn_stunde');
					m1 = eval('document.'+form+'.beginn_minute');
					h2 = eval('document.'+form+'.ende_stunde');
					m2 = eval('document.'+form+'.ende_minute');

					if (h2.selectedIndex==h1.selectedIndex) {
						if (m2.selectedIndex<=m1.selectedIndex) {
							arrErr[i] = 1;
						}
					}

					if (h2.selectedIndex<h1.selectedIndex) {
						arrErr[i] = 1;
					}
					break;
				case 'umfrage_multicheckbox':
					var c = 0;

					for (var j=0; j<o.elements.length; j++) {
						if (o.elements[j].name.substr(0, arrElem[i].length)==arrElem[i]) {
							if (o.elements[j].checked) {
								c = 1;
								break;
							}
						}
					}

					if (arrMust[elm]==1 && c==0) {
						arrErr[i] = 1;
					}
					break;
			}
		} else {
			alert('no obj '+arrElem[i]);
		}
	}

	s = '';
	for (i=1; i<arrErr.length; i++) {
		if (arrErr[i]==1) {
			s += arrName[i]+"\n";
		}
	}

	if (s!='') {
		alert(sErrMsg+'\n\n'+s);
	} else {
		o = eval('document.'+form);
		o.submit();
	}
}


