// JavaScript Document
//var jQ = jQuery.noConflict();
var agent = navigator.userAgent;
var error_background_color = '#DEB1B1';
var error_border_color  = '#DEB1B1';
var border_color = "#898989";
var background_color = '#FFFFFF';
var rad_val;
	
	
function checkEmailajax( emailStr ){
	var checkTLD=0;
	// TLDs Liste
	var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
	// user@domain format
	var emailPat=/^(.+)@(.+)$/;
	// Liste zeichen ( ) < > @ , ; : \ " . [ ]
	var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	// in Anführungszeichen? (dann sind special charakters erlaubt)
	var quotedUser="(\"[^\"]*\")";
	// domains mit IP addressen
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray=emailStr.match(emailPat);
	if (matchArray==null) {
	return false;
	}
	var user=matchArray[1];
	var domain=matchArray[2];
	// test gültige ASCII characters (0-127).
	for (i=0; i<user.length; i++) {
		if (user.charCodeAt(i)>127) {
			return false;
	  	}
	}
	for (i=0; i<domain.length; i++) {
		if (domain.charCodeAt(i)>127) {
			return false;
	   }
	}
	if (user.match(userPat)==null) {	
		// user nicht OK
		return false;
	}
	// IP addresse OK 
	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null) {
	// es handelt sich um eine IP-Adresse
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				return false;
		   }
		}
		return true;
	}
	// Domain ist ein "symbolic name",  gültig ?
	var atomPat=new RegExp("^" + atom + "$");
	var domArr=domain.split(".");
	var len=domArr.length;
	for (i=0;i<len;i++) {
		if (domArr[i].search(atomPat)==-1) {
			return false;
		}
	}
	/*
	domain name valid, testen bekannte top-level domain
	hostname vorangestellt ?
	*/
	if (checkTLD && domArr[domArr.length-1].length!=2 &&
		domArr[domArr.length-1].search(knownDomsPat)==-1) {
		return false;
	}
	// hostname vorangestellt ?
	if (len<2) {
		return false;
	}
}


//############################
function checkFieldLength( name, fieldlength ){
	var field = jQuery('#txt_'+name).val();
	if ( field.length == fieldlength ){
		return true;
	}else{
		jQuery('#txt_'+name).css('background-color',error_background_color);
		return false;
	}
}	
	

function checkField( name, regEx ){
	if ( checkSpace( jQuery('#txt_'+name).val() ) == true ){
		jQuery('#txt_'+name).css('background-color',error_background_color);
		return true;
	} else{
		if ( checkSyntax( jQuery('#txt_'+name).val(), regEx )== true ){
			jQuery('#txt_'+name).css('background-color',error_background_color);
                if (agent.search("Safari") !=-1){
					jQuery('#txt_'+name).css('background-color',error_background_color);
		        }
			return true;
		}else{
			return false;
		}
	}
}

function checkSpace( fieldstring ){
	var Woerter = fieldstring.split(" ");
//	var checkSpaceError = false;
	for ( var zz = 0; zz< Woerter.length; zz++ ){	
		if ( Woerter[zz]  != '' ){
			return false;
		}
	}
	return true;
}	
function checkSyntax( feld, regEx  ){
	var checkSyntaxError = false;
	var varString;
	var Woerter = feld.split(" ");
	var wortString;
	for ( var zz = 0; zz< Woerter.length; zz++ ){	
		wortString = Woerter[zz];
		
		switch ( regEx ) {
		  case "":
			// Buchstaben und alle Sonderzeichen: Vorname, Nachname, Ort, Strasse
			varString = null;
			break;		
		  case "1":
			// Buchstaben und keine Sonderzeichen: Vorname, Nachname, Ort, Strasse
			varString= wortString.match(/[^a-zA-Z\.]/);	
			break;
		  case "2":
			// Nur Zahlen (z.B.: PLZ, Kundennummer
			if ( Woerter.length == 1 ){
		//alert( Woerter.length );
		//alert('wort='+wortString);
			varString= wortString.match(/[^0-9]/);
			}else{
				varString= 'Fehler';
			}/**/
			break;
		  case "3":
			// Zahlen, Buchstaben, '/', '-' (Hausnummer)
			varString= wortString.match(/[^0-9a-zA-Z\/\-]/);			
			break;
		  case "4":
			 // Zahlen, '/', '-' (Telefon)
			 varString= wortString.match(/[^0-9\/\-]/);
			break;
		  case "5":
			// Zahlen, Buchstaben, '/', '-' (Hausnummer)
			varString= wortString.match(/[^0-9a-zA-Z]/);			
			break;			
		}
		if ( varString != null) {
			checkSyntaxError = true;
		}
	}
	return checkSyntaxError;
}