Location: PHPKode > projects > HuMo-gen > admin/include/gedcom_cls.php
<?php
class gedcom_cls {

function voegsamen($tekst1, $tekst2){
	if ($tekst1){ $tekst1=$tekst1.';'.$tekst2; }
	else{ $tekst1=$tekst2; }
	return $tekst1;
}

function voegsamen2($tekst1, $tekst2){
	if ($tekst1){ $tekst=$tekst1.', '.$tekst2; }
	else{ $tekst=$tekst2; }
	return $tekst;
}

//Woonplaatsen en beroepen samenvoegen met een "|" teken. Anders problemen met HTML tekens door de ";" zie: "&euml;"
function voegsamen3($tekst1, $tekst2){
	if ($tekst1){ $tekst1=$tekst1.'|'.$tekst2; }
	else{ $tekst1=$tekst2; }
	return $tekst1;
}

// CONT
function cont($tekst1){
	//$tekst="<br>\n".$tekst1;
	$tekst="\n".$tekst1;
	return $tekst;
}

// CONC
// Bij een aantal programma's is een extra spatie noodzakelijk!
function conc($tekst1){
	global $genprogramma;
	$spatie='';
	if ($genprogramma=='HuMo-gen'){ $spatie=' '; }
	if ($genprogramma=='Haza-Data'){ $spatie=' '; }
	if ($genprogramma=='PRO-GEN'){ $spatie=' '; }
	if ($genprogramma=='Family Tree Legends'){ $spatie=' '; }
	$tekst=$spatie.$tekst1;
	return $tekst;
}

// ************************************************************************************************
// *** Personen verwerken ***
// ************************************************************************************************
function persoon($persoon_array){
	global $nietverwerkt, $genprogramma;
	require ("prefixes.php");
	
	$regel2=explode("\n",$persoon_array);

	//TEST REGEL
	//echo '<p>'; for ($z=1; $z<=count($regel2)-2; $z++){ echo $z.' '.$regel2[$z].'<br>'; }

	//Nieuwe variabelen meteen als $persoon["variabele"] andere nog omzetten.
	unset ($persoon);  //Reset de hele array

	$persoon["pers_patronym"]="";
	$persoon["pers_prefix"]="";
	$persoon["tekst"]="";
	$persoon["pers_own_code"]="";

	$pers_firstname=''; $pers_callname=''; $pers_name_text=''; $pers_name_source='';
	$fams=""; $pers_famc="";
	$pers_indexnr=""; $pers_place_index="";
	$pers_birth_date=""; $pers_birth_time=""; $pers_birth_place=""; $pers_birth_text=""; $pers_birth_source="";
	$pers_bapt_date=""; $pers_bapt_place=""; $pers_bapt_text=""; $pers_bapt_source=""; $religie="";
	$pers_death_date=""; $pers_death_time="";
	$pers_death_place=""; $pers_death_text=""; $pers_death_source="";
	$pers_buried_date=""; $pers_buried_place=""; $pers_buried_text=""; $pers_buried_source=""; $pers_cremation="";
	$pers_death_cause="";
	$sexe="";
	$persoon["pers_text_source"]='';

	$persoon["new_date"]=""; $persoon["new_time"]=""; $persoon["changed_date"]=""; $persoon["changed_time"]="";

	$levend='';
	if ($genprogramma=='Haza-Data'){ $levend='HZ_ovl'; }
	if ($genprogramma=='HuMo-gen'){ $levend='HZ_ovl'; }
	// Aldfaer heeft een ovl vinkje, werkt dus andersom...
	//if ($genprogramma=='ALDFAER') { $levend=1; }

	$event="";

	// Alle adressen in de aparte tabel opslaan
	$nradres2=0;
	// nog geen unset gedaan

	// Voor de tabel vermeldingen
	$nrvermelding=0;

	// **********************************************************************************************
	// *** Persoon ***
	// **********************************************************************************************
	// 0 @I1@ INDI
	// *** 1e regel verwerken ***
	$buffer=$regel2[0];
	$buffer = str_replace("_", "", $buffer); //Aldfaer nummers
	$gedcomnummer=substr($buffer,3,-6);
	if (isset($_POST['verwerkweergave'])){ print "$gedcomnummer "; }

	// *** Level0 opslaan ***
	$level0=substr($buffer,2); $level1=""; $level2="";

	// *** Overige regels verwerken ***
	for ($z=1; $z<=count($regel2)-2; $z++){
		$verwerkt=0;
		//$buffer=addslashes($regel2[$z]);
		$buffer=$regel2[$z];
		$buffer=rtrim($buffer,"\n\r");  //newline strippen

		// *** Strip starting spaces, for Pro-gen ***
		if ($genprogramma=='PRO-GEN'){ $buffer=ltrim($buffer," "); }

		//echo "BUFFER: ".$z."-".$buffer."!".count($regel2)."<br>";

		// *** Level1 opslaan ***
		if (substr($buffer, 0, 1)=='1'){
			$level1=rtrim(substr($buffer,2,5));  //rtrim voor CHR_
			$event='';
			$event2='1';
			$level2="";
		}
		// *** Level2 opslaan ***
		if (substr($buffer, 0, 1)=='2'){ $level2=substr($buffer,2,4); }

		// *** Datum opslaan in database ***
		//1 _NEW
		//2 DATE 04 AUG 2004
		if ($level1=='_NEW'){
			if (substr($buffer, 0, 6)=='1 _NEW'){ $verwerkt=1; }
			if (substr($buffer, 0, 6)=='2 DATE'){
				$verwerkt=1; $persoon["new_date"]=substr($buffer,7); }
			if (substr($buffer, 0, 6)=='3 TIME'){
				$verwerkt=1; $persoon["new_time"]=substr($buffer,7); }
		}

		// *** Wijzigings datum opslaan in database ***
		//1 CHAN
		//2 DATE 04 AUG 2004
		if ($level1=='CHAN'){
			if (substr($buffer, 0, 6)=='1 CHAN'){ $verwerkt=1; }
			if (substr($buffer, 0, 6)=='2 DATE'){ $verwerkt=1; $persoon["changed_date"]=substr($buffer,7); }
			if (substr($buffer, 0, 6)=='3 TIME'){ $verwerkt=1; $persoon["changed_time"]=substr($buffer,7); }
		}

		// *** Gezin ouders ***
		// 1 FAMC @F1@
		if (substr($buffer, 0, 8)=='1 FAMC @'){
			$verwerkt=1;
			$pers_famc=substr($buffer,8,-1);
			if (!$pers_indexnr){$pers_indexnr=$pers_famc;}
		}

		// *** Eigen gezinnen ***
		// 1 FAMS @F5@
		// 1 FAMS @F11@
		if (substr($buffer, 0, 8)=='1 FAMS @'){
			$verwerkt=1;
			$fams= $this->voegsamen($fams, substr($buffer,8,-1));

			// In gedcom bestand (FAMS heeft de voorkeur, dat is het eigen gezin):
			// Aldfaer: eerst FAMC dan FAMS
			// Haza   : eerst FAMS dan FAMC

			// Indexnr wordt 1e eigen gezin:
			$eerste_gezin=explode(";",$fams);
			$pers_indexnr=$eerste_gezin[0];
		}

		// *** Naam ***
		// Haza-Data
		// 1 NAME Voornaam/Achternaam/
		// 2 NOTE Tekst bij naam!
		// 3 CONT 2e regel tekst naam
		// 3 CONT 3e regel tekst naam
		// 1 NAME The/Best/
		// 1 NAME Alias//
		// 1 NAME Alias3//

		//Aldfaer
		//0 @I2@ INDI
		//1 RIN 1046615289
		//1 REFN Hu*ub
		//1 NAME Voornaam/Achternaam/
		//2 NICK Alias3

		//ALLE BK Soorten namen
		//LET OP: Bij al deze namen is een tekst, bron en datum mogelijk!
		//1 NAME Hubertus  /Huub/ Andriessen Mons   OK
		//2 SOUR @S3@                               OK
		//2 _AKAN ook bekend als
		//2 NICK bijnaam
		//2 _SHON verkort voor rapporten
		//2 _ADPN adoptienaam
		//2 _HEBN hebreeuwse naam
		//2 _CENN censusnaam
		//  3 DATE 21 FEB 2007
		//  3 SOUR @S3@
		//  3 NOTE tekst bij Naam censusnaam
		//  4 CONT 2e regel
		//  4 CONT 3e regel
		//2 _MARN huwelijksnaam
		//  3 DATE 21 FEB 2007
		//2 _GERN pers_callname
		//2 _FARN boerderijnaam
		//2 _BIRN geboortenaam
		//2 _INDN indiaanse naam
		//2 _FKAN officiele naam
		//2 _CURN huidige naam
		//2 _SLDN soldatennaam
		//2 _FRKA voorheen bekend als
		//2 _RELN kloosternaam
		//2 _OTHN andere naam
		//1 TITL Sr.
		//*************************************
		if ($level1=='NAME'){
			if (substr($buffer,0,6)=='1 NAME'){
				$verwerkt=1;
				$naam = str_replace("_", " ", $buffer);
				$naam = str_replace("~", " ", $naam);
				$positie = strpos($naam,"/");

				if ($pers_firstname){
					if ($pers_callname){ $pers_callname=$pers_callname.", ".substr($naam,7); } else { $pers_callname=substr($naam,7); }
					$pers_callname=str_replace("/", " ", $pers_callname);
					$pers_callname=rtrim($pers_callname);
				}
				else{
					$pers_firstname=substr($naam,7,$positie-7);
					$pers_lastname=substr($naam,$positie+1,-1);

					//Voorzetsels bij achternamen, DIT DEEL VERTRAAGD EEN BEETJE!!!
					// Bij een accent zit er een accent of spatie in de pers_lastname...
					if (strpos ($pers_lastname, "'" ) OR strpos ($pers_lastname, " " ) ){
						for ($i=0; $i<count($pers_prefix); $i++) {
							$voorzet=addslashes($pers_prefix[$i]);
							$lengte=strlen($voorzet);
							$voorzet_controle=substr($pers_lastname,0,$lengte);
							// *** Spaties anders wordt het pers_prefix niet altijd goed opgeslagen in de database! ***							
							$voorzet_controle=str_replace(" ", "_", $voorzet_controle);
							//if (strtolower($voorzet_controle)==str_replace("_", " ", $voorzet)){
							if (strtolower($voorzet_controle)==$voorzet){
								// *** Voorzetsels met hoofdletter ook zo weergeven ***
								$persoon["pers_prefix"]=$voorzet_controle;
								$pers_lastname=substr($pers_lastname,$lengte);
							}
						}
					}

				}
			}

			// *** Gedcom 5.5 lastname prefix: 2 SPFX Le ***
			if (substr($buffer, 0, 6)=='2 SPFX'){ $verwerkt=1; $persoon["pers_prefix"]=substr($buffer,7).'_'; }

			if (substr($buffer, 0, 6)=='2 NOTE'){ $verwerkt=1; $pers_name_text=substr($buffer,7); }
			if (substr($buffer, 0, 6)=='3 CONT'){ $verwerkt=1; $pers_name_text.=$this->cont(substr($buffer,7)); }
			if (substr($buffer, 0, 6)=='3 CONC'){ $verwerkt=1; $pers_name_text.=$this->conc(substr($buffer,7)); }

			if (substr($buffer,0,6)=='2 SOUR'){ $verwerkt=1; $pers_name_source=$this->voegsamen($pers_name_source,substr($buffer, 7)); }

			$verwerk_vermelding=false;
			//if (substr($buffer, 0, 7)=='1 _AKAN'){ $verwerk_vermelding=true; }
			if (substr($buffer, 0, 7)=='2 _AKAN'){ $verwerk_vermelding=true; }
			//if (substr($buffer, 0, 6)=='1 NICK'){ $verwerk_vermelding=true; }

			// *** BK (als bijnaam) en PG (als pers_callname): 2 NICK naam ***
			if (substr($buffer, 0, 6)=='2 NICK'){
				// *** Bij Pro-gen opslaan als pers_callname. ***
				if ($genprogramma=='PRO-GEN'){
					$verwerkt=1;
					$pers_firstname.=' ('.substr($buffer,7).')';
				}
				else{
					$verwerk_vermelding=true;
				}
			}

			// *** PG: 2 _ALIA ***
			if (substr($buffer, 0, 7)=='2 _ALIA'){
				//$verwerkt=1; $pers_firstname.=' ('.substr($buffer,8).')';
				$verwerk_vermelding=true;
			}

			if (substr($buffer, 0, 7)=='2 _SHON'){ $verwerk_vermelding=true; }
			if (substr($buffer, 0, 7)=='2 _ADPN'){ $verwerk_vermelding=true; }
			//if (substr($buffer, 0, 7)=='1 _HEBN'){ $verwerk_vermelding=true; }
			if (substr($buffer, 0, 7)=='2 _HEBN'){ $verwerk_vermelding=true; }
			if (substr($buffer, 0, 7)=='2 _CENN'){ $verwerk_vermelding=true; }
			if (substr($buffer, 0, 7)=='2 _MARN'){ $verwerk_vermelding=true; }
			if (substr($buffer, 0, 7)=='2 _GERN'){ $verwerk_vermelding=true; }
			if (substr($buffer, 0, 7)=='2 _FARN'){ $verwerk_vermelding=true; }
			if (substr($buffer, 0, 7)=='2 _BIRN'){ $verwerk_vermelding=true; }
			if (substr($buffer, 0, 7)=='2 _INDN'){ $verwerk_vermelding=true; }
			if (substr($buffer, 0, 7)=='2 _FKAN'){ $verwerk_vermelding=true; }
			if (substr($buffer, 0, 7)=='2 _CURN'){ $verwerk_vermelding=true; }
			if (substr($buffer, 0, 7)=='2 _SLDN'){ $verwerk_vermelding=true; }
			if (substr($buffer, 0, 7)=='2 _FRKA'){ $verwerk_vermelding=true; }
			if (substr($buffer, 0, 7)=='2 _RELN'){ $verwerk_vermelding=true; }
			if (substr($buffer, 0, 7)=='2 _OTHN'){ $verwerk_vermelding=true; }

			if ($verwerk_vermelding){
				$verwerkt=1;
				$nrvermelding++;
				$vermelding_persoon_id[$nrvermelding]=$gedcomnummer;
				$vermelding_gezin_id[$nrvermelding]='';
				$vermeldingsoort[$nrvermelding]='naam';
				$vermelding[$nrvermelding]=substr($buffer,7);
				$vermeldinggedcom[$nrvermelding]=trim(substr($buffer, 2, 5));
				$vermeldingdatum[$nrvermelding]='';
				$vermeldingbron[$nrvermelding]='';
				$vermeldingtekst[$nrvermelding]='';
				$vermeldingplaats[$nrvermelding]='';
			}

			//Hier bron en datum van BK gaan verwerken bij namen
			//  3 DATE 21 FEB 2007
			//  3 SOUR @S3@
			//  3 NOTE tekst bij Naam censusnaam
			//  4 CONT 2e regel
			//  4 CONT 3e regel
			if (substr($buffer,0,6)=='3 DATE'){ $verwerkt=1; $vermeldingdatum[$nrvermelding]=substr($buffer,7); }
			if (substr($buffer,0,6)=='3 SOUR'){
				$verwerkt=1;
				$vermeldingbron[$nrvermelding]=$this->voegsamen($vermeldingbron[$nrvermelding],substr($buffer, 7));
			}
			if (substr($buffer,0,6)=='3 NOTE'){ $verwerkt=1; $vermeldingtekst[$nrvermelding]= substr($buffer,7); }
			if (substr($buffer,0,6)=='4 CONT'){
				$verwerkt=1; $vermeldingtekst[$nrvermelding].=$this->cont(substr($buffer,7)); }
			if (substr($buffer,0,6)=='5 CONC'){
				$verwerkt=1; $vermeldingtekst[$nrvermelding].=$this->conc(substr($buffer,7)); }
		}

		if (substr($buffer, 0, 8)=='2 QUAY 0'){ $verwerkt=1; $pers_firstname='(?) '.$pers_firstname; } //(On)zeker persoon HZ

		// *** Pro-gen: 1 _PATR Jans ***
		if (substr($buffer, 0, 7)=='1 _PATR'){ $verwerkt=1; $persoon["pers_patronym"]=substr($buffer,8); }

		// *** Eigen code ***
		if (substr($buffer, 0, 6)=='1 REFN'){ $verwerkt=1; $persoon["pers_own_code"]=substr($buffer,7); }

		// *** TEKSTEN ***
		if ($level1=='NOTE'){
			if (substr($buffer, 0, 6)=='1 NOTE'){
				// *** Voor o.a. BK: meerdere teksten bij persoon mogelijk ***
				//if ($persoon["tekst"]){ $persoon["tekst"].="<br>"; }
				if ($persoon["tekst"]){ $persoon["tekst"].="\n"; }
				$verwerkt=1;
				$persoon["tekst"].=substr($buffer,7);
			}
			if (substr($buffer, 0, 6)=='2 CONT'){ $verwerkt=1; $persoon["tekst"].=$this->cont(substr($buffer,7)); }
			if (substr($buffer, 0, 6)=='2 CONC'){ $verwerkt=1; $persoon["tekst"].=$this->conc(substr($buffer,7)); }

			/* BK: source by text */
			if (substr($buffer,0,6)=='2 SOUR'){
				$verwerkt=1; $persoon["pers_text_source"]=$this->voegsamen($persoon["pers_text_source"],substr($buffer, 7));
			}
		}

		// *** Voor BK (Interesse) ***
		// 1 ANCI
		// 2 NOTE De moeder trouwde met David Hoofien-de koetsier van haar
		// 3 CONT vader- en werd daarom onterft.Deze was van de fam.
		if ($level1=='ANCI'){
			//if (substr($buffer, 0, 6)=='1 ANCI'){ $verwerkt=1; $persoon["tekst"].="<br>".substr($buffer,7); }
			if (substr($buffer, 0, 6)=='1 ANCI'){ $verwerkt=1; $persoon["tekst"].=substr($buffer,7); }
			//if (substr($buffer, 0, 6)=='2 NOTE'){ $verwerkt=1; $persoon["tekst"].="<br>\n".substr($buffer,7); }
			if (substr($buffer, 0, 6)=='2 NOTE'){ $verwerkt=1; $persoon["tekst"].="\n".substr($buffer,7); }
			if (substr($buffer, 0, 6)=='3 CONT'){ $verwerkt=1; $persoon["tekst"].=$this->cont(substr($buffer,7)); }
			if (substr($buffer, 0, 6)=='4 CONC'){ $verwerkt=1; $persoon["tekst"].=$this->conc(substr($buffer,7)); }
		}

		// ******************************************************************************************
		// *** Adres(sen) ***

		// *** Woonplaats ***
		//Haza-Data 7.2
		//1 ADDR Ridderkerk
		//1 ADDR Slikkerveer
		//1 ADDR Alkmaar
		//1 ADDR Heerhugowaard
		if (substr($buffer, 0, 6)=='1 ADDR'){
			$nradres2++;
			$adresplaats[$nradres2]="";
			$adresdatum[$nradres2]="";
			$adrestekst[$nradres2]="";
			$adresbron[$nradres2]="";

			$verwerkt=1;
			$adresplaats[$nradres2]= substr($buffer,7);
			$pers_place_index=substr($buffer,7);
		}

		if ($level1=='RESI'){
			// *** Woonplaats o.a. Haza-data plus ***
			//*** Haza-data plus verwijzing naar adres ***
			//1 ADDR de Rijp     <<<<< deze dus ook nog erbij!!!
			//1 RESI @R34@
			//2 DATE 1651
			//2 ROLE landbouwer op
			if ($genprogramma=='Haza-Data'){
				if (substr($buffer,0,6)=='1 RESI'){
					$verwerkt=1;
					$nrvermelding++;
					$vermelding_persoon_id[$nrvermelding]=$gedcomnummer;
					$vermelding_gezin_id[$nrvermelding]='';
					$vermeldingsoort[$nrvermelding]='adres';
					$vermelding[$nrvermelding]='';
					$vermeldinggedcom[$nrvermelding]=trim(substr($buffer, 2, 5));
					$vermeldingdatum[$nrvermelding]='';
					$vermeldingbron[$nrvermelding]=substr($buffer, 7);
					$vermeldingtekst[$nrvermelding]='';
					$vermeldingplaats[$nrvermelding]='';
				}

				if (substr($buffer, 0, 6)=='2 ROLE'){
					$verwerkt=1; $vermelding[$nrvermelding]=substr($buffer, 7);
				}
				// *** Datum ***
//DATUM NOG NIET VERWERKT!!!
				//if (substr($buffer,0,6)=='2 DATE'){
					// meerdere bronnen en adressen mogelijk????
					//if (nradres>0 then AdresDatum[nradres]:=copy(buf,8,length(buf));
				//}
			}

			// BK
			//1 RESI
			//2 DATE 01 DEC 1931
			//2 PLAC AMSTERDAM-AMSTELDIJK 93/1
			//2 NOTE Tijdens verloving.
			//1 RESI
			//2 DATE 10 JUL 1934
			//2 PLAC AMSTERDAM-AMSTELDIJK 93/1
			//2 NOTE Tijdens ondertrouw.
			if (substr($buffer, 0, 6)=='1 RESI' AND $genprogramma!='Haza-Data'){
				$verwerkt=1;
				$nradres2++;
				$adresplaats[$nradres2]="";
				$adresdatum[$nradres2]="";
				$adrestekst[$nradres2]="";
				$adresbron[$nradres2]="";
			}

			// *** Woonplaats voor Aldfaer ***
			//1 RESI
			//2 ADDR Oosteind 44
			//3 CONT Zwaag
			//3 CITY Zwaag
			if (substr($buffer, 0, 6)=='3 CITY'){
				$verwerkt=1;
				$adresplaats[$nradres2]= substr($buffer,7);
				$pers_place_index=substr($buffer,7);
			}

			// *** Woonplaats voor BK ***
			if (substr($buffer, 0, 6)=='2 PLAC'){
				$verwerkt=1;
				$adresplaats[$nradres2]= substr($buffer,7);
				$pers_place_index=substr($buffer,7);
			}

			// *** Teksten bij woonplaats voor BK, Aldfaer ***
			if (substr($buffer,0,6)=='2 NOTE'){ $verwerkt=1; $adrestekst[$nradres2]= substr($buffer,7); }
			if (substr($buffer,0,6)=='3 CONT'){ $verwerkt=1; $adrestekst[$nradres2].=$this->cont(substr($buffer,7)); }
			if (substr($buffer,0,6)=='3 CONC'){ $verwerkt=1; $adrestekst[$nradres2].=$this->conc(substr($buffer,7)); }

			// *** Straat Pro-gen ***
			//1 RESI
			//2 ADDR Vogeleindestraat 18
			//3 CITY Wellen (wordt al verwerkt)
			//if (substr($buffer, 0, 6)=='2 ADDR'){
				//$verwerkt=1;
				//i.v.m. privacy nog niet aangezet:
				//$plaats= $this->voegsamen3($plaats, substr($buffer,7));
				//$pers_place_index=substr($buffer,7);
			//}

			// *** Datum bij woonplaats voor o.a. BK ***
			if (substr($buffer,0,6)=='2 DATE'){ $verwerkt=1; $adresdatum[$nradres2]=substr($buffer,7); }

			if (substr($buffer,0,6)=='2 SOUR'){
				$verwerkt=1; $adresbron[$nradres2]=$this->voegsamen($adresbron[$nradres2],substr($buffer, 7));
			}

		}

		// *** Geboorte, doop, overleden, begraven ***
		//LET OP: DIT ZIJN BRONNEN BIJ GEB, DOOP, OVL, BEGR, ETC!!!!!!!!!!!!!!
		//PRO-GEN BRONNEN
		//1 BIRT
		//2 DATE 23 JUL 1921
		//2 PLAC Borgloon
		//2 SOUR bidprentje
		//1 DEAT
		//2 DATE 25 SEP 1980
		//2 PLAC Hendrieken
		//2 SOUR Jozef Cuyvers, Bevolking Eksel, deel 1, p.3
		//3 REFN 5	? aktenummer wordt niet gedrukt door HuMo
		//3 TEXT Vrolingen, ongehuwd.
		//4 CONC Annorim, caelebs, filia Lamberti Gilisen et Anna Maria Raets".

		//Aldfaer BRONNEN
		//1 BIRT
		//2 DATE 01 JAN 1970
		//2 PLAC gebplaats pipa
		//2 _ALDFAER_TIME 11:30:00
		//2 SOUR bron aangifte
		//2 NOTE @NB4@
		//1 CHR
		//2 DATE 19 JAN 1970
		//2 PLAC plaats doop pipa
		//2 SOUR bron doop

		//BIJ NIEUWERE VERSIES ALDFAER:
		//2 SOUR @S7177@

		// ***********************************************************************************************
		// *** Geboorte ***
		if ($level1=='BIRT'){
			if (substr($buffer,0,6)=='1 BIRT'){ $verwerkt=1; }

			// *** Datum ***
			if (substr($buffer,0,6)=='2 DATE'){
				$verwerkt=1;
				//FTM programma ondersteund meerdere geboorte datums, nu wordt de 1e opgeslagen:
				if (!$pers_birth_date){ $pers_birth_date=substr($buffer, 7); }
			}

			// *** Aldfaer tijd ***
			// 2 _ALDFAER_TIME 08:00:00
			if (substr($buffer,0,15)=='2 _ALDFAER_TIME'){ $verwerkt=1; $pers_birth_time=substr($buffer, 16); }
			// *** Pro-gen tijd NIET GETEST ***
			// 2 TIME 22.40
			if (substr($buffer,0,6)=='2 TIME'){ $verwerkt=1; $pers_birth_time=substr($buffer, 7); }

			// *** Plaats ***
			if (substr($buffer,0,6)=='2 PLAC'){ $verwerkt=1; $pers_birth_place=substr($buffer, 7); }

			// *** Teksten ***
			if (substr($buffer,0,6)=='2 NOTE'){ $verwerkt=1; $pers_birth_text=substr($buffer, 7); }
			if (substr($buffer,0,6)=='3 CONT'){ $verwerkt=1; $pers_birth_text.=$this->cont(substr($buffer, 7)); }
			if (substr($buffer,0,6)=='3 CONC'){
				$verwerkt=1;
// ===>> vervolg teksten bij bron overal nog uitsplitsen? <<=====
				// *** Tekst bij geboorte, of tekst bij pers_birth_source ***
				if ($level2=='SOUR'){
				$pers_birth_source.=$this->conc(substr($buffer, 7));
				}
				else{
				$pers_birth_text.=$this->conc(substr($buffer, 7));
				}
			}

			// *** Verwerken bronnen o.a. Pro-gen en (oude versies) Aldfaer ***
			if (substr($buffer,0,6)=='2 SOUR'){ $verwerkt=1;
				$pers_birth_source=$this->voegsamen($pers_birth_source,substr($buffer, 7)); }

			// *** Doodgeboren kind ***
			// 1 BIRT
			// 2 TYPE stillborn
			if (substr($buffer,0,16)=='2 TYPE stillborn'){ $verwerkt=1; $pers_lastname='doodgeboren kind'; $pers_firstname=""; }
		}

		// ***********************************************************************************************
		// *** Doop ***
		
		//FTW
		//1 EVEN
		//2 TYPE Doopgetuigen
		//2 PLAC Petrus Verdeurmen, Judoca De Grauw
		//if genprogramma='FTW' then begin
		////if buf='2 TYPE Doopgetuigen' then buf:='1 CHR';
		////if (level1='CHR') and (copy(buf,1,6)='2 PLAC') then buf:='2 WITN'+copy(buf,7,length(buf));
		//  if buf='2 TYPE Doopgetuigen' then buf:='1 XXX';
		//  if (level1='XXX') and (copy(buf,1,6)='2 PLAC') then doopgetuigen:=copy(buf,8,length(buf));
		//end;

		// *** BK & Aldfaer: 1 RELI RK ***
		if (substr($buffer,0,6)=='1 RELI'){
			//$level1='CHR';
			//$buffer='2 RELI '.substr($buffer,7);
			$verwerkt=1; $religie=substr($buffer, 7);
		}

		$buffer = str_replace("1 CHR ", "1 CHR", $buffer);  //Voor o.a. Aldfaer
		if ($level1=='CHR'){
			if (substr($buffer, 0, 5)=='1 CHR'){ $verwerkt=1; }

			// *** Datum ***
			if (substr($buffer,0,6)=='2 DATE'){ $verwerkt=1; $pers_bapt_date=substr($buffer, 7); }
			// *** Plaats ***
			if (substr($buffer,0,6)=='2 PLAC'){ $verwerkt=1; $pers_bapt_place=substr($buffer, 7); }

			// *** Teksten ***
			if (substr($buffer,0,6)=='2 NOTE'){ $verwerkt=1; $pers_bapt_text=substr($buffer, 7); }
			if (substr($buffer,0,6)=='3 CONT'){ $verwerkt=1; $pers_bapt_text.=$this->cont(substr($buffer, 7)); }
			if (substr($buffer,0,6)=='3 CONC'){ $verwerkt=1;  $pers_bapt_text.=$this->conc(substr($buffer, 7)); }

			// *** Verwerken bronnen o.a. Pro-gen en Aldfaer ***
			if (substr($buffer,0,6)=='2 SOUR'){ $verwerkt=1; $pers_bapt_source=$this->voegsamen($pers_bapt_source,substr($buffer, 7));  }
			
			//*** Doopgetuigen ***
			//Pro-gen: 2 _WITN Anna van Wely
			if (substr($buffer,2,5)=='_WITN'){ $buffer = str_replace("2 _WITN", "2 WITN", $buffer); }
			//Haza-data heeft ook i.p.v.
			//2 WITN Doopgetuige1//
			//3 TYPE locum
			//2 WITN Doopgetuige2//
			if (substr($buffer,2,4)=='WITN'){
				$verwerkt=1;
				$buffer = str_replace("/", " ", $buffer);
				$buffer = trim($buffer);
				$nrvermelding++;
				$vermelding_persoon_id[$nrvermelding]=$gedcomnummer;
				$vermelding_gezin_id[$nrvermelding]='';
				$vermeldingsoort[$nrvermelding]='doopgetuige';
				$vermelding[$nrvermelding]=substr($buffer,7);
				$vermeldinggedcom[$nrvermelding]='WITN';
				$vermeldingdatum[$nrvermelding]='';
				$vermeldingbron[$nrvermelding]='';
				$vermeldingtekst[$nrvermelding]='';
				$vermeldingplaats[$nrvermelding]='';
			}
			if (substr($buffer,0,12)=='3 TYPE locum'){
				$verwerkt=1; $vermelding[$nrvermelding].=" i.p.v. ";
			}
			
			// *** Religie ***
			if (substr($buffer,0,6)=='2 RELI'){ $verwerkt=1; $religie=substr($buffer, 7); }
		}

		// ***********************************************************************************************
		// *** Overlijden ***
		if ($level1=='DEAT'){
			if (substr($buffer,0,6)=='1 DEAT'){ $verwerkt=1; }
			
			//Bij Aldfaer DEAT mogelijk zonder data! Er staat dan een vinkje bij ovl.
			if ($genprogramma=='ALDFAER') { $levend='Aldfaer_ovl'; }

			// *** Datum ***
			if (substr($buffer,0,6)=='2 DATE'){ $verwerkt=1; $pers_death_date=substr($buffer, 7); }

			// *** Aldfaer tijd ***
			// 2 _ALDFAER_TIME 08:00:00
			if (substr($buffer,0,15)=='2 _ALDFAER_TIME'){ $verwerkt=1; $pers_death_time=substr($buffer, 16); }
			// *** Pro-gen tijd ***
			// 2 TIME 22.40
			if (substr($buffer,0,6)=='2 TIME'){ $verwerkt=1; $pers_death_time=substr($buffer, 7); }

			// *** Plaats ***
			if (substr($buffer,0,6)=='2 PLAC'){ $verwerkt=1; $pers_death_place=substr($buffer, 7); }

			// *** Teksten ***
			if (substr($buffer,0,6)=='2 NOTE'){ $verwerkt=1; $pers_death_text=substr($buffer, 7); }
			if (substr($buffer,0,6)=='3 CONT'){ $verwerkt=1; $pers_death_text.=$this->cont(substr($buffer, 7)); }
			if (substr($buffer,0,6)=='3 CONC'){ $verwerkt=1; $pers_death_text.=$this->conc(substr($buffer, 7)); }

			// *** Verwerken bronnen o.a. Pro-gen en Aldfaer ***
			if (substr($buffer,0,6)=='2 SOUR'){ $verwerkt=1; $pers_death_source=$this->voegsamen($pers_death_source,substr($buffer, 7));  }
			// *** Overlijdens pers_death_cause ***
			if (substr($buffer,0,6)=='2 CAUS'){ $verwerkt=1; $pers_death_cause=rtrim(substr($buffer, 7)); }

			// *** Overlijdens pers_death_cause Haza-data ***
			if (substr($buffer,0,6)=='2 TYPE'){ $verwerkt=1; $pers_death_cause=rtrim(substr($buffer, 7)); }
			if ($pers_death_cause=='died single'){ $pers_death_cause='died unmarried'; }
		}

		// ***********************************************************************************************
		// *** Begraven ***

		//Pro-gen:
		//1 CREM
		//2 DATE 02 MAY 2003
		//2 PLAC Schagen

		if (substr($buffer, 0, 6)=='1 CREM'){ $level1='BURI'; $buffer='2 TYPE cremation'; }
		if ($level1=='BURI'){
			if (substr($buffer,0,6)=='1 BURI'){ $verwerkt=1; }

			// *** Datum ***
			if (substr($buffer,0,6)=='2 DATE'){ $verwerkt=1; $pers_buried_date=substr($buffer, 7); }
			// *** Plaats ***
			if (substr($buffer,0,6)=='2 PLAC'){ $verwerkt=1; $pers_buried_place=substr($buffer, 7); }

			// *** Teksten ***
			if (substr($buffer,0,6)=='2 NOTE'){ $verwerkt=1; $pers_buried_text=substr($buffer, 7); }
			if (substr($buffer,0,6)=='3 CONT'){ $verwerkt=1; $pers_buried_text.=$this->cont(substr($buffer, 7)); }
			if (substr($buffer,0,6)=='3 CONC'){ $verwerkt=1; $pers_buried_text.=$this->conc(substr($buffer, 7)); }

			// *** Verwerken bronnen o.a. Pro-gen en Aldfaer ***
			if (substr($buffer,0,6)=='2 SOUR'){
				$verwerkt=1; $pers_buried_source=$this->voegsamen($pers_buried_source,substr($buffer, 7));
			}

			// *** Crematie ***
			if (substr($buffer,0,16)=='2 TYPE cremation'){ $verwerkt=1; $pers_cremation='1'; }
		}

		// ***********************************************************************************************
		// *** Aldfaer getuigen ***
		// Aldfaer aangifte geboorte (staat bij de persoon die de aangifte deed)
		//  1 _SORTCHILD
		//  1 ASSO @I1281@
		//  2 TYPE INDI
		//  2 RELA birth registration

		// Aldfaer aangifte doop (staat bij de persoon die de aangifte deed)
		//  1 ASSO @I1281@
		//  2 TYPE INDI
		//  2 RELA baptize

		//  Aldfaer
		//  1 ASSO @I1281@
		//  2 TYPE INDI
		//  2 RELA death registration

		//  Aldfaer
		//  1 ASSO @I1281@
		//  2 TYPE INDI
		//  2 RELA burial

		// Aldfaer Getuigen burgerlijk huwelijk:
		//  1 ASSO @F2612@
		//  2 TYPE FAM
		//  2 RELA civil
		//  3 NOTE INDI I1281

		// Aldfaer getuigen kerkelijk huwelijk:
		//  1 ASSO @F2612@
		//  2 TYPE FAM
		//  2 RELA religious
		//  3 NOTE INDI I1281

		if ($level1=='ASSO'){
			if (substr($buffer, 0, 6)=='1 ASSO'){
				$verwerkt=1;
				$nrvermelding++;
				$vermelding_persoon_id[$nrvermelding]=substr($buffer,8,-1);
				$vermelding_gezin_id[$nrvermelding]='';
				$vermeldingsoort[$nrvermelding]='getuige';  //geboorteaangifte - doopgetuige - trgetuige - kerktrgetuige
				//$vermelding[$nrvermelding]=$gedcomnummer;
				$vermelding[$nrvermelding]='@'.$gedcomnummer.'@';
				$vermeldinggedcom[$nrvermelding]='ASSO';
				$vermeldingdatum[$nrvermelding]='';
				$vermeldingbron[$nrvermelding]='';
				$vermeldingtekst[$nrvermelding]='';
				$vermeldingplaats[$nrvermelding]='';
			}
			if ($buffer=='2 TYPE INDI'){
				$verwerkt=1;
			}
			if ($buffer=='2 TYPE FAM'){
				$verwerkt=1;
				$vermelding_gezin_id[$nrvermelding]=$vermelding_persoon_id[$nrvermelding];
				$vermelding_persoon_id[$nrvermelding]='';
			}
			if ($buffer=='2 RELA birth registration'){
				$verwerkt=1; $vermeldingsoort[$nrvermelding]='geboorteaangifte';
			}
			if ($buffer=='2 RELA baptize'){ $verwerkt=1; $vermeldingsoort[$nrvermelding]='doopgetuige'; }
			if ($buffer=='2 RELA death registration'){
				$verwerkt=1; $vermeldingsoort[$nrvermelding]='overlijdensaangifte';
			}
			if ($buffer=='2 RELA burial'){ $verwerkt=1; $vermeldingsoort[$nrvermelding]='begrafenisgetuige'; }
			if ($buffer=='2 RELA civil'){ $verwerkt=1; $vermeldingsoort[$nrvermelding]='trgetuige'; }
			if ($buffer=='2 RELA religious'){ $verwerkt=1; $vermeldingsoort[$nrvermelding]='kerktrgetuige'; }
		}


		// **********************************************************************************************
		// *** Beroep(en) ***
		if ($level1=='OCCU'){
			if (substr($buffer, 0, 6)=='1 OCCU'){
				$verwerkt=1;
				$nrvermelding++;
				$vermelding_persoon_id[$nrvermelding]=$gedcomnummer;
				$vermelding_gezin_id[$nrvermelding]='';
				$vermeldingsoort[$nrvermelding]='beroep';
				$vermelding[$nrvermelding]=substr($buffer,7);
				$vermeldinggedcom[$nrvermelding]='OCCU';
				$vermeldingdatum[$nrvermelding]='';
				$vermeldingbron[$nrvermelding]='';
				$vermeldingtekst[$nrvermelding]='';
				$vermeldingplaats[$nrvermelding]='';
			}
			
			// *** Beroep(en), Haza-21 heeft lege OCCU vermeldingen... Gek hè? ***
			// 1 OCCU lerares
			if (substr($buffer, 0, 6)=='1 OCCU' AND substr($buffer,7)){
				$verwerkt=1; $vermelding[$nrvermelding]=substr($buffer,7); }
			// *** Lang beroep ***
			if (substr($buffer, 0, 6)=='2 CONT'){
				$verwerkt=1; $vermelding[$nrvermelding].=$this->cont(substr($buffer,7)); }
			if (substr($buffer, 0, 6)=='2 CONC'){ $verwerkt=1; $vermelding[$nrvermelding].=$this->conc(substr($buffer,7)); }

			// *** Extra tekst bij beroep ***
			if (substr($buffer,0,6)=='2 NOTE'){
				$verwerkt=1; $vermeldingtekst[$nrvermelding]=substr($buffer, 7); } // BK
			if (substr($buffer,0,6)=='3 CONT'){
				$verwerkt=1; $vermeldingtekst[$nrvermelding].=$this->cont(substr($buffer, 7)); } // BK
			if (substr($buffer,0,6)=='3 CONC'){
				$verwerkt=1; $vermeldingtekst[$nrvermelding].=$this->conc(substr($buffer, 7)); } // BK
			if (substr($buffer,0,6)=='2 DATE'){
				$verwerkt=1; $vermeldingdatum[$nrvermelding]=substr($buffer, 7); } // BK
			if (substr($buffer,0,6)=='2 SOUR'){
				$verwerkt=1;
				$vermeldingbron[$nrvermelding]=$this->voegsamen($vermeldingbron[$nrvermelding],substr($buffer, 7));
			} // BK
		}

		// *** AFBEELDINGEN ********************************

		// *** Afbeelding Haza-21 ***
		// 1 OBJE H:\haza21v3\Scannen0001.jpg
		// of:
		// 1 OBJE H:\haza21v3\plaatjes\IM000247.jpg
		// 2 QUAY 3
		// 2 NOTE Ome Rein op verjaardagvisite bij zijn broer Dirk
		// 3 CONC en nog meer tekst...

		// *** Aldfaer foto's getest door: Jeroen Beemster ***
		// *** Afbeeldingen Aldfaer EN gedcom 5.5 ***
		// 1 OBJE
		// 2 FORM jpg
		// 2 FILE C:\Documents and Settings\frans schwartz\Mijn documenten\lammert en tetje.jpg
		// 2 TITL lammert en tetje

		// 2 FILE huub&lin.jpg
		// 2 TITL Afbeelding titel
		if ($level1=='OBJE'){
			if (substr($buffer, 0, 6)=='1 OBJE'){
				$verwerkt=1;

				$nrvermelding++;
				$vermelding_persoon_id[$nrvermelding]=$gedcomnummer;
				$vermelding_gezin_id[$nrvermelding]='';
				$vermeldingsoort[$nrvermelding]='afbeelding';
				$vermelding[$nrvermelding]='';
				$vermeldinggedcom[$nrvermelding]=trim(substr($buffer, 2, 5));
				$vermeldingdatum[$nrvermelding]='';
				$vermeldingbron[$nrvermelding]='';
				$vermeldingtekst[$nrvermelding]='';
				$vermeldingplaats[$nrvermelding]='';

				// *** Foto bij Haza-data ***
				if (substr($buffer,7)){
					$foto=substr($buffer,7);
					// *** Basename lijkt in bij bepaalde providers niet te werken? ***
					//$foto=basename ($foto);
					// *** Pad alleen aanpassen als er een \ teken in het pad zit ***
					if (strpos($foto,"\\")>0){ $foto=substr(strrchr($foto, "\\"), 1 ); }
					$verwerkt=1;
					$vermelding[$nrvermelding]=$foto;
				}
			}

			if (substr($buffer, 0, 6)=='2 FILE'){
				$verwerkt=1;
				$foto=substr($buffer,7);

				// *** Soms staat in Aldfaer: 2 FILE \bestand.jpg ***
				// *** Basename lijkt bij bepaalde providers niet te werken? ***
				//$foto=basename ($foto);

				// *** Pad alleen aanpassen als er een \ teken in het pad zit ***
				// *** Remove first \ character ***
				//if (substr($foto,0,1)=="\\"){ $foto=substr($foto,1); }
				// *** foto's met \b (html escapee code) werden ook niet goed verwerkt. De eerste \ wordt gezien als html escape teken ***
				if (substr($foto,0,1)=="\\"){ $foto=substr($foto,2); }

				// *** Remove first part of path ***
				//if (strpos($foto,"\\")>0){ $foto=substr(strrchr($foto, "\\"), 1 ); }
				//if (strpos($foto,"\\")>=0){ $foto=substr(strrchr($foto, "\\"), 1 ); }
				if (strpos($foto,"\\")>0){ $foto=substr(strrchr($foto, "\\"), 1 ); }

				$vermelding[$nrvermelding]=$foto;
			}
			if (substr($buffer, 0, 6)=='2 TITL'){
				$verwerkt=1;
				$vermeldingtekst[$nrvermelding]=substr($buffer,7);
			}

			// *** Tekst bij foto Haza-21 ***
			if (substr($buffer, 0, 6)=='2 NOTE'){
				$verwerkt=1;
				$vermeldingtekst[$nrvermelding]=$this->voegsamen3($vermeldingtekst[$nrvermelding], substr($buffer,7));
			}
			if (substr($buffer, 0, 6)=='3 CONT'){
				$verwerkt=1;
				$vermeldingtekst[$nrvermelding].=$this->cont(substr($buffer, 7)) ;
			}
			if (substr($buffer, 0, 6)=='3 CONC'){
				$verwerkt=1;
				$vermeldingtekst[$nrvermelding].=$this->conc(substr($buffer, 7)) ;
			}

			if (substr($buffer,0,6)=='2 DATE'){
				$verwerkt=1;
				$vermeldingdatum[$nrvermelding]=substr($buffer, 7); }
			
			if (substr($buffer,0,6)=='2 SOUR'){
				$verwerkt=1;
				$vermeldingbron[$nrvermelding]=substr($buffer, 7); }
		}

		// *** Afbeeldingen Haza-data ***
		//1 PHOTO @#Aplaatjes\beert&id.jpg jpg@
		if ($level1=='PHOTO'){
			if (substr($buffer, 0, 7)=='1 PHOTO'){
				$verwerkt=1;
				$foto=substr($buffer,11,-6);
				$foto=substr(strrchr($foto, "\\"), 1 );
				$verwerkt=1;
				$nrvermelding++;
				$vermelding_persoon_id[$nrvermelding]=$gedcomnummer;
				$vermelding_gezin_id[$nrvermelding]='';
				$vermeldingsoort[$nrvermelding]='afbeelding';
				$vermelding[$nrvermelding]=$foto;
				$vermeldinggedcom[$nrvermelding]=trim(substr($buffer, 2, 5));
				$vermeldingdatum[$nrvermelding]='';
				$vermeldingbron[$nrvermelding]='';
				$vermeldingtekst[$nrvermelding]='';
				$vermeldingplaats[$nrvermelding]='';
			}
			if (substr($buffer, 0, 6)=='2 DSCR' OR substr($buffer, 0, 6)=='2 NAME'){
				$verwerkt=1;
				$vermeldingtekst[$nrvermelding]=substr($buffer, 7);
			}
			if (substr($buffer,0,6)=='2 DATE'){ $verwerkt=1; $vermeldingdatum[$nrvermelding]=substr($buffer, 7); }
		}

		// *** Sexe. F of M ***
		if (substr($buffer,0,5)=='1 SEX'){ $verwerkt=1; $sexe=substr($buffer, 6); }

		// **********************************************
		// *** Gebeurtenissen en vermeldingen opslaan ***
		// **********************************************

		// *** Aldfaer ongehuwd ***
		if ($buffer=='1 _NOPARTNER'){ $buffer='1 _NMAR'; $level1='_NMAR'; }

		if (substr($buffer, 0, 6)=='1 ADOP'){ $verwerkt=1; $event='1';} //geadopteerd
		if (substr($buffer, 0, 7)=='1 _ADPF'){ $verwerkt=1; $event='1';} //Adoptie door vader
		if (substr($buffer, 0, 7)=='1 _ADPM'){ $verwerkt=1; $event='1';} //Adoptie door moeder
		if (substr($buffer, 0, 6)=='1 BAPL'){ $verwerkt=1; $event='1';} //LDS gedoopt
		if (substr($buffer, 0, 6)=='1 BARM'){ $verwerkt=1; $event="1";}
		if (substr($buffer, 0, 6)=='1 BASM'){ $verwerkt=1; $event="1";}
		if (substr($buffer, 0, 6)=='1 BLES'){ $verwerkt=1; $event="1";}
		if (substr($buffer, 0, 6)=='1 CENS'){ $verwerkt=1; $event="1";}
		if (substr($buffer, 0, 6)=='1 CHRA'){ $verwerkt=1; $event="1";}
		if (substr($buffer, 0, 6)=='1 CONF'){ $verwerkt=1; $event="1";}
		if (substr($buffer, 0, 6)=='1 CONL'){ $verwerkt=1; $event="1";}
		if (substr($buffer, 0, 6)=='1 EMIG'){ $verwerkt=1; $event="1";}
		if (substr($buffer, 0, 6)=='1 ENDL'){ $verwerkt=1; $event="1";}
		if (substr($buffer, 0, 6)=='1 FCOM'){ $verwerkt=1; $event="1";}
		if (substr($buffer, 0, 7)=='1 _FNRL'){ $verwerkt=1; $event="1";}
		if (substr($buffer, 0, 6)=='1 GRAD'){ $verwerkt=1; $event="1";}
		if (substr($buffer, 0, 6)=='1 IMMI'){ $verwerkt=1; $event="1";}
		if (substr($buffer, 0, 6)=='1 NATU'){ $verwerkt=1; $event="1";}
		if (substr($buffer, 0, 6)=='1 ORDN'){ $verwerkt=1; $event="1";}
		if (substr($buffer, 0, 6)=='1 PROB'){ $verwerkt=1; $event="1";}
		if (substr($buffer, 0, 6)=='1 RETI'){ $verwerkt=1; $event="1";}
		if (substr($buffer, 0, 6)=='1 SLGC'){ $verwerkt=1; $event="1";}
		if (substr($buffer, 0, 6)=='1 WILL'){ $verwerkt=1; $event='1';} //testament
		if (substr($buffer, 0, 7)=='1 _YART'){ $verwerkt=1; $event="1";}
		if (substr($buffer, 0, 7)=='1 _INTE'){ $verwerkt=1; $event="1";}
		if (substr($buffer, 0, 7)=='1 _BRTM'){ $verwerkt=1; $event="1";}
		if (substr($buffer, 0, 7)=='1 _NLIV'){ $verwerkt=1; $event="1";}
		if (substr($buffer, 0, 7)=='1 _NMAR'){ $verwerkt=1; $event="1";}
		if (substr($buffer, 0, 6)=='1 NCHI'){ $verwerkt=1; $event="1";}
		// BK
		//1 _MILT militaire dienst  Location: Amsterdam
		//2 DATE 3 APR 1996
		//2 NOTE Goedgekeurd.
		//3 CONT 2e regel gebeurtenis bij persoon.
		//3 CONT 3e regel.
		if (substr($buffer, 0, 7)=='1 _MILT'){
			$buffer = str_replace("_MILT", "MILI", $buffer); //Aldfaer nummers
			$level1='MILI';
		}
		if (substr($buffer, 0, 6)=='1 MILI'){
			if (substr($buffer, 7)){ $vermeldingtijdelijk=substr($buffer, 7); }
			$verwerkt=1; $event='1';
		}
		//RELI Religie
		if (substr($buffer, 0, 6)=='1 EDUC'){
			if (substr($buffer, 7)){ $vermeldingtijdelijk=substr($buffer, 7); }
			$verwerkt=1; $event='1';}
		if (substr($buffer, 0, 6)=='1 NATI'){
			if (substr($buffer, 7)){ $vermeldingtijdelijk=substr($buffer, 7); }
			$verwerkt=1; $event='1';}
		if (substr($buffer, 0, 6)=='1 CAST'){
			if (substr($buffer, 7)){ $vermeldingtijdelijk=substr($buffer, 7); }
			$verwerkt=1; $event='1';}
		//REFN Ref. nr.  (eigen code)
		if (substr($buffer, 0, 5)=='1 AFN'){
			if (substr($buffer, 6)){ $vermeldingtijdelijk=substr($buffer, 6); }
			$verwerkt=1; $event='1';}
		if (substr($buffer, 0, 5)=='1 SSN'){
			if (substr($buffer, 6)){ $vermeldingtijdelijk=substr($buffer, 6); }
			$verwerkt=1; $event='1';}
		if (substr($buffer, 0, 7)=='1 _PRMN'){
			if (substr($buffer, 8)){ $vermeldingtijdelijk=substr($buffer, 8); }
			$verwerkt=1; $event='1';}
		if (substr($buffer, 0, 6)=='1 IDNO'){
			if (substr($buffer, 7)){ $vermeldingtijdelijk=substr($buffer, 7); }
			$verwerkt=1; $event='1';}
		if (substr($buffer, 0, 7)=='1 _HEIG'){
			if (substr($buffer, 8)){ $vermeldingtijdelijk=substr($buffer, 8); }
			$verwerkt=1; $event='1';}
		if (substr($buffer, 0, 7)=='1 _WEIG'){
			if (substr($buffer, 8)){ $vermeldingtijdelijk=substr($buffer, 8); }
			$verwerkt=1; $event='1';}
		if (substr($buffer, 0, 7)=='1 _EYEC'){
			if (substr($buffer, 8)){ $vermeldingtijdelijk=substr($buffer, 8); }
			$verwerkt=1; $event='1';}
		if (substr($buffer, 0, 7)=='1 _HAIR'){
			if (substr($buffer, 8)){ $vermeldingtijdelijk=substr($buffer, 8); }
			$verwerkt=1; $event='1';}
		if (substr($buffer, 0, 6)=='1 DSCR'){
			if (substr($buffer, 7)){ $vermeldingtijdelijk=substr($buffer, 7); }
			$verwerkt=1; $event='1';}
		if (substr($buffer, 0, 7)=='1 _MEDC'){
			if (substr($buffer, 8)){ $vermeldingtijdelijk=substr($buffer, 8); }
			$verwerkt=1; $event='1';}
		if (substr($buffer, 0, 6)=='1 NCHI'){
			if (substr($buffer, 7)){ $vermeldingtijdelijk=substr($buffer, 7); }
			$verwerkt=1; $event='1';}
		if (substr($buffer, 0, 6)=='1 ANCI'){
			if (substr($buffer, 7)){ $vermeldingtijdelijk=substr($buffer, 7); }
			$verwerkt=1; $event='1';}
		if (substr($buffer, 0, 6)=='1 DESI'){
			if (substr($buffer, 7)){ $vermeldingtijdelijk=substr($buffer, 7); }
			$verwerkt=1; $event='1';}
		if (substr($buffer, 0, 6)=='1 PROP'){
			if (substr($buffer, 7)){ $vermeldingtijdelijk=substr($buffer, 7); }
			$verwerkt=1; $event='1';}

		// *** Overige gebeurtenissen (geen BK?) ***
		if (substr($buffer, 0, 6)=='1 ARVL'){ $verwerkt=1; $event='1';} //aangekomen
		if (substr($buffer, 0, 6)=='1 BAPM'){ $verwerkt=1; $event='1';} //gedoopt als kind
		if (substr($buffer, 0, 6)=='1 DIVF'){ $verwerkt=1; $event="1";}
		if (substr($buffer, 0, 6)=='1 DPRT'){ $verwerkt=1; $event="1";}

		if (substr($buffer, 0, 6)=='1 LEGI'){ $verwerkt=1; $event="1";}
		if (substr($buffer, 0, 6)=='1 SLGL'){ $verwerkt=1; $event="1";}
		if (substr($buffer, 0, 6)=='1 TXPY'){ $verwerkt=1; $event="1";}

		// *** Aldfaer, title by name: 1 TITL Ir. ***
		if (substr($buffer, 0, 6)=='1 TITL'){
			if (substr($buffer, 7)){ $vermeldingtijdelijk=substr($buffer, 7); }
			$verwerkt=1; $event='1';
		}

		// *** Title in gedcom 5.5: 2 NPFX Prof. ***
		if (substr($buffer, 0, 6)=='2 NPFX'){
			$verwerkt=1;
			$nrvermelding++;
			$vermelding_persoon_id[$nrvermelding]=$gedcomnummer;
			$vermelding_gezin_id[$nrvermelding]='';
			$vermeldingsoort[$nrvermelding]='NPFX';
			$vermelding[$nrvermelding]=substr($buffer, 7);;
			$vermeldinggedcom[$nrvermelding]=$level1;
			$vermeldingdatum[$nrvermelding]='';
			$vermeldingbron[$nrvermelding]='';
			$vermeldingtekst[$nrvermelding]='';
			$vermeldingplaats[$nrvermelding]='';
		}

		// *** gedcom 5.5 name addition: 2 NSFX Jr. ***
		if (substr($buffer, 0, 6)=='2 NSFX'){
			$verwerkt=1;
			$nrvermelding++;
			$vermelding_persoon_id[$nrvermelding]=$gedcomnummer;
			$vermelding_gezin_id[$nrvermelding]='';
			$vermeldingsoort[$nrvermelding]='NSFX';
			$vermelding[$nrvermelding]=substr($buffer, 7);;
			$vermeldinggedcom[$nrvermelding]=$level1;
			$vermeldingdatum[$nrvermelding]='';
			$vermeldingbron[$nrvermelding]='';
			$vermeldingtekst[$nrvermelding]='';
			$vermeldingplaats[$nrvermelding]='';
		}

		// *** Haza-data ***
		//1 EVEN
		//2 TYPE living
		if ($level1=='EVEN'){
			if (substr($buffer, 0, 6)=='1 EVEN'){ $verwerkt=1; }
			if (substr($buffer,0,13)=='2 TYPE living'){
				$verwerkt=1; $levend='HZ_levend';
				$event="";
				$level1="";
			}
		}

		// *** Aldfaer ***
		// 1 EVEN Functie naam
		// 2 TYPE functie
		// 2 NOTE @N26@
		// 2 DATE FROM 1 JAN 1990 TO 1 JAN 2001
		// 2 SOUR @S14@
		//
		// 1 EVEN Onderscheiding naam
		// 2 TYPE onderscheiding
		// 2 NOTE @N28@
		// 2 DATE FROM 1 JAN 1960 TO 12 DEC 1970
		// 2 SOUR @S16@
		//
		// 1 EVEN Predikaat naam
		// 2 TYPE predikaat
		// 2 NOTE @N30@
		// 2 DATE FROM 1 JAN 2001 TO 1 JAN 2004
		// 2 SOUR @S18@
		//if ($level1=='EVEN'){
		if (substr($buffer, 0, 6)=='1 EVEN'){
			if (substr($buffer, 7)){
				//if (substr($buffer, 7)){
					 $vermeldingtijdelijk=substr($buffer, 7);
				//}
				$verwerkt=1; $event="1";
			}
		}

		if ($event){
			if ($event2){
				$event2='';
				$nrvermelding++;
				$vermelding_persoon_id[$nrvermelding]=$gedcomnummer;
				$vermelding_gezin_id[$nrvermelding]='';
				$vermeldingsoort[$nrvermelding]='gebeurtenis';
				$vermelding[$nrvermelding]='';
				$vermeldinggedcom[$nrvermelding]=$level1;
				$vermeldingdatum[$nrvermelding]='';
				$vermeldingbron[$nrvermelding]='';
				$vermeldingtekst[$nrvermelding]='';

				// *** Aldfaer, title by name: 1 TITL Ir. ***
				if ($level1=='TITL'){ $vermeldingsoort[$nrvermelding]='titel'; }

				//Voor tekst bij de gebeurtenis:
				//1 _MILT militaire dienst  Location: Amsterdam
				if (isset($vermeldingtijdelijk)){
					//$vermeldingtekst[$nrvermelding]=$this->voegsamen2 ($vermeldingtekst[$nrvermelding],$vermeldingtijdelijk);
					$vermelding[$nrvermelding]=$this->voegsamen2 ($vermeldingtekst[$nrvermelding],$vermeldingtijdelijk);
					$vermeldingtijdelijk='';
				}

				$vermeldingplaats[$nrvermelding]='';
			}

			// *** Type (soort) opslaan ***
			if (substr($buffer,0,6)=='2 TYPE'){
				// *** Voor Aldfaer deze gebeurtenissen wijzigen in ***
				// 1 EVEN
				// 2 TYPE birth registration
				// 2 DATE 21 FEB 1965
				// 2 SOUR @S9@
				if ($buffer=='2 TYPE birth registration'){ $verwerkt=1; $vermeldingsoort[$nrvermelding]='geboorteaangifte'; }
				if ($buffer=='2 TYPE death registration'){ $verwerkt=1; $vermeldingsoort[$nrvermelding]='overlijdensaangifte'; }

				// *** Aldfaer predikaat bij naam ***
				// 1 EVEN Jhr.
				// 2 TYPE predikaat
				if ($buffer=='2 TYPE predikaat'){ $verwerkt=1; $vermeldingsoort[$nrvermelding]='predikaat'; }

				// *** Aldfaer, heerlijkheid na een naam: 1 PROP Heerlijkheid ***
				if ($buffer=='2 TYPE heerlijkheid'){
					$verwerkt=1; $vermeldingsoort[$nrvermelding]='heerlijkheid';
				}

				// *** HZ-21, ash dispersion ***
				if ($buffer=='2 TYPE ash dispersion'){
					$verwerkt=1; $vermeldingsoort[$nrvermelding]='ash dispersion';
				}
			}

			if (substr($buffer,0,6)=='2 DATE'){ $verwerkt=1; $vermeldingdatum[$nrvermelding]=substr($buffer, 7); }
			if (substr($buffer,0,6)=='2 PLAC'){ $verwerkt=1; $vermeldingplaats[$nrvermelding]=substr($buffer, 7); }
			if (substr($buffer,0,6)=='2 NOTE'){
				$verwerkt=1; $vermeldingtekst[$nrvermelding]=$this->voegsamen2( $vermeldingtekst[$nrvermelding], substr($buffer, 7) );
			}
			if (substr($buffer,0,6)=='3 CONT'){
				$verwerkt=1; $vermeldingtekst[$nrvermelding].=$this->cont(substr($buffer, 7)) ; }
			if (substr($buffer,0,6)=='3 CONC'){
				$verwerkt=1; $vermeldingtekst[$nrvermelding].=$this->conc(substr($buffer, 7)); }

			// *** Aldfaer heeft bron bij gebeurtenis: 2 SOUR @S9@
			if (substr($buffer,0,6)=='2 SOUR'){
				$verwerkt=1;
				$vermeldingbron[$nrvermelding]=$this->voegsamen($vermeldingbron[$nrvermelding],substr($buffer, 7));
			}

		}

		// MOET op deze plaats i.v.m. 2 TYPE living
		if ($buffer=='1 EVEN'){ $verwerkt=1; $event="1";}

		//*** Person source ***
		//Haza-data
		//1 SOUR @S1@
		//2 ROLE Persoonskaart
		//2 DATE
		if ($level1=='SOUR'){
			if (substr($buffer,0,6)=='1 SOUR'){
				$verwerkt=1;
				$nrvermelding++;
				$vermelding_persoon_id[$nrvermelding]=$gedcomnummer;
				$vermelding_gezin_id[$nrvermelding]='';
				$vermeldingsoort[$nrvermelding]='bron';
				$vermelding[$nrvermelding]='';
				$vermeldinggedcom[$nrvermelding]=trim(substr($buffer, 2, 5));
				$vermeldingdatum[$nrvermelding]='';
				$vermeldingbron[$nrvermelding]=substr($buffer, 7);
				$vermeldingtekst[$nrvermelding]='';
				$vermeldingplaats[$nrvermelding]='';
			}
			if (substr($buffer, 0, 6)=='2 ROLE'){
				$verwerkt=1; $vermelding[$nrvermelding]=substr($buffer, 7);
			}
			// *** Date ***
			if (substr($buffer,0,6)=='2 DATE'){
				$verwerkt=1; $vermeldingdatum[$nrvermelding]=substr($buffer, 7);
			}
		}

		// ********************************************************************************************
		// *** Opslaan van niet verwerkte gedcom items ***
		// ********************************************************************************************
		if (isset($_POST['verwerkcontrole'])){
			$buffer=trim($buffer);
			//Onderstaande regels overslaan
			if ($buffer=='0 TRLR'){ $verwerkt=1; }

			//afbeelding o.a. Aldfaer
			if (strtolower($buffer)=='2 form jpg'){ $verwerkt=1; }

			if (substr($buffer,0,6)=='1 RIN '){ $verwerkt=1; }
			if (substr($buffer,0,5)=='1 RFN'){ $verwerkt=1; }

			// Aldfaer:
			//1 _NEW
			//2 TYPE 1
			//2 DATE 9 APR 2006
			//3 TIME 15:32:32
			if ($level1=='_NEW'){ $verwerkt=1; }

			if ($verwerkt==0){
				$nietverwerkt[]="$level0</td><td>$level1<br></td><td>$level2<br></td><td>$buffer";
			}
		}

	}  //einde explode

	//GEGEVENS OP SLAAN
	// *** Sorteer regels voor pers_place_index ***
	$pers_index_bapt='';
	if ($pers_bapt_place){ $pers_index_bapt=$pers_bapt_place; }
	if ($pers_birth_place){ $pers_index_bapt=$pers_birth_place; }
	$pers_index_death='';
	if ($pers_buried_place){ $pers_index_death=$pers_buried_place; }
	if ($pers_death_place){ $pers_index_death=$pers_death_place; }

	// *** SQL maken ***
	$sql="INSERT INTO ".$_SESSION['tree_prefix']."person SET
	pers_gedcomnumber='".$gedcomnummer."',
	pers_tree_prefix='".$_SESSION['tree_prefix']."',
	pers_fams='$fams',
	pers_famc='$pers_famc',
	pers_indexnr='$pers_indexnr', pers_index_bapt='$pers_index_bapt', pers_index_death='$pers_index_death',
	pers_firstname='$pers_firstname', pers_lastname='$pers_lastname', pers_callname='$pers_callname',
	pers_name_text='$pers_name_text', pers_name_source='$pers_name_source',
	pers_prefix='".$persoon["pers_prefix"]."',
	pers_patronym='".$persoon["pers_patronym"]."',
	pers_place_index='$pers_place_index',
	pers_text='".$persoon["tekst"]."',
	pers_text_source='".$persoon["pers_text_source"]."',
	pers_birth_date='$pers_birth_date', pers_birth_time='$pers_birth_time', pers_birth_place='$pers_birth_place',
	pers_birth_text='$pers_birth_text', pers_birth_source='$pers_birth_source',
	pers_bapt_date='$pers_bapt_date', pers_bapt_place='$pers_bapt_place',
	pers_bapt_text='$pers_bapt_text', pers_bapt_source='$pers_bapt_source', pers_religion='$religie',
	pers_death_date='$pers_death_date', pers_death_time='$pers_death_time',
	pers_death_place='$pers_death_place',
	pers_death_text='$pers_death_text', pers_death_source='$pers_death_source',
	pers_buried_date='$pers_buried_date', pers_buried_place='$pers_buried_place',
	pers_buried_text='$pers_buried_text', pers_buried_source='$pers_buried_source',
	pers_cremation='$pers_cremation',
	pers_death_cause='$pers_death_cause',
	pers_sexe='$sexe',
	pers_own_code='".$persoon["pers_own_code"]."',
	pers_new_date='".$persoon["new_date"]."',
	pers_new_time='".$persoon["new_time"]."',
	pers_changed_date='".$persoon["changed_date"]."',
	pers_changed_time='".$persoon["changed_time"]."',
	pers_alive='".$levend."'";

	// *** SQL verwerken ***
	$result=mysql_query($sql) or die(mysql_error());

	// *** STANDAARD adressen opslaan in aparte tabel ***
	if (isset($adresplaats[1])){
		for ($i=1; $i<=count($adresplaats); $i++){
			$gebeurtsql="INSERT INTO ".$_SESSION['tree_prefix']."addresses SET
				address_order='".$i."',
				address_person_id='".$gedcomnummer."',
				address_place='".$adresplaats[$i]."',
				address_date='".$adresdatum[$i]."',
				address_text='".$adrestekst[$i]."',
				address_source='".$adresbron[$i]."'";
			$result=mysql_query($gebeurtsql) or die(mysql_error());
		}
	}

	// *** Vermeldingen opslaan in aparte tabel ***
	if ($nrvermelding>0){
		$event_order=0;
		for ($i=1; $i<=$nrvermelding; $i++){
			if ($i==1){ $event_kind=$vermeldingsoort[$i]; }
			$event_order++;
			if ( $event_kind!=$vermeldingsoort[$i] ){
				$event_order=1;
				$event_kind=$vermeldingsoort[$i];
			}
			$gebeurtsql="INSERT INTO ".$_SESSION['tree_prefix']."events SET
				event_order='".$event_order."',
				event_person_id='".$vermelding_persoon_id[$i]."',
				event_family_id='".$vermelding_gezin_id[$i]."',
				event_kind='".$vermeldingsoort[$i]."',
				event_event='".$vermelding[$i]."',
				event_gedcom='".$vermeldinggedcom[$i]."',
				event_date='".$vermeldingdatum[$i]."',
				event_text='".$vermeldingtekst[$i]."',
				event_place='".$vermeldingplaats[$i]."',
				event_source='".$vermeldingbron[$i]."'";
			$result=mysql_query($gebeurtsql) or die(mysql_error());
		}
	}

} //einde persoon


// ************************************************************************************************
// *** Gezinnen verwerken ***
// ************************************************************************************************
function gezin($gezin_array){
	global $genprogramma, $nietverwerkt;

	$regel=$gezin_array;
	$regel2=explode("\n",$regel);

	//************************************************************************************************
	// *** Gezin ***
	//************************************************************************************************
	// 0 @F1@ FAM
	// 0 @F1389_1390@ FAM aldfaer

	unset ($gezin);  //Reset de hele array

	$gezin["religie"]=""; $gezin["soort"]="";
	$gezin["tekst"]=""; $gezin["fam_text_source"]="";

	$gezin["fam_marr_church_notice_date"]=""; $gezin["fam_marr_church_notice_place"]="";
	$gezin["fam_marr_church_notice_text"]=""; $gezin["fam_marr_church_notice_source"]="";

	$gezin["fam_marr_church_date"]=""; $gezin["fam_marr_church_place"]="";
	$gezin["fam_marr_church_text"]=""; $gezin["fam_marr_church_source"]="";

	// *** Samenwonen ***
	$gezin["fam_relation_date"]=""; $gezin["fam_relation_place"]="";
	$gezin["fam_relation_text"]=""; $gezin["fam_relation_source"]="";
	$gezin["fam_relation_end_date"]="";
	
	$gezin["fam_marr_notice_date"]=""; $gezin["fam_marr_notice_place"]="";
	$gezin["fam_marr_notice_text"]=""; $gezin["fam_marr_notice_source"]="";

	$gezin["fam_marr_date"]=""; $gezin["fam_marr_place"]="";
	$gezin["fam_marr_text"]=""; $gezin["fam_marr_source"]=""; $gezin["fam_marr_authority"]="";

	$gezin["fam_div_date"]=""; $gezin["fam_div_place"]="";
	$gezin["fam_div_text"]=""; $gezin["fam_div_source"]=""; $gezin["fam_div_authority"]="";
	
	$gezin["new_date"]=""; $gezin["new_time"]=""; $gezin["changed_date"]=""; $gezin["changed_time"]="";

	$kinderen=""; $man=0; $vrouw=0;

	$event="";
	$nrvermelding=0;

	$nradres=0;

	// *** 1e regel verwerken ***
	$buffer=$regel2[0];
	$gedcomnummer=substr($buffer,3,-5);
	if (isset($_POST['verwerkweergave'])){ print "$gedcomnummer "; }

	// *** Level0 opslaan ***
	$level0=substr($buffer,2);
	$level1="";
	$level2="";

	$tijdsoort=''; //soort huwelijk

	// *** Overige regels verwerken ***
	for ($z=1; $z<=count($regel2)-2; $z++){
		$verwerkt=0;
		//$buffer=addslashes($regel2[$z]);
		$buffer=$regel2[$z];
		$buffer=rtrim($buffer,"\n\r");  //newline strippen

		// *** Strip starting spaces, for Pro-gen ***
		if ($genprogramma=='PRO-GEN'){ $buffer=ltrim($buffer," "); }

		//echo "BUFFER: ".$z."-".$buffer."!".count($regel2)."<br>";

		// *** Level1 opslaan ***
		if (substr($buffer, 0, 1)=='1'){
			$level1=rtrim(substr($buffer,2,5));  //rtrim voor DIV_/ CHR_
			$event='';
			$event2='1';
			$level2="";
		}

		// *** Level2 opslaan ***
		if (substr($buffer, 0, 1)=='2'){ $level2=substr($buffer,2,4); }

		// *** Datum opslaan in database ***
		//1 _NEW
		//2 DATE 04 AUG 2004
		if ($level1=='_NEW'){
			if (substr($buffer, 0, 6)=='1 _NEW'){ $verwerkt=1; }
			if (substr($buffer, 0, 6)=='2 DATE'){ $verwerkt=1; $gezin["new_date"]=substr($buffer,7); }
			if (substr($buffer, 0, 6)=='3 TIME'){ $verwerkt=1; $gezin["new_time"]=substr($buffer,7); }
		}

		// *** Wijzigings datum opslaan in database ***
		//1 CHAN
		//2 DATE 04 AUG 2004
		if ($level1=='CHAN'){
			if (substr($buffer, 0, 6)=='1 CHAN'){ $verwerkt=1; }
			if (substr($buffer, 0, 6)=='2 DATE'){ $verwerkt=1; $gezin["changed_date"]=substr($buffer,7); }
			if (substr($buffer, 0, 6)=='3 TIME'){ $verwerkt=1; $gezin["changed_time"]=substr($buffer,7); }
		}

		// *** Getuigen ***
		//1 WITN Doeko/Mons/
		//1 WITN Rene/Mansveld/
		if (substr($buffer,0,6)=='1 WITN'){
			$verwerkt=1;
			$buffer = str_replace("/", " ", $buffer);
			$buffer = trim($buffer);
			$nrvermelding++;
			$vermeldingsoort[$nrvermelding]='trgetuige';
			$vermelding[$nrvermelding]=substr($buffer,7);
			$vermeldinggedcom[$nrvermelding]='WITN';
			$vermeldingdatum[$nrvermelding]='';
			$vermeldingbron[$nrvermelding]='';
			$vermeldingtekst[$nrvermelding]='';
			$vermeldingplaats[$nrvermelding]='';
		}

		// *** Type relatie algemeen (LAT etc.) ***
		if (substr($buffer,0,6)=='1 TYPE'){ $verwerkt=1; $gezin["soort"]=substr($buffer,7); }

		// *** Gedcomnummer man: 1 HUSB @I14@ ***
		//if (substr($buffer,0,9)=='1 HUSB @I'){ $verwerkt=1; $man=substr($buffer,8,-1); }
		if (substr($buffer,0,8)=='1 HUSB @'){ $verwerkt=1; $man=substr($buffer,8,-1); }

		// *** Gedcomnummer vrouw: 1 WIFE @I14@ ***
		//if (substr($buffer,0,9)=='1 WIFE @I'){ $verwerkt=1; $vrouw=substr($buffer,8,-1); }
		if (substr($buffer,0,8)=='1 WIFE @'){ $verwerkt=1; $vrouw=substr($buffer,8,-1); }

		// *** Gedcomnummers kinderen ***
		// 1 CHIL @I13@
		// 1 CHIL @I14@
		//if (substr($buffer,0,9)=='1 CHIL @I'){ $verwerkt=1; $kinderen= $this->voegsamen($kinderen, substr($buffer,8,-1)); }
		if (substr($buffer,0,8)=='1 CHIL @'){ $verwerkt=1; $kinderen= $this->voegsamen($kinderen, substr($buffer,8,-1)); }

		// Haza-data
		//1 MARB
		//2 TYPE civil
		//2 DATE 01 JAN 2002
		//2 PLAC Alkmaar
		//2 NOTE tekst ondertr wet
		//3 CONT 2e regel

		// *************************************************************************************************
		// *** Ondertrouw kerk ***

		// *** Ondertrouw Aldfaer ***
		if ($level1=='MARL' AND $genprogramma=='ALDFAER'){
			$level1="MARB";
			if (substr($buffer,0,6)=='1 MARL'){ $verwerkt=1; }
		}

		if ($level1=='MARB' AND $tijdsoort=='religious'){
			if (substr($buffer,0,6)=='1 MARB'){ $verwerkt=1; }
			if (substr($buffer,0,6)=='2 DATE'){ $verwerkt=1; $gezin["fam_marr_church_notice_date"]= substr($buffer,7); }
			if (substr($buffer,0,6)=='2 PLAC'){ $verwerkt=1; $gezin["fam_marr_church_notice_place"]= substr($buffer,7); }
			if (substr($buffer,0,6)=='2 NOTE'){ $verwerkt=1; $gezin["fam_marr_church_notice_text"]= substr($buffer,7); }
			if (substr($buffer,0,6)=='3 CONT'){ $verwerkt=1; $gezin["fam_marr_church_notice_text"].=$this->cont(substr($buffer,7)); }
			if (substr($buffer,0,6)=='3 CONC'){ $verwerkt=1; $gezin["fam_marr_church_notice_text"].=$this->conc(substr($buffer,7)); }
			// *** Verwerken bronnen o.a. Pro-gen en Aldfaer ***
			if (substr($buffer,0,6)=='2 SOUR'){
				$verwerkt=1;
				$gezin["fam_marr_church_notice_source"]=$this->voegsamen($gezin["fam_marr_church_notice_source"],substr($buffer, 7));
			}
		}

		// *************************************************************************************************
		// *** Ondertrouw ***
		if ($level1=='MARB' AND $tijdsoort!='religious'){
			// *** Type huwelijk / relatie (civil of religious) ***
			if (substr($buffer,0,6)=='2 TYPE'){ $verwerkt=1; $tijdsoort=strtolower(substr($buffer,7)); }
			if (substr($buffer,0,6)=='1 MARB'){ $verwerkt=1; }
			if (substr($buffer,0,6)=='2 DATE'){ $verwerkt=1; $gezin["fam_marr_notice_date"]= substr($buffer,7); }
			if (substr($buffer,0,6)=='2 PLAC'){ $verwerkt=1; $gezin["fam_marr_notice_place"]= substr($buffer,7); }
			if (substr($buffer,0,6)=='2 NOTE'){ $verwerkt=1; $gezin["fam_marr_notice_text"]= substr($buffer,7); }
			if (substr($buffer,0,6)=='3 CONT'){ $verwerkt=1; $gezin["fam_marr_notice_text"].=$this->cont(substr($buffer,7)); }
			if (substr($buffer,0,6)=='3 CONC'){ $verwerkt=1; $gezin["fam_marr_notice_text"].=$this->conc(substr($buffer,7)); }
			// *** Verwerken bronnen o.a. Pro-gen en Aldfaer ***
			if (substr($buffer,0,6)=='2 SOUR'){
				$verwerkt=1;
				$gezin["fam_marr_notice_source"]=$this->voegsamen($gezin["fam_marr_notice_source"],substr($buffer, 7));
			}
		}

		// *******************************************************************************************
		// *** Huwelijk kerk ***

		if ($level1=='MARR'){
			// *** Getuigen Pro-gen ***
			//1 MARR
			//2 DATE 21 MAY 1874
			//2 PLAC Winsum
			//2 _WITN Aam Pieter Borgman, oud 48 jaar, van beroep herbergier, wonende te
			//3 CONT bla bla
			//3 CONT bla bla
			if ($level2=='_WIT'){
				if (substr($buffer,0,7)=='2 _WITN'){
// nieuwe manier van opslaan nog niet getest.
					$verwerkt=1;
					$nrvermelding++;
					$vermeldingsoort[$nrvermelding]='trgetuige';
					$vermelding[$nrvermelding]=substr($buffer,8);
					$vermeldinggedcom[$nrvermelding]='WITN';
					$vermeldingdatum[$nrvermelding]='';
					$vermeldingbron[$nrvermelding]='';
					$vermeldingtekst[$nrvermelding]='';
					$vermeldingplaats[$nrvermelding]='';
				}
				if (substr($buffer,0,6)=='3 CONT'){
					$verwerkt=1; $vermelding[$nrvermelding].=$this->cont(substr($buffer,7));
					$buffer=""; //anders komt de tekst ook nog bij tekst huwelijk te staan!
				}
				if (substr($buffer,0,6)=='3 CONC'){
					$verwerkt=1; $vermelding[$nrvermelding].=$this->conc(substr($buffer,7));
					$buffer=""; //anders komt de tekst ook nog bij tekst huwelijk te staan!
				}
			}

			// *** Religie ***
			// Haza-data
			//1 MARR
			//2 TYPE religious
			//2 RELI Hervormd
			if (substr($buffer,0,6)=='2 RELI'){ $verwerkt=1; $gezin["religie"]=substr($buffer,7); }

			// *** Haza-data trouw instantie ***
			// 1 MARR
			// 2 AGNC alkmaar gemeente wettelijk
			if (substr($buffer,0,6)=='2 AGNC'){ $verwerkt=1; $gezin["fam_marr_authority"]=substr($buffer,7); }

			// *** Type huwelijk / relatie (civil of religious) ***
			if (substr($buffer,0,6)=='2 TYPE'){
				$verwerkt=1; $tijdsoort=strtolower(substr($buffer,7));
				// *** Type huwelijk opslaan in database, zodat bij een huwelijk ZONDER datum de juiste
				//     tekst wordt weergegeven (anders wordt het "relatie"). ***
				if ($gezin["soort"]==''){ $gezin["soort"]=$tijdsoort; }
			}
		}

		//Pro-gen en GensdataPro, kerkelijk huwelijk:
		//1 ORDI
		//2 DATE 01 JUN 1749
		//2 PLAC Huizen
		//if (substr($buffer,0,1)=='1'){
		//  $tijdsoort="";  //Om te voorkomen dat Pro-gen kerkelijk huwelijk geeft bij alle huwelijken
		//}
		if (substr($buffer,0,6)=='1 ORDI'){
			$buffer = "1 MARR";
			$tijdsoort="religious";
			$level1='MARR';
		}

		if ($level1=='MARR' AND $tijdsoort=='religious'){
			if (substr($buffer,0,6)=='1 MARR'){ $verwerkt=1; }
			if (substr($buffer,0,6)=='2 DATE'){ $verwerkt=1; $gezin["fam_marr_church_date"]= substr($buffer,7); }
			if (substr($buffer,0,6)=='2 PLAC'){ $verwerkt=1; $gezin["fam_marr_church_place"]= substr($buffer,7); }
			if (substr($buffer,0,6)=='2 NOTE'){ $verwerkt=1; $gezin["fam_marr_church_text"]= substr($buffer,7); }
			if (substr($buffer,0,6)=='3 CONT'){ $verwerkt=1; $gezin["fam_marr_church_text"].=$this->cont(substr($buffer,7)); }
			if (substr($buffer,0,6)=='3 CONC'){ $verwerkt=1; $gezin["fam_marr_church_text"].=$this->conc(substr($buffer,7)); }
			// *** Verwerken bronnen o.a. Pro-gen en Aldfaer ***
			if (substr($buffer,0,6)=='2 SOUR'){
				$verwerkt=1;
				$gezin["fam_marr_church_source"]=$this->voegsamen($gezin["fam_marr_church_source"],substr($buffer, 7));
			}
		}

		// **********************************************************************************************
		// *** Huwelijk ***
		if ($level1=='MARR' AND $tijdsoort!='religious'){
			if (substr($buffer,0,6)=='1 MARR'){ $verwerkt=1; }
			if (substr($buffer,0,6)=='2 DATE'){ $verwerkt=1; $gezin["fam_marr_date"]= substr($buffer,7); }
			if (substr($buffer,0,6)=='2 PLAC'){ $verwerkt=1; $gezin["fam_marr_place"]= substr($buffer,7); }
			if (substr($buffer,0,6)=='2 NOTE'){ $verwerkt=1; $gezin["fam_marr_text"]= substr($buffer,7); }
			if (substr($buffer,0,6)=='3 CONT'){ $verwerkt=1; $gezin["fam_marr_text"].=$this->cont(substr($buffer,7)); }
			if (substr($buffer,0,6)=='3 CONC'){ $verwerkt=1; $gezin["fam_marr_text"].=$this->conc(substr($buffer,7)); }
			// *** Verwerken bronnen o.a. Pro-gen en Aldfaer ***
			if (substr($buffer,0,6)=='2 SOUR'){
				$verwerkt=1;
				$gezin["fam_marr_source"]=$this->voegsamen($gezin["fam_marr_source"],substr($buffer, 7));
			}
		}

		// ******************************************************************************************
		// *** Samenwonen ***

		// *** Pro-gen samenwonen: 1 _LIV ***
		if (substr($buffer,0,6)=='1 _LIV'){ $verwerkt=1; $gezin["soort"]="living together"; }

		//NIET GETEST *** BK samenwonen ***
		if (substr($buffer,0,7)=='1 _COML'){ $verwerkt=1; $gezin["soort"]="living together"; }

		// Samenwonen BK
		// 0 @F4664@ FAM
		// 1 HUSB @I12409@
		// 1 WIFE @I12410@
		// 1 CHIL @I1830@
		// 1 _NMR
		// 2 SOUR @S409@
		// 3 PAGE Brief  2 october 2001
		// 1 _MSTAT Partners
		// *** LET OP de code _NMR komt TWEE keer voor in dit bestand ***
		if (substr($buffer,0,6)=='1 _NMR'){ $verwerkt=1; $gezin["soort"]="non-marital"; }

		// *** Gedcom 5.5: 1 NMR ***
		if (substr($buffer,0,5)=='1 NMR'){ $verwerkt=1; $gezin["soort"]="non-marital"; }

		if ($level1=='MARR'){
			// *** Aldfaer samenwonen ***
			if (substr($buffer,0,6)=='2 TYPE'){ $verwerkt=1; $tijdsoort=strtolower(substr($buffer,7)); }

			// *** Aldfaer relatie ***
			// 0 @F3027@ FAM
			// 1 HUSB @I784@
			// 1 WIFE @I258@
			// 1 MARR
			// 2 TYPE partners
			if ($tijdsoort=='partners'){
				$gezin["soort"]='partners';
				$buffer='1 _LIV';
				$level1='_LIV';
			}
			if ($tijdsoort=='registered'){
				$gezin["soort"]='registered';
				$buffer='1 _LIV';
				$level1='_LIV';
			}
			if ($tijdsoort=='unknown'){
				$gezin["soort"]='unknown';
				$buffer='1 _LIV';
				$level1='_LIV';
			}
		}

		// Haza-data samenwonen met begin en eind datum
		// 0 @F9@ FAM
		// 1 TYPE non-marital
		// 1 _STRT
		// 2 DATE 01 JAN 2000
		// 1 _END
		// 2 DATE 02 FEB 2003
		//Haza-data: 1 TYPE non-marital > omzetten naar '1 _LIV'
		if (substr($buffer,0,18)=='1 TYPE non-marital'){
			$buffer='1 _LIV';
			$level1='_LIV';
		}

		// OF (Haza-data):
		// 1 TYPE living together
		// 1 _STRT
		// 2 DATE SEP 2005
		// 1 _END
		// 2 DATE 2006
		if ($level1=='_STRT'){
			if (substr($buffer,0,7)=='1 _STRT'){ $verwerkt=1; }
			if (substr($buffer,0,6)=='2 DATE'){ $verwerkt=1; $gezin["fam_relation_date"]= substr($buffer,7); }
		}
		if ($level1=='_END'){
			if (substr($buffer,0,6)=='1 _END'){ $verwerkt=1; }
			if (substr($buffer,0,6)=='2 DATE'){ $verwerkt=1; $gezin["fam_relation_end_date"]= substr($buffer,7); }
		}

		//PG       : 1 _LIV
		if ($level1=='_LIV'){
			if (substr($buffer,0,6)=='1 _LIV'){ $verwerkt=1; }
			if (substr($buffer,0,6)=='2 DATE'){ $verwerkt=1; $gezin["fam_relation_date"]= substr($buffer,7); }
			if (substr($buffer,0,6)=='2 PLAC'){ $verwerkt=1; $gezin["fam_relation_place"]= substr($buffer,7); }
			if (substr($buffer,0,6)=='2 NOTE'){ $verwerkt=1; $gezin["fam_relation_text"]= substr($buffer,7); }
			if (substr($buffer,0,6)=='3 CONT'){ $verwerkt=1; $gezin["fam_relation_text"].=$this->cont(substr($buffer,7)); }
			if (substr($buffer,0,6)=='3 CONC'){ $verwerkt=1; $gezin["fam_relation_text"].=$this->conc(substr($buffer,7)); }
			// *** Verwerken bronnen o.a. Pro-gen en Aldfaer ***
			if (substr($buffer,0,6)=='2 SOUR'){
				$verwerkt=1;
				$gezin["fam_relation_source"]=$this->voegsamen($gezin["fam_relation_source"],substr($buffer, 7));
			}
		}

		// *****************************************************************************************
		// *** Scheiding ***

		// *** Scheiding bij BK ***
		//1 _SEPR
		//2 DATE 1933
		//2 SOUR @S326@
		//2 NOTE Hij verliet zijn gezin.
		if (substr($buffer,0,7)=='1 _SEPR'){
			$buffer = str_replace("1 _SEPR", "1 DIV", $buffer);
			$level1='DIV';
		}

		if ($level1=='DIV'){
			if (substr($buffer,0,5)=='1 DIV'){ $verwerkt=1; }
			if (substr($buffer,0,6)=='2 DATE'){ $verwerkt=1; $gezin["fam_div_date"]= substr($buffer,7); }
			if (substr($buffer,0,6)=='2 PLAC'){ $verwerkt=1; $gezin["fam_div_place"]= substr($buffer,7); }
			if (substr($buffer,0,6)=='2 NOTE'){ $verwerkt=1; $gezin["fam_div_text"]= substr($buffer,7); }
			if (substr($buffer,0,6)=='3 CONT'){
				$verwerkt=1; $gezin["fam_div_text"].=$this->cont(substr($buffer,7)); }
			if (substr($buffer,0,6)=='3 CONC'){
				$verwerkt=1; $gezin["fam_div_text"].=$this->conc(substr($buffer,7)); }
			// *** Verwerken bronnen o.a. Pro-gen en Aldfaer ***
			if (substr($buffer,0,6)=='2 SOUR'){
				$verwerkt=1;
				$gezin["fam_div_source"]=$this->voegsamen($gezin["fam_div_source"],substr($buffer, 7));
			}

			// *** Haza-data scheidings instantie ***
			// 1 DIV
			// 2 AGNC alkmaar scheiding
			if (substr($buffer,0,6)=='2 AGNC'){
				$verwerkt=1; $gezin["fam_div_authority"]=substr($buffer,7); }
		}

		// **********************************************************************************************
		// *** Tekst bij gezin ***
		if ($level1=='NOTE'){
			//if (substr($buffer, 0, 6)=='1 NOTE'){ $verwerkt=1; $gezin["tekst"].="<br>\n".substr($buffer,7); }
			if (substr($buffer, 0, 6)=='1 NOTE'){
				// *** Bij meerdere 1 NOTE teksten een nieuwe regel ***
				//if ($gezin["tekst"]!=''){ $gezin["tekst"].="<br>\n"; }
				if ($gezin["tekst"]!=''){ $gezin["tekst"].="\n"; }
				$verwerkt=1; $gezin["tekst"].=substr($buffer,7);
			}
			if (substr($buffer, 0, 6)=='2 CONT'){ $verwerkt=1; $gezin["tekst"].=$this->cont(substr($buffer,7)); }
			if (substr($buffer, 0, 6)=='2 CONC'){ $verwerkt=1; $gezin["tekst"].=$this->conc(substr($buffer,7)); }

			// *** BK: source by family text ***
			if (substr($buffer,0,6)=='2 SOUR'){
				$verwerkt=1;
				$gezin["fam_text_source"]=$this->voegsamen($gezin["fam_text_source"],substr($buffer, 7));
			}

		}

		// **********************************************************************************************
		// *** Gebeurtenissen ************************************
		//1 MILI
		//2 TYPE militaire dienst
		//2 DATE 01 JAN 1999
		//2 NOTE test

		//1 EVEN
		//2 TYPE gebeurtenis
		//2 DATE 01 JAN 2001
		//2 PLAC Alkmaar
		//2 NOTE gebeurtenis

		if (substr($buffer,0,7)=='1 _MBON'){
			if (substr($buffer, 8)){ $vermeldingtijdelijk=substr($buffer, 8); }
			$verwerkt=1; $event="1";
		}
		if (substr($buffer,0,6)=='1 MARC'){
			if (substr($buffer, 7)){ $vermeldingtijdelijk=substr($buffer, 7); }
			$verwerkt=1; $event="1";
		}
		// *** Bij Aldfaer is MARL ondertrouw! ***
		if (substr($buffer,0,6)=='1 MARL' AND $genprogramma!='ALDFAER'){
			if (substr($buffer, 7)){ $vermeldingtijdelijk=substr($buffer, 7); }
			$verwerkt=1; $event="1";
		}
		if (substr($buffer,0,6)=='1 MARS'){
			if (substr($buffer, 7)){ $vermeldingtijdelijk=substr($buffer, 7); }
			$verwerkt=1; $event="1";
		}
		if (substr($buffer,0,6)=='1 DIVF'){
			if (substr($buffer, 7)){ $vermeldingtijdelijk=substr($buffer, 7); }
			$verwerkt=1; $event="1";
		}
		if (substr($buffer,0,6)=='1 ANUL'){
			if (substr($buffer, 7)){ $vermeldingtijdelijk=substr($buffer, 7); }
			$verwerkt=1; $event="1";
		}
		if (substr($buffer,0,6)=='1 ENGA'){
			if (substr($buffer, 7)){ $vermeldingtijdelijk=substr($buffer, 7); }
			$verwerkt=1; $event="1";
		}
		if (substr($buffer,0,6)=='1 SLGS'){
			if (substr($buffer, 7)){ $vermeldingtijdelijk=substr($buffer, 7); }
			$verwerkt=1; $event="1";
		}
		if (substr($buffer,0,6)=='1 CENS'){
			if (substr($buffer, 7)){ $vermeldingtijdelijk=substr($buffer, 7); }
			$verwerkt=1; $event="1";
		}
		// *** LET OP de code _NMR komt TWEE keer voor in dit bestand ***
		if (substr($buffer,0,6)=='1 _NMR'){
			if (substr($buffer, 7)){ $vermeldingtijdelijk=substr($buffer, 7); }
			$verwerkt=1; $event="1";
		}
		if (substr($buffer,0,7)=='1 _COML'){
			if (substr($buffer, 8)){ $vermeldingtijdelijk=substr($buffer, 8); }
			$verwerkt=1; $event="1";
		}
		if (substr($buffer,0,6)=='1 NCHI'){
			if (substr($buffer, 7)){ $vermeldingtijdelijk=substr($buffer, 7); }
			$verwerkt=1; $event="1";
		}
		if (substr($buffer,0,5)=='1 RFN'){
			if (substr($buffer, 6)){ $vermeldingtijdelijk=substr($buffer, 6); }
			$verwerkt=1; $event="1";
		}
		if (substr($buffer,0,6)=='1 REFN'){
			if (substr($buffer, 7)){ $vermeldingtijdelijk=substr($buffer, 7); }
			$verwerkt=1; $event="1";
		}

		// Overige gebeurtenissen (geen BK?)
		if ($buffer=='1 EVEN'){$verwerkt=1; $event="1";}
		if ($buffer=='1 SLGL'){$verwerkt=1; $event="1";}

		if ($event){
			if ($event2){
				$event2='';
				$nrvermelding++;
				$vermeldingsoort[$nrvermelding]='gebeurtenis';
				$vermelding[$nrvermelding]='';
				$vermeldinggedcom[$nrvermelding]=$level1;;
				$vermeldingdatum[$nrvermelding]='';
				$vermeldingbron[$nrvermelding]='';
				$vermeldingtekst[$nrvermelding]='';
				$vermeldingplaats[$nrvermelding]='';

				if (isset($vermeldingtijdelijk)){
				$vermeldingtekst[$nrvermelding]=$this->voegsamen2 ($vermeldingtekst[$nrvermelding],$vermeldingtijdelijk);
				$vermeldingtijdelijk='';
				}

			}
			// *** Soort opslaan ***
			if (substr($buffer,0,6)=='2 TYPE'){ $verwerkt=1; $vermelding[$nrvermelding]=substr($buffer, 7); }
			if (substr($buffer,0,6)=='2 DATE'){ $verwerkt=1; $vermeldingdatum[$nrvermelding]=substr($buffer, 7); }
			if (substr($buffer,0,6)=='2 PLAC'){ $verwerkt=1; $vermeldingplaats[$nrvermelding]=substr($buffer, 7); }
			//if (copy(buf,1,6)='2 TYPE') AND (genprogramma='BROSKEEP') then gebeurttekst[nrgebeurtenis]:=gebeurttekst[nrgebeurtenis]+', '+copy(buf,8,length(buf)); //Voor BK!!!
			if (substr($buffer,0,6)=='2 NOTE'){
				$verwerkt=1; $vermeldingtekst[$nrvermelding]=$this->voegsamen2( $vermeldingtekst[$nrvermelding], substr($buffer, 7) );
			}
			if (substr($buffer,0,6)=='3 CONT'){
				$verwerkt=1; $vermeldingtekst[$nrvermelding].=$this->cont(substr($buffer, 7)) ;
			}
			if (substr($buffer,0,6)=='3 CONC'){
				$verwerkt=1; $vermeldingtekst[$nrvermelding].=$this->conc(substr($buffer,7)) ;
			}

		}

		//*** Family source ***
		// BK:
		//1 SOUR @S2@
		//2 PAGE blad 5
		//2 DATA
		//3 TEXT citaat bron
		//2 QUAY 2
		//2 NOTE informatie citaat bron
		//1 SOUR @S3@
		if ($level1=='SOUR'){
			if (substr($buffer,0,6)=='1 SOUR'){
				$verwerkt=1;
				$verwerkt=1;
				$nrvermelding++;
				$vermeldingsoort[$nrvermelding]='bron';
				$vermelding[$nrvermelding]='';
				$vermeldinggedcom[$nrvermelding]=trim(substr($buffer, 2, 5));
				$vermeldingdatum[$nrvermelding]='';
				$vermeldingbron[$nrvermelding]=substr($buffer, 7);
				$vermeldingtekst[$nrvermelding]='';
				$vermeldingplaats[$nrvermelding]='';
			}
			if (substr($buffer, 0, 6)=='2 ROLE'){
				$verwerkt=1;
				$vermelding[$nrvermelding]=substr($buffer, 7);
			}
			// *** Date ***
			if (substr($buffer,0,6)=='2 DATE'){
				$verwerkt=1; $vermeldingdatum[$nrvermelding]=substr($buffer, 7);
			}
			// *** Aldfaer TIJD ***
			//2 _ALDFAER_TIME 08:00:00
			//if (substr($buffer,0,15)=='2 _ALDFAER_TIME'){
				//if (nrbron>0) then BronDatum[nrbron]:=copy(buf,8,length(buf));
			//}
		}

		//Woonplaats bij gezin voor BK
		//1 RESI
		//2 ADDR Naam gezin
		//3 CONT Adres ridderkerk
		//2 PHON telefoon
		//2 FAX fax
		//2 EMAIL mail
		//2 WWW website
		if ($level1=='RESI'){
			if (substr($buffer, 0, 6)=='1 RESI'){
				$verwerkt=1;
				$nradres++;
				$adresplaats[$nradres]="";
				$adresdatum[$nradres]="";
				$adrestekst[$nradres]="";
				$adresbron[$nradres]="";
			}

			// *** Woonplaats voor BK ***
			if (substr($buffer, 0, 6)=='2 PLAC'){ $verwerkt=1; $adresplaats[$nradres]= substr($buffer,7); }

			// *** Teksten bij woonplaats voor BK, Aldfaer ***
			if (substr($buffer, 0, 6)=='2 ADDR'){ $verwerkt=1; $adrestekst[$nradres]= substr($buffer,7); }
			if (substr($buffer,0,6)=='2 NOTE'){ $verwerkt=1; $adrestekst[$nradres].= substr($buffer,7); }
			if (substr($buffer,0,6)=='3 CONT'){ $verwerkt=1; $adrestekst[$nradres].=$this->cont(substr($buffer,7)); }
			if (substr($buffer,0,6)=='3 CONC'){ $verwerkt=1; $adrestekst[$nradres].=$this->conc(substr($buffer,7)); }

			// *** Datum bij woonplaats voor o.a. BK ***
			if (substr($buffer,0,6)=='2 DATE'){ $verwerkt=1; $adresdatum[$nradres]=substr($buffer,7); }
			if (substr($buffer,0,6)=='2 SOUR'){
				$verwerkt=1;
				$adresbron[$nradres]=$this->voegsamen($adresbron[$nradres],substr($buffer, 7));
			}
		}

		//************************************************************************************************
		// *** Opslaan van niet verwerkte gedcom items ***
		// ***********************************************************************************************
		if (isset($_POST['verwerkcontrole'])){
			//Onderstaande regels overslaan
			if ($buffer=='2 ADDR'){ $verwerkt=1; }
			if ($buffer=='1 RESI'){ $verwerkt=1; }
			if ($buffer=='1 REPO'){ $verwerkt=1; }
			if ($buffer=='0 TRLR'){ $verwerkt=1; }

			if (substr($buffer,0,5)=='1 RFN'){ $verwerkt=1; }

			if ($verwerkt==0){
				$nietverwerkt[]="$level0</td><td>$level1<br></td><td>$level2<br></td><td>$buffer";
			}
		}

	}  //einde explode

	//OPSLAAN
	//Bij Pro-gen moeten vrouwen zonder man apart behandeld worden... :-)
	if ($genprogramma=='PRO-GEN'){
		if (!$man){ $gezin["soort"]="PRO-GEN"; }
	}
	$sql="INSERT INTO ".$_SESSION['tree_prefix']."family SET
	fam_gedcomnumber='$gedcomnummer',
	fam_man='$man', fam_woman='$vrouw', fam_children='$kinderen',
	fam_religion='".$gezin["religie"]."',
	fam_kind='".$gezin["soort"]."',
	fam_text='".$gezin["tekst"]."',
	fam_text_source='".$gezin["fam_text_source"]."',
	fam_marr_church_notice_date='".$gezin["fam_marr_church_notice_date"]."',
	fam_marr_church_notice_place='".$gezin["fam_marr_church_notice_place"]."',
	fam_marr_church_notice_text='".$gezin["fam_marr_church_notice_text"]."',
	fam_marr_church_notice_source='".$gezin["fam_marr_church_notice_source"]."',
	fam_marr_church_date='".$gezin["fam_marr_church_date"]."',
	fam_marr_church_place='".$gezin["fam_marr_church_place"]."',
	fam_marr_church_text='".$gezin["fam_marr_church_text"]."',
	fam_marr_church_source='".$gezin["fam_marr_church_source"]."',
	fam_relation_date='".$gezin["fam_relation_date"]."',
	fam_relation_place='".$gezin["fam_relation_place"]."',
	fam_relation_text='".$gezin["fam_relation_text"]."',
	fam_relation_source='".$gezin["fam_relation_source"]."',
	fam_relation_end_date='".$gezin["fam_relation_end_date"]."',
	fam_marr_notice_date='".$gezin["fam_marr_notice_date"]."',
	fam_marr_notice_place='".$gezin["fam_marr_notice_place"]."',
	fam_marr_notice_text='".$gezin["fam_marr_notice_text"]."',
	fam_marr_notice_source='".$gezin["fam_marr_notice_source"]."',
	fam_marr_date='".$gezin["fam_marr_date"]."',
	fam_marr_place='".$gezin["fam_marr_place"]."',
	fam_marr_text='".$gezin["fam_marr_text"]."',
	fam_marr_source='".$gezin["fam_marr_source"]."',
	fam_marr_authority='".$gezin["fam_marr_authority"]."',
	fam_div_date='".$gezin["fam_div_date"]."',
	fam_div_place='".$gezin["fam_div_place"]."',
	fam_div_text='".$gezin["fam_div_text"]."',
	fam_div_source='".$gezin["fam_div_source"]."',
	fam_div_authority='".$gezin["fam_div_authority"]."',
	fam_new_date='".$gezin["new_date"]."',
	fam_new_time='".$gezin["new_time"]."',
	fam_changed_date='".$gezin["changed_date"]."',
	fam_changed_time='".$gezin["changed_time"]."'";

	$result=mysql_query($sql) or die(mysql_error());
	
	// *** STANDAARD adressen opslaan in aparte tabel ***
	//if (isset($adresplaats[1])){
	if ($nradres>0){
		for ($i=1; $i<=$nradres; $i++){
			$gebeurtsql="INSERT INTO ".$_SESSION['tree_prefix']."addresses SET
				address_order='".$i."',
				address_family_id='".$gedcomnummer."',
				address_place='".$adresplaats[$i]."',
				address_date='".$adresdatum[$i]."',
				address_text='".$adrestekst[$i]."',
				address_source='".$adresbron[$i]."'";
			$result=mysql_query($gebeurtsql) or die(mysql_error());
		}
	}

	// *** Vermeldingen opslaan in aparte tabel ***
	if ($nrvermelding>0){
		$event_order=0;
		for ($i=1; $i<=$nrvermelding; $i++){
			if ($i==1){ $event_kind=$vermeldingsoort[$i]; }
			$event_order++;
			if ( $event_kind!=$vermeldingsoort[$i] ){
				$event_order=1;
				$event_kind=$vermeldingsoort[$i];
			}
			$gebeurtsql="INSERT INTO ".$_SESSION['tree_prefix']."events SET
				event_order='".$event_order."',
				event_person_id='',
				event_family_id='".$gedcomnummer."',
				event_kind='".$vermeldingsoort[$i]."',
				event_event='".$vermelding[$i]."',
				event_gedcom='".$vermeldinggedcom[$i]."',
				event_date='".$vermeldingdatum[$i]."',
				event_text='".$vermeldingtekst[$i]."',
				event_place='".$vermeldingplaats[$i]."',
				event_source='".$vermeldingbron[$i]."'";
			$result=mysql_query($gebeurtsql) or die(mysql_error());
		}
	}

}

// ************************************************************************************************
// *** Teksten verwerken ***
// ************************************************************************************************
function tekst($tekst_array){
	global $nietverwerkt, $genprogramma;
	$regel=$tekst_array;
	$regel2=explode("\n",$regel);
	$buffer=$regel2[0];
	$text['text_text']='';
	$text["new_date"]=''; $text["new_time"]=''; $text["changed_date"]=''; $text["changed_time"]='';

	//0 @N954@ NOTE
	$text['text_gedcomnr']=substr($buffer, 2, -5);
	if (isset($_POST['verwerkweergave'])){ print str_replace("@", "", $text['text_gedcomnr'])." "; }

	// *** Level0 opslaan ***
	$level0=substr($buffer,2);
	$level1="";
	$level2="";

	for ($z=1; $z<=count($regel2)-2; $z++){
		$verwerkt=0;
		$buffer=$regel2[$z];
		$buffer=rtrim($buffer,"\n\r");  //newline strippen

		// *** Strip starting spaces, for Pro-gen ***
		if ($genprogramma=='PRO-GEN'){ $buffer=ltrim($buffer," "); }

		// *** Level1 opslaan ***
		if (substr($buffer, 0, 1)=='1'){
			$level1=rtrim(substr($buffer,2,4));  //rtrim voor CHR_
			$event='';
			$event2='1';
			$level2="";
		}
		// *** Level2 opslaan ***
		if (substr($buffer, 0, 1)=='2'){ $level2=substr($buffer,2,4); }

		if (substr($buffer,2,4)=='CONC'){ $verwerkt=1; $text['text_text']=$text['text_text'].substr($buffer,7); }
		//if (substr($buffer,2,4)=='CONT'){ $verwerkt=1; $text['text_text']=$text['text_text']."<br>".substr($buffer,7); }
		if (substr($buffer,2,4)=='CONT'){ $verwerkt=1; $text['text_text']=$text['text_text']."\n".substr($buffer,7); }

		// *** New date/ time ***
		//1 _NEW
		//2 DATE 04 AUG 2004
		if ($level1=='_NEW'){
			if (substr($buffer, 0, 6)=='1 _NEW'){ $verwerkt=1; }
			if (substr($buffer, 0, 6)=='2 DATE'){
				$verwerkt=1; $text["new_date"]=substr($buffer,7); }
			if (substr($buffer, 0, 6)=='3 TIME'){
				$verwerkt=1; $text["new_time"]=substr($buffer,7); }
		}

		// *** Changed date/ time ***
		//1 CHAN
		//2 DATE 04 AUG 2004
		if ($level1=='CHAN'){
			if (substr($buffer, 0, 6)=='1 CHAN'){ $verwerkt=1; }
			if (substr($buffer, 0, 6)=='2 DATE'){ $verwerkt=1; $text["changed_date"]=substr($buffer,7); }
			if (substr($buffer, 0, 6)=='3 TIME'){ $verwerkt=1; $text["changed_time"]=substr($buffer,7); }
		}

		//*******************************************************************************************
		// *** Opslaan van niet verwerkte gedcom items ***
		// ******************************************************************************************
		if (isset($_POST['verwerkcontrole'])){
			// *** Onderstaande regels overslaan ***
			if ($buffer=='0 TRLR'){ $verwerkt=1; }
			if ($verwerkt==0){
				$nietverwerkt[]=@$level0."</td><td>".@$level1."<br></td><td>".@$level2."<br></td><td>$buffer";
			}
		}

	} //einde explode

	// *** Aldfaer e-mail adressen krijgen een dubbele @. ***
	$text['text_text'] = str_replace('@@', '@', $text['text_text']);

	// *** Tekst opslaan ***
	$sql="INSERT INTO ".$_SESSION['tree_prefix']."texts SET
		text_gedcomnr='".$text['text_gedcomnr']."',
		text_text='".$text['text_text']."',
		text_new_date='".$text['new_date']."',
		text_new_time='".$text['new_time']."',
		text_changed_date='".$text['changed_date']."',
		text_changed_time='".$text['changed_time']."'
		";
	$result=mysql_query($sql) or die(mysql_error());
}

// ************************************************************************************************
// *** Bronnen verwerken ***
// ************************************************************************************************
function bron($bron_array){
	global $nietverwerkt, $genprogramma;
	$regel=$bron_array;
	$regel2=explode("\n",$regel);
	$buffer=$regel2[0];

	unset ($bron);  //Reset de hele array
	$bron["titel"]="";
	$bron["afkorting"]="";
	$bron["datum"]="";
	$bron["publicatie"]="";
	$bron["plaats"]="";
	$bron["pers_own_code"]="";
	$bron["auteur"]="";
	$bron["onderwerp"]="";
	$bron["nummer"]="";
	$bron["soort"]="";
	$bron["tekst"]="";
	$bron["afbeeldingen"]="";

	$bron["bewaarplaats"]="";
	$bron["archief"]="";
	$bron["bladzijde"]="";
	
	//0 @S1@ SOUR
	$bron["id"]=substr($buffer,3,-6);
	if (isset($_POST['verwerkweergave'])){ print substr($bron["id"],0,-1)." "; }

	// *** Level0 opslaan ***
	$level0=substr($buffer,2);
	$level1="";
	$level2="";

	for ($z=1; $z<=count($regel2)-2; $z++){
		$verwerkt=0;
		//$buffer=addslashes($regel2[$z]);
		$buffer=$regel2[$z];
		$buffer=rtrim($buffer,"\n\r");  //newline strippen
		//echo "BUFFER: ".$z."-".$buffer."!".count($regel2)."<br>";

		// *** Strip starting spaces, for Pro-gen ***
		if ($genprogramma=='PRO-GEN'){ $buffer=ltrim($buffer," "); }

		// *** Level1 opslaan ***
		if (substr($buffer, 0, 1)=='1'){
			$level1=rtrim(substr($buffer,2,4));  //rtrim voor CHR_
			$event='';
			$event2='1';
			$level2="";
		}
		// *** Level2 opslaan ***
		if (substr($buffer, 0, 1)=='2'){ $level2=substr($buffer,2,4); }

		// ***********************************************************************************************
		// *** Bronnen 0 @S1@ SOUR ***
		// ***********************************************************************************************

		// *** Bron bij BK ***
		//0 @S3@ SOUR
		//1 AUTH Voornaam Achternaam
		//1 TITL Test bron
		//1 ABBR Bron afkorting
		//1 PUBL 2007
		//1 TEXT Tekst test bron
		//2 CONT 2e regel
		//2 CONT 3e regel
		//1 NOTE Informatie test bron
		//2 CONT 2e regel
		//2 CONT 3e regel
		//1 REPO @R8@
		//2 CALN Lds nr.
		//2 MEDI Other

		// BK dit wordt NIET verwerkt (bewaarplaats of archief):
		//0 @R8@ REPO
		//1 NAME Plaats
		//1 ADDR Straat 45
		//2 CONT Plaats
		//1 PHON telefoon
		//1 FAX fax
		//1 EMAIL mail
		//1 WWW website

		if (substr($buffer,2,4)=='DATE'){ $verwerkt=1; $bron["datum"]=substr($buffer,7); }
		if (substr($buffer,2,4)=='TITL'){ $verwerkt=1; $bron["titel"]=substr($buffer,7); }
		if (substr($buffer,2,4)=='PLAC'){ $verwerkt=1; $bron["plaats"]=substr($buffer,7); }
		if (substr($buffer,2,4)=='REFN'){ $verwerkt=1; $bron["pers_own_code"]=substr($buffer,7); }
		if (substr($buffer,2,4)=='PUBL'){ $verwerkt=1; $bron["publicatie"]=substr($buffer,7); }  //Voor BK
		if (substr($buffer,2,4)=='TEXT'){
			$verwerkt=1; $bron["tekst"]=$this->voegsamen2($bron["tekst"],substr($buffer,7)); }
		if (substr($buffer,2,4)=='NOTE'){
			$verwerkt=1; $bron["tekst"]=$this->voegsamen2($bron["tekst"],substr($buffer,7)); }
		if (substr($buffer,2,4)=='CONC'){ $verwerkt=1; $bron["tekst"].=$this->conc(substr($buffer,7)); }
		if (substr($buffer,2,4)=='CONT'){ $verwerkt=1; $bron["tekst"].=$this->cont(substr($buffer,7)); }
		if (substr($buffer,2,4)=='SUBJ'){ $verwerkt=1; $bron["onderwerp"]=substr($buffer,7); }
		if (substr($buffer,2,4)=='AUTH'){ $verwerkt=1; $bron["auteur"]=substr($buffer,7); } //Voor BK
		if (substr($buffer,2,4)=='ITEM'){ $verwerkt=1; $bron["nummer"]=substr($buffer,7); }
		if (substr($buffer,2,4)=='KIND'){ $verwerkt=1; $bron["soort"]=substr($buffer,7); }
		if (substr($buffer,2,4)=='ABBR'){ $verwerkt=1; $bron["afkorting"]=substr($buffer,7); } //Voor BK
		//1 PHOTO @#APLAATJES\AKTEMONS.GIF GIF@
		if (substr($buffer,0,7)=='1 PHOTO'){
			$verwerkt=1; $bron["afbeeldingen"]=$this->voegsamen($bron["afbeeldingen"], substr($buffer,11,-5));
		}

		if (substr($buffer,2,4)=='REPO'){ $verwerkt=1; $bron["bewaarplaats"]=substr($buffer,7); }
		if (substr($buffer,2,4)=='CALN'){ $verwerkt=1; $bron["archief"]=substr($buffer,7); }
		if (substr($buffer,2,4)=='PAGE'){ $verwerkt=1; $bron["bladzijde"]=substr($buffer,7); }

		////*** AFBEELDINGSTEKST ********************************
		//if level1='PHOT' then begin //Foto omschrijving
		//  if copy(buf,1,6)='2 DSCR' then afbeeldtekst[nrafbeelding]:=copy(buf,8,length(buf));
		//  if copy(buf,1,6)='2 NAME' then afbeeldtekst[nrafbeelding]:=copy(buf,8,length(buf)); //VOOR ANDERE GEDCOM VERSIES!
		//end;

		//if (level1<>'PHOT') and (copy(buf,3,4)='NAME') then Naam:=copy(buf,8,length(buf));
		//}

		//********************************************************************************************
		// *** Opslaan van niet verwerkte gedcom items ***
		// *******************************************************************************************
		if (isset($_POST['verwerkcontrole'])){
			//Onderstaande regels overslaan
			if ($buffer=='0 TRLR'){ $verwerkt=1; }
			if ($buffer=='1 REPO'){ $verwerkt=1; }
			if ($verwerkt==0){
				$nietverwerkt[]="$level0</td><td>$level1<br></td><td>$level2<br></td><td>$buffer";
			}
		}

	} //einde explode

	// *** Soms staat er geen titel bij een BK stamboom ***
	if ($bron["titel"]==''){
		if ($bron["auteur"]){ $bron["titel"]=$bron["auteur"]; }
		if ($bron["onderwerp"]){ $bron["titel"]=$bron["onderwerp"]; }
	}

	// *** Aldfaer bronnen hebben geen titel en geen onderwerp ***
	if ($bron["titel"]=='' AND $bron["onderwerp"]=='' AND $bron["tekst"]){
		$woorden = explode(" ", $bron["tekst"]);
		// Controleren of er wel meerdere woorden in de tekst staan
		$bron["titel"].=' '.$woorden[0];
		if (isset($woorden[1])){ $bron["titel"].=' '.$woorden[1]; }
		if (count($woorden)>2){ $bron["titel"].=' '.$woorden[2]; }
		if (count($woorden)>3){ $bron["titel"].=' '.$woorden[3]; }
		if (count($woorden)>2){ $bron["titel"].='...'; }
	}

	// *** Als toch nog de titel ontbreekt dan maar ... neer zetten ***
	if ($bron["titel"]==''){ $bron["titel"]="..."; }

	// *** Bronnen opslaan ***
	$sql="INSERT INTO ".$_SESSION['tree_prefix']."sources SET
	source_gedcomnr='".$bron["id"]."',
	source_title='".$bron["titel"]."',
	source_abbr='".$bron["afkorting"]."',
	source_date='".$bron["datum"]."',
	source_publ='".$bron["publicatie"]."',
	source_place='".$bron["plaats"]."',
	source_refn='".$bron["pers_own_code"]."',
	source_auth='".$bron["auteur"]."',
	source_subj='".$bron["onderwerp"]."',
	source_item='".$bron["nummer"]."',
	source_kind='".$bron["soort"]."',
	source_text='".$bron["tekst"]."',
	source_photo='".$bron["afbeeldingen"]."',
	source_repo_name='".$bron["bewaarplaats"]."',
	source_repo_caln='".$bron["archief"]."',
	source_repo_page='".$bron["bladzijde"]."'";
	$result=mysql_query($sql) or die(mysql_error());
}

// ************************************************************************************************
// *** Adressen verwerken ***
// ************************************************************************************************
function adres($adres_array){
	global $nietverwerkt, $genprogramma;
	$regel=$adres_array;
	$regel2=explode("\n",$regel);
	$buffer=$regel2[0];

	// ***********************************************************************************************
	// *** Adressen Haza-Plus ***
	// ***********************************************************************************************
	//0 @R1@ RESI
	//1 ADDR Lange Houtstraat 100
	//1 ZIP 1234 AB
	//1 PLAC Amsterdam
	//1 NOTE Bla bla.
	//1 PHOTO @#Aplaatjes\w-brinke.jpg jpg@
	//2 NAME Brinke

	unset ($adres);  //Reset de hele array
	$adres["adres"]="";
	$adres["zip"]="";
	$adres["plaats"]="";
	$adres["telefoon"]="";
	$adres["tekst"]="";
	$adres["afbeeldingen"]="";
	$adres["gedcomnummer"]=substr($buffer,3,-6);
	if (isset($_POST['verwerkweergave'])){ print substr($adres["id"],0,-1)." "; }

	$level0=substr($buffer,2);
	$level1="";
	$level2="";

	for ($z=1; $z<=count($regel2)-2; $z++){
		$verwerkt=0;
		//$buffer=addslashes($regel2[$z]);
		$buffer=$regel2[$z];
		$buffer=rtrim($buffer,"\n\r");  //newline strippen
		//echo "BUFFER: ".$z."-".$buffer."!".count($regel2)."<br>";

		// *** Strip starting spaces, for Pro-gen ***
		if ($genprogramma=='PRO-GEN'){ $buffer=ltrim($buffer," "); }

		// *** Level1 opslaan ***
		if (substr($buffer, 0, 1)=='1'){
			$level1=rtrim(substr($buffer,2,4));  //rtrim voor CHR_
			$event='';
			$event2='1';
			$level2="";
		}
		// *** Level2 opslaan ***
		if (substr($buffer, 0, 1)=='2'){ $level2=substr($buffer,2,4); }

		if (substr($buffer,2,4)=='ADDR'){ $verwerkt=1; $adres["adres"]=substr($buffer,7); }
		if (substr($buffer,2,4)=='ZIP '){ $verwerkt=1; $adres["datum"]=substr($buffer,7); }  //Voor BK
		if (substr($buffer,2,4)=='PLAC'){ $verwerkt=1; $adres["plaats"]=substr($buffer,7); }
		if (substr($buffer,2,4)=='PHON'){ $verwerkt=1; $adres["telefoon"]=substr($buffer,7); }
		if (substr($buffer,2,4)=='NOTE'){ $verwerkt=1; $adres["tekst"]=substr($buffer,7); }
		if (substr($buffer,2,4)=='CONC'){ $verwerkt=1; $adres["tekst"].=$this->conc(substr($buffer,7)); }
		if (substr($buffer,2,4)=='CONT'){ $verwerkt=1; $adres["tekst"].=$this->cont(substr($buffer,7)); }
		//1 PHOTO @#APLAATJES\AKTEMONS.GIF GIF@
		if (substr($buffer,0,7)=='1 PHOTO'){
			$verwerkt=1; $adres["afbeeldingen"]=$this->voegsamen($adres["afbeeldingen"], substr($buffer,11,-5)); }

		//********************************************************************************************
		// *** Opslaan van niet verwerkte gedcom items ***
		// *******************************************************************************************
		if (isset($_POST['verwerkcontrole'])){
			//Onderstaande regels overslaan
			if ($buffer=='0 TRLR'){ $verwerkt=1; }

			if ($verwerkt==0){
				$nietverwerkt[]="$level0</td><td>$level1<br></td><td>$level2<br></td><td>$buffer";
			}
		}

	} //einde explode

	// *** Adressen opslaan ***
	$sql="INSERT INTO ".$_SESSION['tree_prefix']."addresses SET
	address_gedcomnr='".$adres["gedcomnummer"]."',
	address_address='".$adres["adres"]."',
	address_zip='".$adres["zip"]."',
	address_place='".$adres["plaats"]."',
	address_phone='".$adres["telefoon"]."',
	address_text='".$adres["tekst"]."',
	address_photo='".$adres["afbeeldingen"]."'";
	$result=mysql_query($sql) or die(mysql_error());
}

} // einde class

?>
Return current item: HuMo-gen