
/* treeutils.js */
var $trees;if("undefined"==typeof TGN){$trees=YAHOO.namespace("Ancestry.Trees")}else{$trees=TGN.namespace("TGN.Ancestry.Trees")}$trees.res={resourceStrings:null,getString:function(a){var b=(null!=$trees.res.resourceStrings)?$trees.res.resourceStrings[a]:null;return(b)?b:"$$"+a},setString:function(a,b){if(!$trees.res.resourceStrings){$trees.res.resourceStrings={}}$trees.res.resourceStrings[a]=b}};$trees.content={objs:null,getObject:function(a){return(null!=$trees.content.objs)?$trees.content.objs[a]:null},setObject:function(a,b){if(!$trees.content.objs){$trees.content.objs={}}$trees.content.objs[a]=b},getPersonKey:function(b,a){return"person_"+a.toString()},setPerson:function(c,a,b){$trees.content.setObject($trees.content.getPersonKey(c,a),b)},getPerson:function(b,a){return $trees.content.getObject($trees.content.getPersonKey(b,a))},addPerson:function(h,o,a,d,b,q,f,e,g,k,p,n,c,j,i){var l=/"/g;k=k.replace(l,"'");var m={typ:h,rel:o,name:a,gname:d,sname:b,birth:q,birthPlace:f,death:e,deathPlace:g,linkUrl:k,imgUrl:p,gender:n,sid:c,pid:j,tid:i};$trees.content.setPerson(i,j,m);return m}};$trees.util={gotoTemplate:null,setGotoTemplate:function(a){$trees.util.gotoTemplate=a},gotoPerson:function(c,a){if($trees.util.gotoTemplate!=null&&a!=null){var b=$trees.util.gotoTemplate.replace("{t}",c).replace("{p}",a);window.location.href=b}},getShortName:function(b){if(b&&40<b.length){var a=[];a=b.split(" ");b=a[0].charAt(0)+" ";b+=a[a.length-1]}return b},getYearFromDate:function(a){var c="";if(a&&""!=a){var b=validDateSimple(a);if(0==b[0]){c=b[1]}}return c},imposeMaxLength:function(b,a){if(b.value.length>a){b.value=b.value.substring(0,a)}return true},htmlEncode:function(a){var c=document.createElement("div");var b=document.createTextNode(a);c.appendChild(b);return c.innerHTML},htmlDecode:function(a){var b=document.createElement("div");b.innerHTML=a.replace(/<\/?[^>]+>/gi,"");return b.childNodes[0]?b.childNodes[0].nodeValue:""}};
/* hints.js */
function hintHoverUpdate(g,f,d){var e=document.getElementById("hintsTitle"+d);var a=document.getElementById("hintRecordLink"+d);var c=document.getElementById("hintPersonaLink"+d);var b=document.getElementById("hintObjectLink"+d);if(a!=null&&c!=null&&b!=null){if(f){e.style.display="none";a.style.display="none";c.style.display="none";b.style.display="none"}}}function getIEVersion(){version=0;if(navigator.appVersion.indexOf("MSIE")!=-1){var a=navigator.appVersion.split("MSIE");version=parseFloat(a[1])}return version}function hintHover(){showPop("hintHoverDiv")}function hintOut(){hidePop("hintHoverDiv")}var hintURLArray=new Array("","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","");var hintPidArray=new Array("","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","");var hintURLArrayIndex=0;var hintRequestInProgress=false;var onHintRequestComplete=null;function OnHintComplete(m){hintRequestInProgress=false;var w=m.responseXML.documentElement;if(w!=null){var k=w.getElementsByTagName("personaCount")[0];if(k!=null){var n=k.firstChild.data;var i=parseInt(n);k=w.getElementsByTagName("pid")[0];if(k!=null){var l=k.firstChild.data;k=w.getElementsByTagName("recordCount")[0];if(k!=null){n=k.firstChild.data;var c=parseInt(n);k=w.getElementsByTagName("objectCount")[0];if(k!=null){n=k.firstChild.data;var e=parseInt(n);var s=document.getElementById("hintIcon"+l);var v=document.getElementById("hintWorkingIcon"+l);if(s!=null){s.style.display="none"}if(v!=null){v.style.display="none"}if((c>0||i>0)&&s!=null){s.style.display="inline"}var q=document.getElementById("hintRecordCount"+l);var a=document.getElementById("hintPersonaCount"+l);var h=document.getElementById("hintObjectCount"+l);var b=document.getElementById("hintStatus"+l);if(q!=null){q.value=c}if(a!=null){a.value=i}if(h!=null){h.value=e}if(b!=null){b.value=1}var j=document.getElementById("hintHover"+l);if(j==null){j=document.getElementById("hintHover");if(j!=null){l=""}}var t=document.getElementById("hintsTitle"+l);var f=document.getElementById("hintRecordLink"+l);var g=document.getElementById("hintPersonaLink"+l);var p=document.getElementById("hintObjectLink"+l);var u=document.getElementById("phSpan"+l);var d=document.getElementById("rhSpan"+l);var r=document.getElementById("ohSpan"+l);if(t!=null&&f!=null&&g!=null&&p!=null&&u!=null&&d!=null&&r!=null){if(c>0||i>0||e>0){t.style.display=""}else{t.style.display="none"}if(c>0){f.style.display="";d.innerHTML=c}else{f.style.display="none"}if(i>0){g.style.display="";u.innerHTML=i}else{g.style.display="none"}if(e>0){p.style.display="";r.innerHTML=e}else{p.style.display="none"}if(j!=null){if(c>0||i>0||e>0){j.style.display=""}else{j.style.display="none"}}}if(typeof onHintRequestComplete=="function"){onHintRequestComplete(l)}}}}}}initiateHintRequest()}function OnHintError(l){hintRequestInProgress=false;var u=l.responseXML.documentElement;if(u!=null){var q=u.getElementsByTagName("throttled")[0];var j=u.getElementsByTagName("pid")[0];if(j!=null){var k=j.firstChild.data;var d=0;var h=0;var f=0;var s=document.getElementById("hintWorkingIcon"+k);var p=document.getElementById("hintIcon"+k);var m=document.getElementById("hintRecordCount"+k);var a=document.getElementById("hintPersonaCount"+k);var g=document.getElementById("hintObjectCount"+k);var c=document.getElementById("hintStatus"+k);if(m!=null&&m.value.length>0){d=parseInt(m.value)}if(a!=null&&a.value.length>0){h=parseInt(a.value)}if(g!=null&&g.value.length>0){f=parseInt(g.value)}if(c!=null){c.value=1}var i=document.getElementById("hintHover"+k);if(i==null){i=document.getElementById("hintHover");if(i!=null){k=""}}else{var r=document.getElementById("phSpan"+k);var e=document.getElementById("rhSpan"+k);var n=document.getElementById("ohSpan"+k);h=parseInt(r.innerHTML.length>0?r.innerHTML:"0");d=parseInt(e.innerHTML.length>0?e.innerHTML:"0");f=parseInt(n.innerHTML.length>0?n.innerHTML:"0")}var t=d+h+f;if(s!=null){s.style.display="none"}if(p!=null){p.style.display=(t>0)?"":"none"}if(i!=null){i.style.display=(t>0)?"":"none"}if(q!=null){var b=document.getElementById("throttledMsgDiv");if(b!=null){b.style.display=""}}}}initiateHintRequest()}function addHintURL(c,b,a){hintURLArray[c]=b;hintPidArray[c]=a}function clearHintURL(){hintURLArray=new Array("","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","");hintPidArray=new Array("","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","");hintURLArrayIndex=0}function setOnHintRequestComplete(a){onHintRequestComplete=a}function initiateHintRequests(){initiateHintRequest()}function initiateHintRequest(){if(hintRequestInProgress==false){var b=hintURLArray[hintURLArrayIndex];while(hintURLArrayIndex<31&&b.length==0){hintURLArrayIndex++;b=hintURLArray[hintURLArrayIndex]}if(hintURLArrayIndex<31&&b.length>0){hintRequestInProgress=true;YAHOO.util.Connect.asyncRequest("GET",hintURLArray[hintURLArrayIndex],{success:OnHintComplete,failure:OnHintError});var c=document.getElementById("hintWorkingIcon"+hintPidArray[hintURLArrayIndex]);if(c!=null){c.style.display=""}var d=document.getElementById("hintIcon"+hintPidArray[hintURLArrayIndex]);if(d!=null){d.style.display="none"}var e=document.getElementById("hintHover"+hintPidArray[hintURLArrayIndex]);if(e!=null){e.style.display=""}var a=document.getElementById("hintStatus"+hintPidArray[hintURLArrayIndex]);if(a!=null){a.value=0}hintURLArrayIndex++}}};
/* validation.js */
var monthNamesAll=null;var monthAbbrs=null;var aboutAbbr=null;var beforeAbbr=null;var afterAbbr=null;var betweenAbbr=null;var conjunctionAbbr=null;var rangeAbbr=null;var unknown=null;var monthDayYearOrder=null;var warnDateYearTooBig=null;var warnDateTwoMonths=null;var warnDateDayWithoutMonth=null;var warnDateTwoDays=null;var warnDateTwoYears=null;var warnDateDayTooLarge=null;var warnDateMonthTooLarge=null;var warnDateInvalidMonth=null;var warnDateBirthBeforeMother=null;var warnDateBirthAfterMother=null;var warnDateBirthBeforeFather=null;var warnDateBirthAfterFather=null;var warnDateBirth120BeforeDeath=null;var warnDateDeath120AfterBirth=null;var warnDateBeforeBirth=null;var warnDateAfterDeath=null;var warnDateMayBeWrong=null;var warnStillUseIt=null;var warnOfTheSpouse=null;var badBirthDate=null;var badDeathDate=null;var badMarriageDate=null;var warnLastName=null;var warnNameFather=null;var warnNameMaiden=null;var invalidNameChars=null;var errorNameInvalidChar=null;function initValidationStrings(){monthNamesAll=[$trees.res.getString("g.monthNamesJan"),$trees.res.getString("g.monthNamesFeb"),$trees.res.getString("g.monthNamesMar"),$trees.res.getString("g.monthNamesApr"),$trees.res.getString("g.monthNamesMay"),$trees.res.getString("g.monthNamesJun"),$trees.res.getString("g.monthNamesJul"),$trees.res.getString("g.monthNamesAug"),$trees.res.getString("g.monthNamesSep"),$trees.res.getString("g.monthNamesOct"),$trees.res.getString("g.monthNamesNov"),$trees.res.getString("g.monthNamesDec")];monthAbbrs=[$trees.res.getString("g.monthAbbrsJan"),$trees.res.getString("g.monthAbbrsFeb"),$trees.res.getString("g.monthAbbrsMar"),$trees.res.getString("g.monthAbbrsApr"),$trees.res.getString("g.monthAbbrsMay"),$trees.res.getString("g.monthAbbrsJun"),$trees.res.getString("g.monthAbbrsJul"),$trees.res.getString("g.monthAbbrsAug"),$trees.res.getString("g.monthAbbrsSep"),$trees.res.getString("g.monthAbbrsOct"),$trees.res.getString("g.monthAbbrsNov"),$trees.res.getString("g.monthAbbrsDec")];aboutAbbr=$trees.res.getString("g.dateAboutAbbr");beforeAbbr=$trees.res.getString("g.dateBeforeAbbr");afterAbbr=$trees.res.getString("g.dateAfterAbbr");betweenAbbr=$trees.res.getString("g.dateBetweenAbbr");conjunctionAbbr=$trees.res.getString("g.dateConjunctionAbbr");rangeAbbr=$trees.res.getString("g.dateRangeAbbr");unknown=$trees.res.getString("g.unknown");monthDayYearOrder=$trees.res.getString("g.monthDayYearOrder");warnDateYearTooBig=$trees.res.getString("g.warnDateYearTooBig");warnDateTwoMonths=$trees.res.getString("g.warnDateTwoMonths");warnDateDayWithoutMonth=$trees.res.getString("g.warnDateDayWithoutMonth");warnDateTwoDays=$trees.res.getString("g.warnDateTwoDays");warnDateTwoYears=$trees.res.getString("g.warnDateTwoYears");warnDateDayTooLarge=$trees.res.getString("g.warnDateDayTooLarge");warnDateMonthTooLarge=$trees.res.getString("g.warnDateMonthTooLarge");warnDateInvalidMonth=$trees.res.getString("g.warnDateInvalidMonth");warnDateBirthBeforeMother=$trees.res.getString("g.warnDateBirthBeforeMother");warnDateBirthAfterMother=$trees.res.getString("g.warnDateBirthAfterMother");warnDateBirthBeforeFather=$trees.res.getString("g.warnDateBirthBeforeFather");warnDateBirthAfterFather=$trees.res.getString("g.warnDateBirthAfterFather");warnDateBirth120BeforeDeath=$trees.res.getString("g.warnDateBirth120BeforeDeath");warnDateDeath120AfterBirth=$trees.res.getString("g.warnDateDeath120AfterBirth");warnDateBeforeBirth=$trees.res.getString("g.warnDateBeforeBirth");warnDateAfterDeath=$trees.res.getString("g.warnDateAfterDeath");warnDateMayBeWrong=$trees.res.getString("g.warnDateMayBeWrong");warnStillUseIt=$trees.res.getString("g.warnStillUseIt");warnOfTheSpouse=$trees.res.getString("g.warnOfTheSpouse");badBirthDate=$trees.res.getString("g.badBirthDate");badDeathDate=$trees.res.getString("g.badDeathDate");badMarriageDate=$trees.res.getString("g.badMarriageDate");warnLastName=$trees.res.getString("g.warnLastName");warnNameFather=$trees.res.getString("g.warnNameFather");warnNameMaiden=$trees.res.getString("g.warnNameMaiden");invalidNameChars=$trees.res.getString("g.invalidNameCharsJS");errorNameInvalidChar=$trees.res.getString("g.errorNameInvalidChar")}function validDate(g,e,b,h,a,i,d,k,j){var n=g.toLowerCase();var f=false;var m;var l=[0,""];if(n.length>0){if(n.indexOf(unknown.toLowerCase())>=0){n=""}if(!isDigit(n.charAt(0))){var c=parseModifier(n,aboutAbbr);if(c.length<n.length){n=c}else{c=parseModifier(n,beforeAbbr);if(c.length<n.length){n=c}else{c=parseModifier(n,afterAbbr);if(c.length<n.length){n=c}else{if(j){c=parseModifier(n,betweenAbbr);if(c.length<n.length){n=c;f=true}}}}}}if(j){if(f){m=new Array(2);m=splitDateRange(n,true)}else{m=new Array(2);m=splitDateRange(n,false)}if(m[0].length>0&&m[1].length>0){l=validDate(m[0],e,b,h,a,i,d,k);if(l[0]==0){l=validDate(m[1],e,b,h,a,i,d,k)}return l}}l=validateDate(n);if(l[0]==0&&l[1].length>0&&e.length>0){l[0]=checkDates(l[1],l[2],l[3],e,b,h,a,i,d,k)}if(l[0]!=0){l[1]=getWarning(l[0])}}return l}function getWarning(a){switch(a){case 1:return warnDateYearTooBig;case 2:return warnDateTwoMonths;case 3:return warnDateDayWithoutMonth;case 4:return warnDateTwoDays;case 5:return warnDateTwoMonths;case 6:return warnDateTwoYears;case 7:return warnDateDayTooLarge;case 8:return warnDateMonthTooLarge;case 9:return warnDateInvalidMonth;case 101:return warnDateBirthBeforeMother;case 102:return warnDateBirthAfterMother;case 103:return warnDateBirthBeforeFather;case 104:return warnDateBirthAfterFather;case 105:return warnDateBirth120BeforeDeath;case 106:return warnDateDeath120AfterBirth;case 107:return warnDateBeforeBirth;case 108:return warnDateAfterDeath;default:return""}}function splitDateRange(a,e){var c=new Array(2);c[0]="";c[1]="";var g=(e)?conjunctionAbbr:rangeAbbr;var d=g.split("|");for(var b=0;b<d.length;b++){var f=d[b];var h=a.indexOf(f);if(h>0&&a.length>h+f.length){if(a.indexOf(f,h+1)==-1&&(!isLetter(a.charAt(h))||!isLetter(a.charAt(h-1)))&&(!isLetter(a.charAt(h+f.length))||!isLetter(a.charAt(h+f.length-1)))){c[0]=a.substring(0,h);c[1]=a.substring(h+f.length)}}}return c}function validDateOwt(a){return validDate(a,"","","","","","","",false)}function validDateSimple(a){return validDate(a,"","","","","","","",true)}function validateDate(a){var h=new Array(4);var b=getTokens(a);var s=new Array();var p=new Array();var j=0;var n=new Array();var l=0;var e=0;var r=0;var k=false;var m=new Date();var q=m.getFullYear();b=stripDayModifier(b);for(var g=0;g<b.length;g++){var c=b[g];if(isDigit(c.charAt(0))){if(c<=31){s.push(c)}if(c<=12){p.push(c)}if(c<=q){if(s.length==0&&p.length==0){k=true}n.push(c)}else{h[0]=1;return h}}else{var o=monthTextToNumber(c.toLowerCase());if(o>0){if(j>0){h[0]=2;return h}j=o}else{h[0]=9;return h}}}if(j>0){l=j;p.length=0}else{if(p.length==1){l=p[0];removeItem(s,l);removeItem(n,l)}}if(s.length==1){e=s[0];removeItem(n,e);if(l==0){h[0]=3;return h}}else{if(s.length>1){switch(s.length){case 2:if(p.length==2){l=p[0];e=s[1];if(l!=e&&monthDayYearOrder.indexOf("D")<monthDayYearOrder.indexOf("M")&&(k==false||monthDayYearOrder.indexOf("Y")==0)){var f=e;e=l;l=f}s[0]=e;s.length=1;removeItem(n,e);p[0]=l;p.length=1;removeItem(n,l)}else{if(n.length==2){e=s[0];if(monthDayYearOrder.indexOf("Y")<monthDayYearOrder.indexOf("D")){e=s[1];s[0]=e}s.length=1;removeItem(n,e)}else{h[0]=4;return h}}break;case 3:if(n.length==3&&p.length==0){e=s[monthDayYearOrder.indexOf("D")];l=s[monthDayYearOrder.indexOf("M")];n[0]=s[monthDayYearOrder.indexOf("Y")];n.length=1;p[0]=l;p.length=1;s[0]=e;s.length=1}break;default:h[0]=4;return h}}}if(p.length>1){h[0]=5;return h}if(n.length==1){r=n[0]}else{if(n.length>1){if(s.length==0){if(p.length==0){h[0]=6;return h}else{h[0]=7;return h}}else{if(j==0&&p.length==0){h[0]=8;return h}else{h[0]=6;return h}}}}if(l>0&&e>0){if(!isDayInBounds(l,e,r)){h[0]=7;return h}}h[0]=0;if(n.length>0){h[1]=r}else{h[1]=""}h[2]=l;h[3]=e;return h}function stripDayModifier(c){var a=new Array();for(var b=0;b<c.length;b++){if(!isLetter(c[b].charAt(0))){a.push(c[b])}else{if(isLetter(c[b].charAt(0))&&c[b].length>2){a.push(c[b])}else{if(c[b]!="th"&&c[b]!="nd"&&c[b]!="rd"&&c[b]!="st"&&c[b].length>2){a.push(c[b])}}}}return a}function monthTextToNumber(d){var c=0;for(var b=0;b<12;b++){var f=monthAbbrs[b].split(":");for(var a=0;a<f.length;a++){if(d==f[a]){return b+1}}var e=":"+d;if(monthNamesAll[b].indexOf(e)>=0){if(c>0){return 0}c=b+1}}return c}function parseModifier(e,b){var d=e.toLowerCase();var a=b.split("|");for(var c=0;c<a.length;c++){if(d.substring(0,a[c].length+1)==a[c]+" "){return e.substring(a[c].length+1)}}return e}function checkDates(k,j,m,d,b,e,a,f,c,g){var l=null;var i=null;var h=null;var n=null;if(d=="birth"){if(a!=null&&a.length>0){n=validateDate(a);if(n[0]==0&&n[1].length>0){if(k<(parseInt(n[1])+15)){return 101}}}if(f!=null&&f.length>0){n=validateDate(f);if(n[0]==0&&n[1].length>0){if(k>(parseInt(n[1]))){return 102}}}if(c!=null&&c.length>0){h=validateDate(c);if(h[0]==0&&h[1].length>0){if(k<parseInt(h[1])+17){return 103}}}if(g!=null&&g.length>0){h=validateDate(g);if(h[0]==0&&h[1].length>0){if(k>(parseInt(h[1])+1)){return 104}}}if(i==null&&e!=null&&e.length>0){i=validateDate(e)}if(i!=null&&i[0]==0&&i[1].length>0){if(k<parseInt(i[1])-120){return 105}}}else{if(l==null&&b!=null&&b.length>0){l=validateDate(b)}if(d=="death"){if(l!=null&&l[0]==0&&l[1].length>0){if(k>parseInt(l[1])+120){return 106}}}if(l!=null&&l[0]==0){if(dateCompare(k,j,m,l[1],l[2],l[3])==-1){return 107}}}if(d!="death"&&d!="burial"&&d!="cremation"){if(i==null&&e.length>0){i=validateDate(e)}if(i!=null&&i[0]==0){if(dateCompare(k,j,m,i[1],i[2],i[3])==1){return 108}}}return 0}function dateCompare(c,a,f,b,e,d){if(c!=null&&c.length>0&&b!=null&&b.length>0){if(parseInt(c)<parseInt(b)){return -1}else{if(parseInt(c)>parseInt(b)){return 1}else{if(a!=null&&a>0&&e!=null&&e>0){if(parseInt(a)<parseInt(e)){return -1}else{if(parseInt(a)>parseInt(e)){return 1}else{if(f!=null&&f.length>0&&d!=null&&d.length>0){if(parseInt(f)<parseInt(d)){return -1}else{if(parseInt(f)>parseInt(d)){return 1}else{return 0}}}}}}}}}return 0}function getTokens(h){var b=new Array();var f="";var a=false;var g=false;var e=" /-.,:;";for(var d=0;d<h.length;d++){var j=h.charAt(d);if(isDigit(j)){if(!g){f+=j}else{b.push(f);f=j;g=false}a=true}else{if(e.indexOf(j)!=-1){if(f.length>0){b.push(f);f="";g=false;a=false}}else{if(!a){f+=j}else{b.push(f);f=j;a=false}g=true}}}if(f.length>0){b.push(f)}return b}function isDigit(a){if(a<"0"||a>"9"){return false}return true}function isLetter(a){if(a>="a"&&a<="z"){return true}else{if(a>="A"&&a<="Z"){return false}}}function removeItem(d,c){for(var b=0;b<d.length;b++){if(d[b]==c){for(var a=b;a<d.length-1;a++){d[a]=d[a+1]}d.length--}}return d}function isDayInBounds(d,a,c){if(a<1){return false}switch(d){case 4:case 6:case 9:case 11:return(a<=30);case 2:var b=29;if(c>0){if(c%4!=0){b=28}else{if(c%400==0){b=29}else{if(c%100==0){b=28}}}}return(a<=b);default:return(a<=31)}}function checkForInvalidChar(b){for(var a=0;a<b.length;a++){if(invalidNameChars.indexOf(b.charAt(a))>=0){return b.charAt(a)}}return""}function validateSurname(e,d,a){var c=e.toLowerCase();var b=d.toLowerCase();var f=a.toLowerCase();if(b.length>0){if(c!=b){if(nameMatch(c,f)){return warnNameMaiden}else{return warnNameFather}}}else{if(nameMatch(c,f)){return warnNameMaiden}}return""}function nameMatch(a,d){if(a.length>0){var c=d.split(";");for(var b=0;b<c.length;b++){if(a==c[b]){return true}}}return false};