netscape=(document.layers) ? 1:0
goodIE=(document.all) ? 1:0
var mussfeld=0;
var uebergabe='';
var eingabe='';
var message='';
var besch_laenge=0;
var besch_laenge_max=0;
var anzahl_tabs=0;
var anzahl_rest=0;
var tab_stellen=6;
var tab_string='';

function testmailausf (formname,feldname,feldbezeichner)
{
//	var telstring		= document.forms[formname].elements['tel'].value;
//	var mailstring		= document.forms[formname].elements[feldname].value;

	mailstring=document.forms[formname].elements[feldname].value;

	var fehlermeldung0	= "Bitte geben Sie keine oder eine korrekte E-Mail-Addresse ein";
	var fehlermeldung1	= unescape('Bitte %FCberpr%FCfen Sie die eingegebene E-Mail-Addresse!');
	var fehlermeldung2	= "";

	
	if ( mailstring == "") {
		mussfeld=false;
//		alert('Bitte füllen Sie das Feld - ' + feldbezeichner + ' - vollständig aus.');
		fehlermeldung = unescape('Bitte f%FCllen Sie das Feld - ') + feldbezeichner + unescape(' - vollst%E4ndig aus.');
		alert(fehlermeldung);
		document.forms[formname].elements[feldname].focus();
		return mussfeld;
	}
	else {
			// Test country oder TLD? 1 für testen, 0 nicht testen
			var checkTLD=1;

			// 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=mailstring.match(emailPat);

			if (matchArray==null) {
				// test Anzahl der @
				alert(fehlermeldung1);
//				alert("Bitte überprüfen Sie die eingegebene E-Mail-Addresse - Es fehlen evtl. die Zeichen '@' oder '.' !)");
				document.forms[formname].elements[feldname].focus();
				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) {
					alert(fehlermeldung1);
//					alert("Bitte überprüfen Sie die eingegebene E-Mail-Addresse - Der Username enthält evtl. ungültige Zeichen !");
					document.forms[formname].elements[feldname].focus();
					return false;
				}
			}

			for (i=0; i<domain.length; i++) {
				if (domain.charCodeAt(i)>127) {
					alert(fehlermeldung1);
//					alert("Bitte überprüfen Sie die eingegebene E-Mail-Addresse - Der Domainname enthält evtl. ungültige Zeichen !");
					document.forms[formname].elements[feldname].focus();
					return false;
				}
			}


			if (user.match(userPat)==null) {
				// user nicht OK
				alert(fehlermeldung1);
//				alert("Bitte überprüfen Sie die eingegebene E-Mail-Addresse - Der Username ist evtl. ungültig !");
				document.forms[formname].elements[feldname].focus();
				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) {
						alert(fehlermeldung1);
//						alert("Bitte überprüfen Sie die eingegebene E-Mail-Addresse - Die Empfänger IP-Adresse is evtl. ungültig !");
						document.forms[formname].elements[feldname].focus();
						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) {
					alert(fehlermeldung1);
//					alert("Bitte überprüfen Sie die eingegebene E-Mail-Addresse - Der Domainname ist evtl. ungültig !");
					document.forms[formname].elements[feldname].focus();
					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) {
				alert(fehlermeldung1);
//				alert("Bitte überprüfen Sie die eingegebene E-Mail-Addresse - Diese muss mit einer bekannten Domain (TLD) oder 2 Zeichen enden !");
				document.forms[formname].elements[feldname].focus();
				return false;
			}

			// hostname vorangestellt ?

			if (len<2) {
				alert(fehlermeldung1);
//				alert("Bitte überprüfen Sie die eingegebene E-Mail-Addresse - Der Hostname fehlt evtl. !");
				document.forms[formname].elements[feldname].focus();
				return false;
			}

			// hier angekommen ist alles OK
	
//			document.forms[formname].elements['emailkz'].value = "0";
			
			return true;	
	}
}

function testfelder(formname,feldname,inputname,sprungj_n,sprungziel)
{
	eingabe=document.forms[formname].elements[inputname].value;

	if(eingabe==""){
		mussfeld=false;
		fehlermeldung = unescape('Bitte f%FCllen Sie das Feld - ') + feldname + unescape(' - vollst%E4ndig aus.')
		alert(fehlermeldung);
//		alert('Bitte füllen Sie das Feld - ' + feldname + ' - vollständig aus.');
		document.forms[formname].elements[inputname].focus();
		if(sprungj_n!=2)
			return mussfeld;
	}
	else{
		messageformat(feldname,eingabe);
		mussfeld=true;
		return mussfeld;
		if(sprungj_n!=0){
			sprung(sprungziel);
		}
	}
}


