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) != '&quot;' ) {
		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 ) != '&quot;' ) return false;
		for( i=1; i<j-1; i++ ) {
			if ( ( (username.charAt(i) == '\n') || (username.charAt(i) == '\r') || (username.charAt(i) == '\&quot;') ) && (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;
	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 ;
}

var js11=true;

function checkForm( form ) {
	var warn = "";
	if ( form.email.value == "" ) {
		warn = "Bitte geben Sie ihre E-Mail-Adresse ein!\n";
		return false;
		}
	else {
		if ( js11 ) {
			if ( ! checkEmail( form.email.value, true ) ) {
				alert ("Ihre E-Mail-Adresse ist syntaktisch falsch!\n");
				return false;
				}
			else return true;
			}
		}
	if ( warn != "" ) {
		alert( "Fehler!\n\n" + warn );
		return false;
		}
	return false;
}

function DoCheck(fform){

	if(fform.name1.value == ""){
		alert("Ihren Nachnamen bitte!");
       	fform.name1.focus();
		return false;
		}

	if(fform.surname.value == ""){
		alert("Ihren Vornamen bitte!");
       	fform.surname.focus();
		return false;
		}

	var warn = "";
	if ( fform.email.value == "" ) {
		alert("Ihre Email-Adresse bitte!");
       	fform.email.focus();
		return false;
   		}
   	else {
		if ( js11 ) {
			if ( ! checkEmail( fform.email.value, true ) ) {
				alert("Ihre E-Mail-Adresse ist syntaktisch falsch!\n");
       			fform.email.focus();
				return false;
		        }
			}
		}
	if ( warn != "" ) {
		alert( "Fehler!\n\n" + warn );
		return false;
		}
		
	if(fform.anfragezu_1.checked!=true && fform.anfragezu_2.checked!=true && fform.anfragezu_3.checked!=true && fform.anfragezu_4.checked!=true){
		alert("Bitte geben Sie einen Bereich an!");
       	fform.anfragezu_1.focus();
		return false;
		}
		
	if(fform.anz.value == ""){
		alert("Bitte geben Sie eine Anzahl ein!");
       	fform.anz.focus();
		return false;
		}
		
	return true;
}
function DoCheck1(fform){

	if(fform.name1.value == ""){
		alert("Ihren Nachnamen bitte!");
       	fform.name1.focus();
		return false;
		}

	if(fform.surname.value == ""){
		alert("Ihren Vornamen bitte!");
       	fform.surname.focus();
		return false;
		}
		
	if(fform.street.value == ""){
		alert("Ihre Strasse bitte!");
       	fform.street.focus();
		return false;
		}
		
	if(fform.plz.value == ""){
		alert("Ihre Postleitzahl bitte!");
       	fform.plz.focus();
		return false;
		}
		
	if(fform.town.value == ""){
		alert("Ihre Wohnort bitte!");
       	fform.town.focus();
		return false;
		}

	var warn = "";
	if ( fform.email.value == "" ) {
		alert("Ihre Email-Adresse bitte!");
       	fform.email.focus();
		return false;
   		}
   	else {
		if ( js11 ) {
			if ( ! checkEmail( fform.email.value, true ) ) {
				alert("Ihre E-Mail-Adresse ist syntaktisch falsch!\n");
       			fform.email.focus();
				return false;
		        }
			}
		}
	if ( warn != "" ) {
		alert( "Fehler!\n\n" + warn );
		return false;
		}
		
	if(fform.fuer.value == ""){
		alert("Den Namen des Beschenkten bitte!");
       	fform.town.focus();
		return false;
		}
		
	if(fform.betrag.value == ""){
		alert("Bitte tragen Sie einen Betrag ein.");
       	fform.betrag.focus();
		return false;
		}
		
	return true;
}
function DoCheckx(fform){
	if(fform.name1.value == ""){
		alert("Ihren Nachnamen bitte!");
       	fform.name1.focus();
		return false;
		}

	if(fform.surname.value == ""){
		alert("Ihren Vornamen bitte!");
       	fform.surname.focus();
		return false;
		}

	var warn = "";
	if ( fform.email.value == "" ) {
		alert("Ihre Email-Adresse bitte!");
       	fform.email.focus();
		return false;
   		}
   	else {
		if ( js11 ) {
			if ( ! checkEmail( fform.email.value, true ) ) {
				alert("Ihre E-Mail-Adresse ist syntaktisch falsch!\n");
       			fform.email.focus();
				return false;
		        }
			}
		}
	if ( warn != "" ) {
		alert( "Fehler!\n\n" + warn );
		return false;
		}
		
	if(fform.anz.value == ""){
		alert("Bitte geben Sie eine Anzahl ein!");
       	fform.anz.focus();
		return false;
		}
		
	return true;
}
