/* JavaScript for 'Website Sjabloon'
* ----------------------------------------------------
* This document containts ALL the general functions 
* that are required to work with this website.
*
* I tried to make coding as easy as possible, but if
* you have any questions concerning this don't hesitate
* to send me an e-mail.
*
*/
var sorteermethode = 0;
var aantalLetters  = 1;
var personen       = new Array;
var kw_tabel       = new Array;

// Object: Person (Needed for 'Zoek')
function Person( nm, tv, vn, rn, lnk, bdt, bplc, ddt, dplc ) {

this.xAchternaam    = nm;                                // Surname
this.xTussenvoegsel = tv === "" ? "" : tv + " ";         // Infix
this.xVoornaam      = vn;                                // Name
this.xRoepnaam      = rn;                                // Call name
this.xURLLink       = lnk;                               // Link
this.xGeboorteDT    = bdt === "" ? "" : "* " + bdt;      // Birth date
this.xGeboortePLC   = bplc;                              // Birth place
this.xSterfDT       = ddt === "" ? "" : "&#134; " + ddt; // Dead date
this.xSterfDTjs     = ddt === "" ? "" : "† " + ddt;      // Dead date (for JS)
this.xSterfPLC      = dplc;                              // Dead place

this.xDisplayName   = rn === "" ? vn === "" ? "(onbekend)" : vn : rn;
}

// Object: Record (needed for the 'kwartierstaat')
function Record(Kwartiernr, Naam, Doopplaats, Doopdatum, Geboorteplaats, Geboortedatum, Sterfplaats, Sterfdatum, Beroep, Relatie , URLLink) {
this.xKwartiernr     = Kwartiernr;
this.xNaam           = Naam;
this.xGeboorteplaats = Geboorteplaats;
this.xGeboortedatum  = Geboortedatum;
this.xDoopplaats     = Doopplaats;
this.xDoopdatum      = Doopdatum;
this.xSterfplaats    = Sterfplaats;
this.xSterfdatum     = Sterfdatum;
this.xBeroep         = Beroep;
this.xRelatie        = Relatie;
this.xLink           = URLLink;
}

// Generic function to find HTML Objects within a page
function getObject (id) {
if(document.getElementById) return document.getElementById(id);
else if(document.all) return document.all[id];
else if(document.layers) return findObject(id,document);
}

function findObject (name,doc) {
for(var i=0; i<doc.layers.length; i++) {
var res = doc.layers[i];
if(res.name==name) return res;
if(res.document.layers.length>0){      
res=findObject(name,res.document);
if(res!=null) return res;
}
}
return null;
}

// Generic Write function
function writeText(id,text){
if(document.layers) with(getObject(id).document){open();write(text);close();}
else {getObject(id).innerHTML = text};
}

// build_kwblad: this function is responsible for displaying the 'kwartierbladen'
function build_kwblad(start_person) {
var probandnr = start_person;
var previousnr = getObject("kwbld_1").firstChild.innerText;
var kw_person;
var optext;

for (var i=0;i<16;i++) {			// 1 kwartierblad toont maar 15 personen
if (i >= 15) break;

kw_person = getPerson(probandnr);	// Wie is de proband?

if (typeof kw_person.xKwartiernr == 'undefined') {
writeText("kwbld_"+(i+1),"<p style=\"text-align:right;font-size:smaller;\">NN</p><strong>NN</strong>");

if (((i+1)%2) == 0) {
writeText("kwtr_" + (i+1) + "_" +(i+2),"<p style=\"text-align:center;font-size:smaller;\">NN</p>");
}

} else {
optext = "<p style=\"text-align:right;font-size:smaller;cursor:pointer;cursor:hand;\" onclick=\"build_kwblad('" + kw_person.xKwartiernr + "');\">" + kw_person.xKwartiernr + "</p><strong><a href=\"persoonskaarten\\" + kw_person.xLink + "\" style=\"text-decoration:none;color:#000000;\">" + kw_person.xNaam + "</a></strong><br /><br />" + kw_person.xBeroep + "<br /><br />";
if (kw_person.xGeboorteplaats != "" || kw_person.xGeboortedatum != "" ) {
optext = optext + " geb. " + kw_person.xGeboorteplaats + " " + kw_person.xGeboortedatum;
}
else if (kw_person.xDoopplaats != "" || kw_person.xDoopdatum != "" ) {
optext = optext + " ged. " + kw_person.xDoopplaats + " " + kw_person.xDoopdatum;
}

if (kw_person.xSterfplaats != "" || kw_person.xSterfdatum != "" ) {
optext = optext + "<br /><br />overl. " + kw_person.xSterfplaats + " " + kw_person.xSterfdatum;
}

writeText("kwbld_"+(i+1), optext );

if (((i+1)%2) == 0) {
writeText("kwtr_" + (i+1) + "_" +(i+2),"<p style=\"text-align:center;font-size:smaller;\">" + kw_person.xRelatie + "</p>");
}

}

if (i == 0) {
probandnr = probandnr * 2;
} else if (i == 2) {
probandnr = (probandnr-1)*2;
} else if (i == 6) {
probandnr = (probandnr-3)*2;
} else {
probandnr = probandnr +1;
}
}

kw_person = getPerson(previousnr);

writeText("prev_pers", "Terug naar: <a href=\"javascript:build_kwblad('" + previousnr + "');\">" + kw_person.xNaam + "</a>");

}

function getPerson(id) {
for (i=0; i<kw_tabel.length;i++) {

if (kw_tabel[i].xKwartiernr == id) {
return kw_tabel[i];
break;
}
}
return false;
}    

function toonGebOvl(beroep, gebplt, gebdat, chrplt, chrdat, ovlplt, ovldat) {
if (beroep != "") document.write(", " + beroep);
if (gebdat != "") document.write(", geb. op " + gebdat + " te " + gebplt);
if (chrdat != "") document.write(", ged. op " + chrdat + " te " + chrplt);
if (ovldat != "") document.write(", ovl. op " + ovldat + " te " + ovlplt);
document.write(".<br>");
}

function writeAlbumToggleButtons(AlbumArray) {

if ( AlbumArray.length > 1 ) {
document.writeln ("</td><td align=\"left\" valign=\"middle\">");
document.writeln ("<form name=\"form1\">");
document.writeln ("<input type=\"button\" value=\"<\" alt=\"vorige\" onclick=\"volgendefoto(-1);\" name=\"button\">");
document.writeln ("<input type=\"button\" value=\">\" alt=\"volgende\" onClick=\"volgendefoto(1);\" name=\"button2\">");
document.writeln ("</form>");
}

}

function volgendefoto(x) {
var TheImage;
teller  =   teller+x;
if(teller>=album.length) teller = album.length-1;
if(teller<0) teller = 0;

TheImage = getObject("foto_placeholder");
TheImage.src=album[teller];
}

function EnlargeImage(TheImage) {
var ImgToEnlarge;

ImgToEnlarge     = new Image();
ImgToEnlarge.src = TheImage.href;

open(ImgToEnlarge.href, 'ImageHolder', 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbar=no,resizable=no,copyhistory=yes,width=' + (ImgToEnlarge.width +15) + ',height=' + (ImgToEnlarge.height+20) + '');
}

function regexp_quote ( str ) { 
var chars = [ '/', '+', '.', '{', '[', '(' ]; 
for ( a in chars ) { 
str.replace ( chars[a], '\\' + chars[a] );
} 
return str; 
} 
