function instr(startpos,addresse,suchstring)
{
	var ausgabe;
	ausgabe = addresse.indexOf(suchstring, startpos);
	if (ausgabe == -1)
	{
	ausgabe = 0;
	}
	return (ausgabe);
}

function len(addresse)
{
	return (addresse.length);
}

function mid(addresse, starten, ende)
{
	var ausgabe;
	ausgabe = addresse.slice(starten, ende);
	return (ausgabe);
}

function emailtest(addresse)
{

	
	var falsch, ort_att, ort_1_point , ort_2_point, ort_3_point, ort_4_point, ablage, ablage2, coment;
	falsch = false;
	
	//' response.Write("<font face=arial><b>" & addresse & "</b><br>")
	//' Bei Variable Leerzeichen abschneiden
	// KANN MAN NICHT GEBRAUCHEN IN JS: addresse = Trim(addresse)
	
	coment = "Fehler unbekannt!";	
	
	//' mindestadresse: a@bbb.ch
	//' maximaladresse: x@x.x.x.aaaaaa (x = unendlich)
	//' hier kommen jetzt die einzelnen Gültigkeiten
	//' Abfangen: mindestens 1 Zeichen vor @
	
	ort_att = instr(1,addresse,"@");
	
	if(ort_att <= 1)
	{
		falsch = true;
		coment = "Keine Email-Adresse eingegeben oder kein @ eingegeben oder es fehlt ein Zeichen vor dem @.";
	}
	else
	{
		
		//' vor dem @ darf nicht .. sein

		ablage = mid(addresse, 1, ort_att -1);
		ablage2 = instr(1, ablage, "..");
		if(ablage2 > 0)
		{
			falsch = true;
			coment = "Im Text vor dem @ sind zwei Punkte nebeneinander.";
		}
		else
		{
			//'Maximallänge		
			if (len(addresse) > 256)
			{
				falsch = true;
				coment = "Das Passwort ist zu lang. Es darf maximal 256 Zeichen haben.";
			}
			else
			{
				//'Überprüfen, ob keine Leerzeichen mehr in der Variable sind
				if ((instr(1, addresse," ")) > 0)
				{
					falsch = true;
					coment = "Es dürfen keine Leerteichen in der Adresse sein.";
				}
				else
				{
					//'Abfangen: maximal ein @
					ablage = instr(ort_att + 1,addresse,"@");
					if (ablage > 0)
					{ 
						falsch = true;
						coment = "Es sind mehr als ein @ in Ihrer Adresse.";	
					}
					else	
					{
						//' Abfangen: kein Punkt direkt vor @ 
						ablage = mid(addresse , (ort_att - 1) , 1);
						if (ablage == ".")
						{ 
							falsch = true;
							coment = "Es darf kein Punkt vor dem @ stehen.";
						}
						else
						{
							//' Abfangen: mindestens 1 Punkt nach @ und 3 Zeichen vor Punkt und min/max zeichen bei letzter Punkt
							//
							ort_1_point = instr((ort_att + 1),addresse,".");
							if ((ort_1_point == 0) || (ort_1_point - ort_att < 4))
							{ 
								falsch = true;
								coment = "Nach dem @ müssen minimum 3 Zeichen kommen und danach ein Punkt.";
							}
							else
							{
								ort_2_point = instr((ort_1_point + 1),addresse,".");
								if (ort_2_point == 0)
								{
									ablage = mid(addresse, (ort_1_point + 1), len(addresse));
									ablage2 = mid(addresse, (ort_1_point + 1), len(addresse));
									if ((len(ablage) < 2) || (len(ablage2) > 6)) // 0, ist neu!! an beiden orten
									{ 
										falsch = true;
										coment = "Nach dem letzten Punkt müssen mindestenst 2 Zeichen stehen und maximal 6.";
									}
								}
								else
								{
									if ((ort_2_point - ort_1_point) < 4) //elseif
									{
										falsch = true;
										coment = "Nach dem . müssen minimum 3 Zeichen kommen und danach ein Punkt.";
									}
									else
									{
										ort_3_point = instr((ort_2_point + 1),addresse,".");	
									}		
								//}
									if (ort_3_point == 0)
									{
										if ((len(mid(addresse, (ort_2_point + 1))) < 2) || (len(mid(addresse, (ort_2_point + 1))) > 6))
										{
											falsch = true;
											coment = "Nach dem letzten Punkt müssen mindestenst 2 Zeichen stehen und maximal 6.";
										}
									}
									else
									{
										if ((ort_3_point - ort_2_point) < 4)
										{ 
											falsch = true;
											coment = "Nach dem . müssen minimum 3 Zeichen kommen und danach ein Punkt.";
										}
										else
										{	
											ort_4_point = instr((ort_3_point + 1),addresse,".")	
										}
									//}

										if (ort_4_point == 0)
										{ 
											if ((len(mid(addresse, (ort_3_point + 1))) < 2) || (len(mid(addresse, (ort_3_point + 1))) > 6))
											{
												falsch = true;
												coment = "Nach dem letzten Punkt müssen mindestenst 2 Zeichen stehen und maximal 6.";
											}
										}
										else
										{
											coment = "Es können maximal 3 Punkte nach dem @ sein.";
											falsch = true;
										}
									}
								}
							}
						}
					}
				}
			}
		}
	}
	
	if (falsch == true)
	{
		return("false");
			//'response.Write("<br><font face=arial><table width=100% height=180><tr>Ungültig, der Fehler ist: <br><br>" & coment & "<td>")			
	}
	else
	{
		return("true");
			//'response.Write("<br><font face=arial>Gültig!")
	}						
}