function testcheckboxen(formname)
{
	var obj_min = 47;
	var obj_ges = document.forms[formname].elements.length;
	var obj_CB_checked = false;
	var mussfeld = true;
		
	for ( var i = 2; i < obj_ges - obj_min + 2 ; i++ ) {
		if ( document.forms[formname].elements[i].checked == true ) {
		    var obj_CB_checked = true;
		}
	}
	
	if ( !obj_CB_checked ) {
		mussfeld = false;

		fehlermeldung = unescape('Sie haben keine Reise gew%E4hlt.')
		alert(fehlermeldung);
		document.forms[formname].elements[2].focus();
		return mussfeld;
	}
	else {
		return mussfeld;
	}
}


function messageformat(feldname,eingabe)
{
	besch_laenge=feldname.length + 1;
	anzahl_tabs = ( besch_laenge_max - besch_laenge ) / tab_stellen;

	if ( ( ( besch_laenge_max - besch_laenge ) % tab_stellen ) > 0 ){
		anzahl_tabs++;
	}

    tab_string= '';
    
	for ( i=1; i<=anzahl_tabs; i++ ){
		tab_string=tab_string + "\t";
	}
	message = message + feldname + ":" + tab_string + eingabe +"\n-------------------------------------------------------------\n";
}


function check_person2(formname)
{
	if(document.forms[formname].elements['anzahl'][0].checked == true){
		document.forms[formname].elements['name2'].readOnly = true;
//		document.forms[formname].elements['name2'].backgroundColor = "ffffff";
	}
	else{
		document.forms[formname].elements['name2'].readOnly = false;
//		document.forms[formname].elements['name2'].backgroundColor = "000000";
	}
}


function check_kontakt(formname)
{
	testfelder(formname,'Vorname','vorname',0,'');
	if(mussfeld)testfelder(formname,'Name','name',0,'');
//	if(mussfeld)testfelder(formname,unescape('Stra%DFe'),'strasse',0,'');
	if(mussfeld)testfelder(formname,'Telefon','tel',0,'');
	if(mussfeld) mussfeld = testmailausf(formname,'Email','E-Mail');
	return mussfeld;
}

function check_buchung(formname)
{
	testfelder(formname,'Name','name1',0,'');
	if(mussfeld)testfelder(formname,'Vorname','vorname1',0,'');
//	if(mussfeld)testfelder(formname,unescape('Stra%DFe'),'strasse1',0,'');
//	if(mussfeld)testfelder(formname,'PLZ','plz1',0,'');
//	if(mussfeld)testfelder(formname,'Ort','ort1',0,'');
//	if(mussfeld)testfelder(formname,unescape('Nationalit%E4t'),'nation1',0,'');
	if(mussfeld) mussfeld = testmailausf(formname,'email1','E-Mail');

	if(document.forms[formname].elements['anzahl'][1].checked == true){
//		if(mussfeld)testfelder(formname,'Name','name2',0,'');
//		if(mussfeld)testfelder(formname,'Vorname','vorname2',0,'');
//		if(mussfeld)testfelder(formname,unescape('Stra%DFe'),'strasse2',0,'');
//		if(mussfeld)testfelder(formname,'PLZ','plz2',0,'');
//		if(mussfeld)testfelder(formname,'Ort','ort2',0,'');
//		if(mussfeld)testfelder(formname,unescape('Nationalit%E4t'),'nation2',0,'');
	}

/*
	if(document.forms[formname].elements['anzahl'][2].checked == true){
		if(mussfeld)testfelder(formname,'Name','name3',0,'');
		if(mussfeld)testfelder(formname,'Vorname','vorname3',0,'');
		if(mussfeld)testfelder(formname,unescape('Stra%DFe'),'strasse3',0,'');
		if(mussfeld)testfelder(formname,'PLZ','plz3',0,'');
		if(mussfeld)testfelder(formname,'Ort','ort3',0,'');
		if(mussfeld)testfelder(formname,unescape('Nationalit%E4t'),'nation3',0,'');
	}

	if(document.forms[formname].elements['anzahl'][3].checked == true){
		if(mussfeld)testfelder(formname,'Name','name4',0,'');
		if(mussfeld)testfelder(formname,'Vorname','vorname4',0,'');
		if(mussfeld)testfelder(formname,unescape('Stra%DFe'),'strasse4',0,'');
		if(mussfeld)testfelder(formname,'PLZ','plz4',0,'');
		if(mussfeld)testfelder(formname,'Ort','ort4',0,'');
		if(mussfeld)testfelder(formname,unescape('Nationalit%E4t'),'nation4',0,'');
	}

	if(document.forms[formname].elements['anzahl'][4].checked == true){
		if(mussfeld)testfelder(formname,'Name','name5',0,'');
		if(mussfeld)testfelder(formname,'Vorname','vorname5',0,'');
		if(mussfeld)testfelder(formname,unescape('Stra%DFe'),'strasse5',0,'');
		if(mussfeld)testfelder(formname,'PLZ','plz5',0,'');
		if(mussfeld)testfelder(formname,'Ort','ort5',0,'');
		if(mussfeld)testfelder(formname,unescape('Nationalit%E4t'),'nation5',0,'');
	}

	if(mussfeld){
		if(document.forms[formname].elements['bedingungen'].checked == true){
			mussfeld = true;
		}
		else{
			alert('Sie müssen die Reisebedingungen akzeptieren bevor Sie die Buchung abschicken können.');
			document.forms[formname].elements['bedingungen'].focus();
			mussfeld = false;
		}
	}
*/
	return mussfeld;
}


