function comeIn(field,ist) {
	if(field.value==ist) field.value='';
}

function goAway(field,soll) {
	if(field.value=='') field.value=soll;
}

/* Javascript-Check für Formular2 */
function isDigit( ch )
{
	if ( (ch >= '0') && (ch <= '9') )
		return true;
	else
		return false;
}

function isAlpha( ch )
{
	if ( ((ch >= 'a') && (ch <= 'z')) || ((ch >= 'A') && (ch <= 'Z')) )
		return true;
	else
		return false;
}

function isAlnum( ch )
{
	if ( isAlpha( ch ) || isDigit( ch ) )
		return true;
	else
		return false;
}

function notIn( str1, str2 )
{
	var i = 0;
	var j = str2.length;
	for( ; i<j; i++ )
	{
		var str3 =  str2.charAt(i);
		if( str1.indexOf( str3 ) != -1 )
			return false;
	}
	return true;
}

function checkUsername( username, mustBeQuoted )
{
	var i = 0;
	var j = username.length;
	if ( username.charAt(0) != '"' )
	{
		if ( (username.charAt(0) <  ' ') || (username.charAt(0) >  '~') || !notIn( mustBeQuoted, username.charAt(0) ) )
			return false;
		for( i=1; i<j; i++ )
		{
			if ( ( (username.charAt(i) < ' ') || (username.charAt(i) >  '~') || !notIn ( mustBeQuoted, username.charAt(i) ) ) 	&& ( username.charAt(i-1) != '\\' ) )
				return false;
		}
	}
	else
	{
		if ( username.charAt( j-1 ) != '"' )
			return false;
		for( i=1; i<j-1; i++ )
		{
			if ( ( (username.charAt(i) == '\n') || (username.charAt(i) == '\r') || (username.charAt(i) == '\"') ) && (username.charAt(i-1) != '\\') )
				return false;
		}
	}
	return true;
}

function checkNr ( nr )
{
	var i=0;
	var j=nr.length;
	
	if( j < 1 )
		return false;
	
	for( ; i<j; i++ )
		if( ( nr.charAt(i) < '0' ) || ( nr.charAt(i) > '9' ) )
			return false;
	
	return true;
}

function checkIpnr( ipnr )
{
	var iL=0;
	var iC=0;
	var i=0;
	var sNr = "";
	
	for( ; i< ipnr.length; i++ )
	{
		if ( ipnr.charAt(i) == '.' )
		{
			if ( !iL || (iL> 3) || parseInt( sNr,10 ) > 255 )
				return false;
			iC++;
			iL = 0;
			sNr = "";
			continue;
		}
		if ( isDigit ( ipnr.charAt(i) ) )
		{
			iL++;
			sNr = sNr + ipnr.charAt(i);
			continue;
		}
		return false;
	}
	
	if ( parseInt( sNr,10 ) > 255 )
		return false;
	if ( ( (iC==3) && (iL>=1) && (iL<=3) ) || ( (iC==4) && (!iL) )  )
		return true;
	else
		return false;
}

function checkFqdn( fqdn )
{
	var iL=0;
	var iC=0;
	var i=fqdn.length-1;
	
	if ( (fqdn.charAt(0) == '.') || (fqdn.charAt(0) == '-') )
		return false;
	if ( fqdn.charAt(i) == '.' )
		i=i-1;
	
	for( ; i>=0; i-- )
	{
		if ( fqdn.charAt(i) == '.' )
		{
			if ( iL < 2 && iC < 2 )
				return false;
			if ( fqdn.charAt(i-1) == '-' )
				return false;
			iC++;
			iL = 0;
			continue;
		}
		if ( isAlnum ( fqdn.charAt(i) ) )
		{
			iL++;
			continue;
		}
		if ( fqdn.charAt(i) == '-' )
		{
			if ( !iL )
				return false;
			iL++;
			continue;
		}
		return false;
	}
	
	if ( !iC || ( iL == 1 && iC < 2 ) || ( !iL && iC==1 ) ) {
		return false;
	}
	
	return true;
	
}

function checkHostname( hostname )
{
	if ( hostname.charAt(0) == '[' )
	{
		if ( hostname.charAt(hostname.length-1) != ']' )
			return false;
		var ipnr = hostname.substring( 1, hostname.length -1 );
		return checkIpnr( ipnr );
	}
	
	if ( hostname.charAt(0) == '#' )
	{
		var nr = hostname.substring( 1, hostname.length );
		return checkNr( nr );
	}
	
	return checkFqdn( hostname );
}

function checkEmailAdr( address )
{
	var status = true;
	var username = "";
	var hostname = "";
	
	if ( address.length < 8 )
		return false;
	
	var seperate = address.lastIndexOf("@");
	if ( seperate == -1 )
		return false;
	
	username = address.substring(0, seperate );
	if ( ! checkUsername( username, "<>()[],;:@\" " ) )
		return false;
	
	hostname = address.substring(seperate+1, address.length );
	if ( ! checkHostname( hostname ) )
		return false;
	
	return true;
}

