var reqFields = new Array();
                reqFields['name'] = "Nachname";
                reqFields['plz'] = "Postleitzahl";
                reqFields['email'] = "E-Mail-Adresse";

                var allWrongLetters = "";
                var erlaubt = new Array();
                erlaubt['ziffer'] = "0123456789"
                erlaubt['buchstaben'] = "abcdefghijklmnopqrstuvwxyzüöäß ABCDEFGHIJKLMNOPQRSTUVXWYZÜÖÄ"
                erlaubt['zeichen'] = ",.-()&"
                erlaubt['mail'] = "@_.~-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVXWYZ0123456789";
                erlaubt['preis'] = ",._";
				erlaubt['phone'] = "- ()/"

                var requiredChars = new Array();
                requiredChars['mail'] = "@.";

                var verboten;
                var errMessage = '';
                function checkFeld(feld,how,minimum)
                        {

                                errMessage = '';
                                if(feld.value!="")
                                        {
                                                if(minimum) if(feld.value.length<minimum)
                                                        {
															    errMessage += minimumNotReached.replace('#minimum#',minimum);
																errMessage = errMessage.replace('#field#',parseName(feld.name));
                                                                warn(errMessage,feld);
                                                                }
                                                verboten = checkValue(feld.value,how);
                                                vermisst = checkMissing(feld.value,how);

                                                if(vermisst!=null)
                                                        {
                                                                errMessage += missingChar.replace('#field#',feld.name);
																if (vermisst == ".") vermisst = 'Punkt, z. B. user@hotmail.de';
																errMessage = errMessage.replace('#missing#',vermisst);
                                                                warn(errMessage,feld);
                                                        }


                                                if(verboten !="")
                                                        {
                                                                errMessage += forbiddenChars.replace('#field#',feld.name);
																errMessage = errMessage.replace('#forbidden#',verboten);
                                                                warn(errMessage,feld);
                                                                return false;

                                                        }
                                                else  return true;

                                        }
                        }



                        function checkPDFields(feld,how,minimum)
                        {
								errMessage = '';
                                if (feld.depends != "undefined" && feld.depends != "") 
									{
										
										var dependency = feld.depends.split('/');
										if (daten.elements[dependency[0]].type == "radio") 
											{
												dependent = daten.elements[dependency[0]][dependency[1]];
												dependent.checked = eval(dependent.checked);
												if (dependent.checked==false) return errMessage;
											}
										else if (daten.elements[dependency[0]].type == "select-one") 
											{
												dependent = daten.elements[dependency[0]];
												if (dependent.value!=dependency[1]) return errMessage;
											}
										else 
											{
												dependent = daten.elements[dependency[0]];
												if (dependent.value=="") return errMessage;
											}
									}
								
                                if(feld.value!="" && how != "")
                                        {
												
                                                if(feld.minimum) if(feld.value.length<eval(feld.minimum))
                                                        {
                                                                errMessage += minimumNotReached.replace('#minimum#',feld.minimum);
                                                               	errMessage = errMessage.replace('#field#',parseName(feld.name));
																
                                                             
                                                                }
                                               
                                                vermisst = checkMissing(feld.value,how);
												
                                                if(vermisst!=null)
                                                        {
																errMessage += missingChar.replace('#field#',parseName(feld.name));
																if (vermisst == ".") vermisst = 'Punkt, z. B. user@hotmail.de';
																errMessage = errMessage.replace('#missing#',vermisst);
                                                              
                                                        }

												 verboten = checkValue(feld.value,how);
                                                if(verboten !="")
                                                        {
                                                                errMessage += forbiddenChars.replace('#field#',feld.name);
																errMessage = errMessage.replace('#forbidden#',verboten);
                                                               

                                                        }

                                        }
                                else
                                    {
										if (feld.required && feld.value=="") errMessage += requiredMessage.replace('#field#',parseName(feld.name));
                                    }

                                return errMessage;
                        }
                function complain(what,feld)
                        {
                                if(feld.style)
                                                        {
                                                                         feld.style.color="red";
                                                                        feld.style.fontWeight="bold";
                                                        }
                                                if(document.all) document.all.errorMessage.innerHTML=what;
                                                else if(document.layers)
                                                        {
                                                                document.errorMessage.document.open();
                                                                document.errorMessage.document.write(what);
                                                                document.errorMessage.document.close();
                                                        }
												
                                               else if (document.getElementById)
                                                        {
                                                                var mistake = document.createTextNode(what);
                                                                document.getElementById('errorMessage').appendChild(mistake);
                                                        }


                        }

                function normalize(feld)
                        {
                                if(feld.style)
                                                        {
                                                                feld.style.color="black";
                                                                feld.style.fontWeight="normal";
                                                        }
                        }
                function checkMissing(which,how)
                        {
                                var req = eval(how.split(","));
                                var missing = new Array();
								
                                for (a in req)
                                        {
												
                                                reqString = requiredChars[req[a]];
												
                                                if(reqString)
                                                        {
                                                                for(i=0;i<reqString.length;i++) 
																	{
																		if(which.indexOf(reqString.charAt(i)) == -1) return reqString.charAt(i);
																	}
                                                        }
                                        }
                                        return null;
                        }

                function checkValue(which,how)
                        {
                              	if(!which) return "";
							    var allowed = eval(how.split(","));

                                var verboten = new Array();
                                v=0;
                                              
											    for(i=0;i<which.length;i++)
                                                        {
                                                                falsch=checkLetter(which.charAt(i),allowed);
                                                                if (falsch!=null)
                                                                        {
                                                                                verboten[v] = (which.charAt(i)==" ")?("Leerzeichen"):(which.charAt(i));
                                                                                v++;
                                                                        }
                                                        }
                                        if(verboten.length>0) return verboten;
                                        else return "";
                        }


                function checkLetter(letter,allowed)
                        {               var allWrongLetters = "";
                                        for(aspekt in allowed)
                                                                        {
                                                                                if(erlaubt[allowed[aspekt]].indexOf(letter) != -1) return null;
                                                                        }
                                        if (allWrongLetters.indexOf(letter)==-1)
                                                {
                                                        allWrongLetters += letter;
                                                        return letter;
                                                }
                                        else return null;
                        }


                function checkRequireds(formular)
                        {

                                if (finished == false) return false;
                                var emptyField = "";
                                for(f=0;f<formular.elements.length;f++)
                                        {
                                                if(reqFields[formular.elements[f].name])
                                                        {
                                                                feld = formular.elements[f];
                                                                if(feld.value=="") emptyField += '\t\t' +reqFields[feld.name] + '<br>';
                                                                if(feld.style) feld.style.backgroundColor="red";
                                                        }
                                        }

                                        if(emptyField!="")
                                                {
                                                        warn('_Folgende Felder m&uuml;ssen noch ausgef&uuml;llt werden:' + emptyField);
                                                        return false;
                                                }
                                        else return true;
                        }

                function makeWhite(feld)
                        {
                                if(feld.style && feld.style.backgroundColor=="red") feld.style.backgroundColor ="white";
                        }
						
				function checkMiscFields(feld,how)
                        {
								errMessage = '';
                                if(feld.value!="" && how != "")
                                        {
												
                                                if(feld.minimum) if(feld.value.length<eval(feld.minimum))
                                                        {
                                                                errMessage += minimumNotReached.replace('#minimum#',feld.minimum);
                                                               	errMessage = errMessage.replace('#field#',parseMiscName(feld.name));
																
                                                             
                                                                }
                                               
                                                vermisst = checkMissing(feld.value,how);
												
                                                if(vermisst!=null)
                                                        {
																errMessage += missingChar.replace('#field#',parseMiscName(feld.name));
																if (vermisst == ".") vermisst = 'Punkt, z. B. user@hotmail.de';
																errMessage = errMessage.replace('#missing#',vermisst);
                                                              
                                                        }

												 verboten = checkValue(feld.value,how);
                                                if(verboten !="")
                                                        {
                                                                errMessage += forbiddenChars.replace('#field#',feld.name);
																errMessage = errMessage.replace('#forbidden#',verboten);
                                                               

                                                        }

                                        }
                                else
                                    {
										if (feld.required && feld.value=="") errMessage += requiredMessage.replace('#field#',parseMiscName(feld.name));
                                    }

                                return errMessage;
                        }
						
					
					function parseMiscName(text)
						{
							if (text.indexOf('__')!=-1) text=text.substring(0,text.indexOf('__'));
							if (text.indexOf('_ae')!=-1) while (text.match('_ae')) text=text.replace('_ae','&auml;');
							if (text.indexOf('_oe')!=-1) while (text.match('_oe')) text=text.replace('_oe','&ouml;');
							if (text.indexOf('_ue')!=-1) while (text.match('_ue')) text=text.replace('_ue','&uuml;');
							if (text.indexOf('_AE')!=-1) while (text.match('_AE')) text=text.replace('_AE','&Auml;');
							if (text.indexOf('_OE')!=-1) while (text.match('_OE')) text=text.replace('_OE','&Ouml;');
							if (text.indexOf('_UE')!=-1) while (text.match('_UE')) text=text.replace('_UE','&Uuml;');
							if (text.indexOf('_SZ')!=-1) while (text.match('_SZ')) text=text.replace('_SZ','&szlig;');
					        if (text.indexOf('_')!=-1) while (text.match('_')) text=text.replace('_','&nbsp;');
							
							return text;
					                                                             
						}