|
|
|
@ -46,6 +46,37 @@ function c_personSearch1 (fname, sname, fnameAlt, snameAlt, names, person) |
|
|
|
this.sNameBest = new Array (-1, -1, null); |
|
|
|
this.fNameBest = new Array (-1, -1, null); |
|
|
|
|
|
|
|
this.snameIdx = -1; |
|
|
|
this.fnameIdx = -1; |
|
|
|
this.snameMaxIdx = -1; |
|
|
|
this.fnameMaxIdx = -1; |
|
|
|
this.snameDists = new Array (); |
|
|
|
this.fnameDists = new Array (); |
|
|
|
|
|
|
|
this.incSnameIdx = function () |
|
|
|
{ |
|
|
|
if (this.snameIdx < this.snameMaxIdx-1) |
|
|
|
this.snameIdx ++; |
|
|
|
} |
|
|
|
|
|
|
|
this.incFnameIdx = function () |
|
|
|
{ |
|
|
|
if (this.fnameIdx < this.fnameMaxIdx-1) |
|
|
|
this.fnameIdx ++; |
|
|
|
} |
|
|
|
|
|
|
|
this.decSnameIdx = function () |
|
|
|
{ |
|
|
|
if (this.snameIdx >= 0) |
|
|
|
this.snameIdx --; |
|
|
|
} |
|
|
|
|
|
|
|
this.decFnameIdx = function () |
|
|
|
{ |
|
|
|
if (this.fnameIdx >= 0) |
|
|
|
this.fnameIdx --; |
|
|
|
} |
|
|
|
|
|
|
|
this.show = function (id) |
|
|
|
{ |
|
|
|
var node = document.getElementById (id); |
|
|
|
@ -56,9 +87,42 @@ function c_personSearch1 (fname, sname, fnameAlt, snameAlt, names, person) |
|
|
|
|
|
|
|
this.hide = function (id) |
|
|
|
{ |
|
|
|
var node = document.getElementById (id); |
|
|
|
var node = document.getElementById (id); |
|
|
|
var inField = |
|
|
|
node.parentNode.parentNode.getElementsByTagName ('input')[0]; |
|
|
|
var idx = -1; |
|
|
|
var dists = new Array (); |
|
|
|
|
|
|
|
node.parentNode.style.visibility = 'hidden'; |
|
|
|
|
|
|
|
switch (inField.getAttribute ('id')) |
|
|
|
{ |
|
|
|
case 'personSearch1_fname': |
|
|
|
idx = this.fnameIdx; |
|
|
|
if (idx != -1) |
|
|
|
{ |
|
|
|
dists = this.fnameDists[idx].split ('::'); |
|
|
|
this.fNameBest = new Array (0, 0, dists[2]); |
|
|
|
inField.value = dists[2]; |
|
|
|
} |
|
|
|
break; |
|
|
|
case 'personSearch1_sname': |
|
|
|
idx = this.snameIdx; |
|
|
|
if (idx != -1) |
|
|
|
{ |
|
|
|
dists = this.snameDists[idx].split ('::'); |
|
|
|
this.sNameBest = new Array (0, 0, dists[2]); |
|
|
|
inField.value = dists[2]; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (this.person != null) |
|
|
|
if (this.fNameBest[1] == 0) |
|
|
|
this.person.update ( |
|
|
|
this.persons[this.sNameBest[2]][this.fNameBest[2]]); |
|
|
|
else |
|
|
|
this.person.empty (); |
|
|
|
|
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|
@ -73,7 +137,7 @@ function c_personSearch1 (fname, sname, fnameAlt, snameAlt, names, person) |
|
|
|
return this.hide (altId); |
|
|
|
} |
|
|
|
|
|
|
|
this.genAlternativesList = function (bestFit, dists) |
|
|
|
this.genAlternativesList = function (bestFit, dists, idx) |
|
|
|
{ |
|
|
|
if (dists.length > 0) |
|
|
|
// there are caculated distances for surnames
|
|
|
|
@ -93,12 +157,16 @@ function c_personSearch1 (fname, sname, fnameAlt, snameAlt, names, person) |
|
|
|
|
|
|
|
// create list entries
|
|
|
|
newLi = document.createElement ('li'); |
|
|
|
|
|
|
|
if (i == idx) |
|
|
|
newLi.className = 'bgc-tt1-selItem'; |
|
|
|
|
|
|
|
liTxt = document.createTextNode (sMatch[2]); |
|
|
|
newLi.appendChild (liTxt); |
|
|
|
bestFit.appendChild (newLi); |
|
|
|
i=i+1; |
|
|
|
|
|
|
|
if (i >= bestMatch[1]) |
|
|
|
if (i >= bestMatch[1] && sMatch[1] > bestMatch[1]) |
|
|
|
// dont show more than best match distance matches.
|
|
|
|
break; |
|
|
|
} |
|
|
|
@ -115,23 +183,33 @@ function c_personSearch1 (fname, sname, fnameAlt, snameAlt, names, person) |
|
|
|
return bestMatch; |
|
|
|
} |
|
|
|
|
|
|
|
this.altSurnames = function () |
|
|
|
this.altSurnames = function (_event) |
|
|
|
{ |
|
|
|
var surname = document.getElementById (this.surname); |
|
|
|
var sNameAlt = document.getElementById (this.sNameAlt); |
|
|
|
var dists = fittingStrings (surname.value, this.surnames, false); |
|
|
|
|
|
|
|
this.sNameBest = this.genAlternativesList (sNameAlt, dists); |
|
|
|
this.snameDists = fittingStrings (surname.value, this.surnames, false); |
|
|
|
if (this.snameDists.length > 0) |
|
|
|
this.snameMaxIdx = this.snameDists[0].split ('::')[1]; |
|
|
|
else |
|
|
|
this.snameMaxIdx = -1; |
|
|
|
|
|
|
|
this.sNameBest = |
|
|
|
this.genAlternativesList (sNameAlt, this.snameDists, this.snameIdx); |
|
|
|
this.updField (surname, this.sNameBest, this.sNameAlt) |
|
|
|
|
|
|
|
if (this.sNameBest[1] == 0) |
|
|
|
{ |
|
|
|
var firstname = document.getElementById (this.firstname); |
|
|
|
var dists = fittingStrings ( |
|
|
|
this.fnameDists = fittingStrings ( |
|
|
|
firstname.value, this.firstnames[this.sNameBest[2]], false); |
|
|
|
if (this.fnameDists.length > 0) |
|
|
|
this.fnameMaxIdx = this.fnameDists[0].split ('::')[1]; |
|
|
|
else |
|
|
|
this.fnameMaxIdx = -1; |
|
|
|
|
|
|
|
if (dists.length > 0) |
|
|
|
this.fNameBest = dists[0].split ('::'); |
|
|
|
if (this.fnameDists.length > 0) |
|
|
|
this.fNameBest = this.fnameDists[0].split ('::'); |
|
|
|
|
|
|
|
if (this.person != null) |
|
|
|
if (this.fNameBest[1] == 0) |
|
|
|
@ -150,7 +228,7 @@ function c_personSearch1 (fname, sname, fnameAlt, snameAlt, names, person) |
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|
this.altFirstnames = function (person) |
|
|
|
this.altFirstnames = function () |
|
|
|
{ |
|
|
|
var firstname = document.getElementById (this.firstname); |
|
|
|
var fNameAlt = document.getElementById (this.fNameAlt); |
|
|
|
@ -158,13 +236,18 @@ function c_personSearch1 (fname, sname, fnameAlt, snameAlt, names, person) |
|
|
|
if (this.sNameBest[1] == 0) |
|
|
|
{ |
|
|
|
var surname = document.getElementById (this.surname); |
|
|
|
var dists = fittingStrings ( |
|
|
|
this.fnameDists = fittingStrings ( |
|
|
|
firstname.value, this.firstnames[this.sNameBest[2]], false); |
|
|
|
if (this.fnameDists.length > 0) |
|
|
|
this.fnameMaxIdx = this.fnameDists[0].split ('::')[1]; |
|
|
|
else |
|
|
|
this.fnameMaxIdx = -1; |
|
|
|
} |
|
|
|
else |
|
|
|
dists = new Array (); |
|
|
|
this.fnameDists = new Array (); |
|
|
|
|
|
|
|
this.fNameBest = this.genAlternativesList (fNameAlt, dists); |
|
|
|
this.fNameBest = |
|
|
|
this.genAlternativesList (fNameAlt, this.fnameDists, this.fnameIdx); |
|
|
|
this.updField (firstname, this.fNameBest, this.fNameAlt) |
|
|
|
|
|
|
|
if (this.person != null) |
|
|
|
@ -177,3 +260,59 @@ function c_personSearch1 (fname, sname, fnameAlt, snameAlt, names, person) |
|
|
|
return false; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
function personSearch1AltFirstnameHandler (_event) |
|
|
|
{ |
|
|
|
if (_event == undefined) |
|
|
|
_event = window.event; |
|
|
|
|
|
|
|
if (_event.which) |
|
|
|
var keycode = _event.which; |
|
|
|
else if (_event.keyCode) |
|
|
|
var keycode = _event.keyCode; |
|
|
|
|
|
|
|
var dists = pSearch1.fnameDists; |
|
|
|
|
|
|
|
// pSearch1 wird im php personSearch1.js angelegt.
|
|
|
|
switch (keycode) |
|
|
|
{ |
|
|
|
case 38: |
|
|
|
pSearch1.decFnameIdx (); |
|
|
|
break; |
|
|
|
case 40: |
|
|
|
pSearch1.incFnameIdx (); |
|
|
|
break; |
|
|
|
default: |
|
|
|
pSearch1.fnameIdx = -1; |
|
|
|
} |
|
|
|
|
|
|
|
pSearch1.altFirstnames (); |
|
|
|
} |
|
|
|
|
|
|
|
function personSearch1AltSurnameHandler (_event) |
|
|
|
{ |
|
|
|
if (_event == undefined) |
|
|
|
_event = window.event; |
|
|
|
|
|
|
|
if (_event.which) |
|
|
|
var keycode = _event.which; |
|
|
|
else if (_event.keyCode) |
|
|
|
var keycode = _event.keyCode; |
|
|
|
|
|
|
|
var dists = pSearch1.snameDists; |
|
|
|
|
|
|
|
// pSearch1 wird im php personSearch1.js angelegt.
|
|
|
|
switch (keycode) |
|
|
|
{ |
|
|
|
case 38: |
|
|
|
pSearch1.decSnameIdx (); |
|
|
|
break; |
|
|
|
case 40: |
|
|
|
pSearch1.incSnameIdx (); |
|
|
|
break; |
|
|
|
default: |
|
|
|
pSearch1.snameIdx = -1; |
|
|
|
} |
|
|
|
|
|
|
|
pSearch1.altSurnames (); |
|
|
|
} |