function check_buchung_1(formname)
{
	mussfeld = testcheckboxen(formname);
	
	if(mussfeld)testfelder(formname,'Name','name1',0,'');
	if(mussfeld)testfelder(formname,'Vorname','vorname1',0,'');
	if(mussfeld)testfelder(formname,unescape('Stra%DFe'),'strasse1',0,'');
	if(mussfeld)testfelder(formname,'PLZ','plz1',0,'');
	if(mussfeld)testfelder(formname,'Ort','ort1',0,'');
	if(mussfeld)testfelder(formname,unescape('Nationalit%E4t'),'nation1',0,'');
	if(mussfeld)testfelder(formname,unescape('Beruf'),'beruf1',0,'');
	if(mussfeld)testfelder(formname,unescape('Geburtsdatum'),'gebdat1',0,'');
	if(mussfeld)testfelder(formname,unescape('Geburtsort'),'gebort1',0,'');
	if(mussfeld)testfelder(formname,unescape('Pass-Nr.'),'passnr1',0,'');
	if(mussfeld)testfelder(formname,unescape('Ausstellungsort'),'ausstort1',0,'');
	if(mussfeld)testfelder(formname,unescape('ausgestellt am'),'ausstam1',0,'');
	if(mussfeld)testfelder(formname,unescape('g%FCltig bis'),'gueltigbis1',0,'');
	if(mussfeld)testfelder(formname,unescape('Tel.-privat'),'telp1',0,'');
	if(mussfeld)testfelder(formname,unescape('Abflughafen'),'flughafen1',0,'');
	if(mussfeld) mussfeld = testmailausf(formname,'email1','E-Mail');

	if(document.forms[formname].elements['anzahl'][1].checked == true){
		if(mussfeld)testfelder(formname,'Name - Person II','name2',0,'');
		if(mussfeld)testfelder(formname,'Vorname - Person II','vorname2',0,'');
		if(mussfeld)testfelder(formname,unescape('Stra%DFe - Person II'),'strasse2',0,'');
		if(mussfeld)testfelder(formname,'PLZ - Person II','plz2',0,'');
		if(mussfeld)testfelder(formname,'Ort - Person II','ort2',0,'');
		if(mussfeld)testfelder(formname,unescape('Nationalit%E4t - Person II'),'nation2',0,'');
		if(mussfeld)testfelder(formname,unescape('Beruf - Person II'),'beruf2',0,'');
		if(mussfeld)testfelder(formname,unescape('Geburtsdatum - Person II'),'gebdat2',0,'');
		if(mussfeld)testfelder(formname,unescape('Geburtsort - Person II'),'gebort2',0,'');
		if(mussfeld)testfelder(formname,unescape('Pass-Nr. - Person II'),'passnr2',0,'');
		if(mussfeld)testfelder(formname,unescape('Ausstellungsort - Person II'),'ausstort2',0,'');
		if(mussfeld)testfelder(formname,unescape('ausgestellt am - Person II'),'ausstam2',0,'');
		if(mussfeld)testfelder(formname,unescape('g%FCltig bis - Person II'),'gueltigbis2',0,'');
		if(mussfeld)testfelder(formname,unescape('Abflughafen - Person II'),'flughafen2',0,'');
	}

	if(mussfeld){
		if(document.forms[formname].elements['bedingungen'].checked == true){
			mussfeld = true;
		}
		else{
			fehlermeldung = unescape('Sie m%FCssen die Reisebedingungen akzeptieren bevor Sie die Buchung abschicken k%F6nnen.')
			alert(fehlermeldung);
			document.forms[formname].elements['bedingungen'].focus();
			mussfeld = false;
		}
	}

	return mussfeld;
}