function checkEmail( email, allowFullname )
{
	var existFullname = false;
	var status = true;
	var fullname = "";
	var adress = "";
	if ( email.length < 8 )
		return false;
	var emailBegin = email.indexOf("<");
	var emailEnd = email.lastIndexOf(">");
	
	if ( (emailBegin == -1) && (emailEnd == -1) )
		return checkEmailAdr( email );
	
	if ( ( (emailBegin == -1) && (emailEnd != -1) ) || ( (emailBegin != -1) && (emailEnd == -1) ) )
		return false;
	
	adress = email.substring( emailBegin+1, emailEnd );
	
	if ( ! checkEmailAdr( adress ) )
		return false;
	
	if ( email.length == adress.length + 2 )
		return true;
	else
		if ( ! allowFullname )
			return false;
	
	alert( email );
	if ( emailEnd == email.length - 1 )
	{
		if ( emailBegin == 0 )
			return true;
		if ( email.charAt( emailBegin -1 ) != ' ' )
			return false;
		fullname = email.substring( 0, emailBegin-1 );
		return checkUsername ( fullname, "<>()[],;:@\"" );
	}
	
	return false ;
	
}

function checkPLZ( varPLZ )
{
	var pattern = new RegExp("\^\\d{5}\$");
	
	if( varPLZ.match(pattern) ) {
		return true;
	} else {
		return false;
	}
}

function checkDate( varDate )
{
	var pattern = new RegExp("^[0-3][0-9][.](0|1)[0-9][.](19|20)[0-9]{2}$");

	if( varDate.match(pattern) ) {
		return true;
	} else {
		return false;
	}
}

function checkAge( varDate,alter_min,alter_max )
{
	var date_array = varDate.split('.');
	var day = date_array[0];
	var month = date_array[1] - 1;
	var year = date_array[2];
	var source_date = new Date(year,month,day);
	var actual_date = new Date();
	
	alter = actual_date.getFullYear() - source_date.getFullYear();
	if( actual_date.getMonth() < source_date.getMonth() )
		alter--;
	if( actual_date.getMonth() == source_date.getMonth() && actual_date.getDate() < source_date.getDate() )
		alter--;
	
	if( alter < alter_min ) {
		return "too young";
	} else if( alter > alter_max ) {
		return "too old";
	} else {
		return true;
	}
}



function FormularUeberpruefen()
{
	var Fehlermeldung = "";
	
	if( document.form.datenschutz.checked !== true )
		Fehlermeldung += "Bitte akzeptieren Sie die Datenschutzerklärung!\n";
	
	if( document.form.anrede.value == "Anrede" )
		Fehlermeldung += "Bitte geben Sie Ihre Anrede an!\n";
	
	if( document.form.vorname.value == "" )
		Fehlermeldung += "Bitte geben Sie Ihren Vornamen an!\n";
	
	if( document.form.nachname.value == "" )
		Fehlermeldung += "Bitte geben Sie Ihren Nachnamen an!\n";
	
	if( document.form.strasse.value == "" )
		Fehlermeldung += "Bitte geben Sie Ihre Straße an!\n";
	
	if( !checkPLZ( document.form.plz.value ) )
		Fehlermeldung += "Bitte geben Sie Ihre PLZ an!\n";
	
	if( document.form.ort.value == "" )
		Fehlermeldung += "Bitte geben Sie Ihren Ort an!\n";
	
	if( document.form.telefon.value.length < 5 )
		Fehlermeldung += "Bitte geben Sie Ihre Telefonnummer an!\n";
	
	if ( document.form.email.value == "" ) {
		Fehlermeldung += "Bitte geben Sie ihre E-Mail-Adresse an!\n";
	} else {
		if ( !checkEmail( document.form.email.value, true ) )
			Fehlermeldung += "Bitte geben Sie eine korrekte E-Mail-Adresse an!\n";
	}
	
	if( document.form.beruf.value == "" )
		Fehlermeldung += "Bitte geben Sie Ihre Berufsbezeichnung an!\n";
	
	if( document.form.berufsstatus.value == "1" ) {
		Fehlermeldung += "Bitte geben Sie Ihren Berufsstatus an!\n";
	}
	
	if( !checkDate( document.form.geburtstag.value ) ) {
		Fehlermeldung += "Bitte geben Sie Ihr Geburtsdatum (TT.MM.JJJJ) an!\n";
	} else {
		age = checkAge( document.form.geburtstag.value,18,54 );
		if( age == "too young" ) {
			alert("ACHTUNG: Der Versicherungsnehmer einer privaten Krankenversicherung muss das 18. Lebensjahr vollendet haben. Sind Sie privat krankenversichert und möchten eines Ihrer Kinder absichern, geben Sie bitte Ihre eigenen Daten ein.");
			return false;
		} else if( age == "too old" ) {
			alert("ACHTUNG: Aufgrund des Kalkulationsmodells der privaten Krankenversicherung birgt ein Wechsel für Personen die älter als 54 Jahre sind ein enormes Kostenrisiko. Wir empfehlen Ihnen deshalb den Abschluss einer Zusatzversicherung.\nWeitere Informationen finden Sie dazu auf www.private-zusatzversicherung-infoportal.de");
			return false;
		}
	}
	
	if( Fehlermeldung ) {
		alert( Fehlermeldung );
		return false;
	} else {
		return true;
	}
}



