/* Oh, Rats! - Age calculator v2.03
   (c) Tale 2005-2007               */
var ageVersion=2.03;if(!window.clientLang){var clientLang="en";var clientDateChar="/";var clientDateOrder="DMY";}if(clientLang=="nl")var dateMask="jjjjmmdd";else var dateMask="yyyymmdd";if(clientDateOrder=="MDY")dateMask=dateMask.substring(4,6)+clientDateChar+dateMask.substring(6,8)+clientDateChar+dateMask.substring(0,4);else if(clientDateOrder=="YMD")dateMask=dateMask.substring(0,4)+clientDateChar+dateMask.substring(4,6)+clientDateChar+dateMask.substring(6,8);else dateMask=dateMask.substring(6,8)+clientDateChar+dateMask.substring(4,6)+clientDateChar+dateMask.substring(0,4);function getElement(id){if(document.all)return document.all.item(id);if(typeof(document.getElementById)!="undefined")return document.getElementById(id);return null;}function htmlEscape(text){var html="",n,c;for(n=0;n<text.length;n++){c=text.charAt(n);if(c=="<")html+="&lt;";else if(c==">")html+="&gt;";else if(c=='"')html+="&quot;";else if(c=="&")html+="&amp;";else html+=c;}return html;}function setDateMask(input,enabled){if(enabled==null)enabled=true;if(enabled&&!input.value){input.value=dateMask;if(input.style){dateMaskColor=input.style.color;dateMaskFontStyle=input.style.fontStyle;input.style.color="#a0a0a0";input.style.fontStyle="italic";}}else if(!enabled){if(input.value==dateMask)input.value="";if(input.style)input.style.color=input.style.fontStyle="";}}function formatDateStr(date){if(!date||date.length!=8||date=="        ")return"";if(clientDateOrder=="MDY")return date.substring(4,6)+clientDateChar+date.substring(6,8)+clientDateChar+date.substring(0,4);else if(clientDateOrder=="YMD")return date.substring(0,4)+clientDateChar+date.substring(4,6)+clientDateChar+date.substring(6,8);else return date.substring(6,8)+clientDateChar+date.substring(4,6)+clientDateChar+date.substring(0,4);}function formatDateNum(date){if(!date||date==dateMask||date.length!=10)return"        ";if(clientDateOrder=="MDY")return date.substring(6,10)+date.substring(0,2)+date.substring(3,5);else if(clientDateOrder=="YMD")return date.substring(0,4)+date.substring(5,7)+date.substring(8,10);else return date.substring(6,10)+date.substring(3,5)+date.substring(0,2);}function formatDateObj(date){if(!date)return"";var year=date.getYear();if(year<1900)year+=1900;var month=date.getMonth()+1;if(month<10)month="0"+month;var day=date.getDate();if(day<10)day="0"+day;if(clientDateOrder=="MDY")return month+clientDateChar+day+clientDateChar+year;else if(clientDateOrder=="YMD")return year+clientDateChar+month+clientDateChar+day;else return day+clientDateChar+month+clientDateChar+year;}function valueOfDateStr(date){if(clientDateOrder=="MDY")return new Date(1*date.substring(6,10),1*date.substring(0,2)-1,1*date.substring(3,5));else if(clientDateOrder=="YMD")return new Date(1*date.substring(0,4),1*date.substring(5,7)-1,1*date.substring(8,10));else return new Date(1*date.substring(6,10),1*date.substring(3,5)-1,1*date.substring(0,2));}function valueOfDateNum(date){if(date=="        ")return null;return new Date(1*date.substring(0,4),1*date.substring(4,6)-1,1*date.substring(6,8));}function indexOfDateChar(s){var i=s.indexOf(clientDateChar);if(i>=0)return i;var chars="/-.";for(var n=0;n<chars.length;n++){i=s.indexOf(chars.charAt(n));if(i>=0)return i;}return-1;}function validDate(input){if(!(input.value&&input.value!=dateMask))return false;var year,month,day;var s=input.value;var n=indexOfDateChar(s);if(n<0)return false;if(clientDateOrder=="MDY")month=1*s.substring(0,n);else if(clientDateOrder=="YMD")year=1*s.substring(0,n);else day=1*s.substring(0,n);s=s.substring(n+1,s.length);var n=indexOfDateChar(s);if(n<0)return false;if(clientDateOrder=="MDY"){day=1*s.substring(0,n);year=1*s.substring(n+1,s.length);}else if(clientDateOrder=="YMD"){month=1*s.substring(0,n);day=1*s.substring(n+1,s.length);}else{month=1*s.substring(0,n);year=1*s.substring(n+1,s.length);}if(year<30)year+=2000;else if(year<100)year+=1900;var date=new Date(year,month-1,day);if(isNaN(date))return false;s=formatDateObj(date);if(input.value!=s)input.value=s;return true;}function invalidDate(input){if(input&&(!input.value||input.value==dateMask)){if(window.clientLang=="nl")alert("Sorry, maar je bent vergeten een datum op te geven.");else alert("I'm sorry, but you've forgotten to enter a date.");if(!input.value)setDateMask(input);}else{if(window.clientLang=="nl")alert("Sorry, maar dat is geen geldige datum. Geef een geldige datum op in het "+dateMask+" formaat.");else alert("I'm sorry, but that's not a valid date. Please enter a valid date in the "+dateMask+" format.");}setRecalcAgeTimer();return false;}function disableInput(input,disabled){if(!input)return false;if(disabled==null)disabled=true;input.disabled=disabled;if((input.type=="text"||input.type=="select-one"||input.type=="select-multiple"||input.type=="textarea")&&input.style)if(disabled)input.style.backgroundColor=input.readOnly?"#d0c8ad":"#d0cec8";else input.style.backgroundColor=input.readOnly?"#fff0c0":"";return true;}function enableInput(input){return disableInput(input,false);}function storeCookie(cookieValue){if(!(window.navigator&&window.navigator.cookieEnabled&&(document.cookie||document.cookie=="")))return false;var forever=new Date();var year=forever.getYear();if(year<1900)year+=1900;forever.setYear(year+10);document.cookie="myrats="+cookieValue+"; Expires="+forever.toGMTString()+"; path=/rats/age;";}function parseCookie(form){if(!(window.navigator&&window.navigator.cookieEnabled&&(document.cookie||document.cookie=="")))return false;var list=form.list;var n=document.cookie.indexOf("; myrats=");if(n<0){n=document.cookie.indexOf(";myrats=");if(n<0){n=document.cookie.indexOf("myrats=");if(n>0)n=-1;}}if(n<0){list.options.length=0;list.value="";disableInput(list);disableInput(form.del);if(!form.name.value)disableInput(form.calendar);return false;}var s=document.cookie.substring(n,document.cookie.length);s=s.substring(s.indexOf("=")+1,s.length);n=s.indexOf(";");if(n>=0)s=s.substring(0,n);var today=new Date(),birth,death,age;var count=0;while(true){n=s.indexOf("&");if(n<0)n=s.length;if(s.length<16+1)break;if(count<list.options.length){list.options[count].text=unescape(s.substring(16,n));list.options[count].value=s.substring(0,n);}else{var option=document.createElement("OPTION");option.text=unescape(s.substring(16,n));option.value=s.substring(0,n);if(document.all)list.options.add(option);else list.appendChild(option);}if(s.substring(8,16)!="        ")if(window.ieVersion>=6.0||window.mozillaVersion>=5.0||window.safariVersion>=522)list.options[count].text+=unescape("%u2020");if(list.options[count].style&&window.calcAgeVersion){birth=valueOfDateNum(s.substring(0,8));death=valueOfDateNum(s.substring(8,16));calcAge(birth,today,true);age=calcAge_humanYears;today.setDate(today.getDate()-1);calcAge(birth,today,true);today.setDate(today.getDate()+1);if(calcAge_humanYears!=age&&(!death||death.valueOf()>today.valueOf()))list.options[count].style.color="#e86000";else list.options[count].style.color="";}count++;if(n>=s.length)break;s=s.substring(n+1,s.length);}if(count<list.options.length)list.options.length=count;if(count<=0){disableInput(list);disableInput(form.del);if(!form.name.value)disableInput(form.calendar);}else{enableInput(list);enableInput(form.calendar);}return true;}function getURLParam(name){if(!(window.location&&window.location.search))return"";var n=window.location.search.indexOf("&"+name+"=");if(n<0){n=window.location.search.indexOf("?"+name+"=");if(n<0){n=window.location.search.indexOf(name+"=");if(n>0)n=-1;}}if(n<0)return"";var s=window.location.search.substring(n,window.location.search.length);s=s.substring(s.indexOf("=")+1,s.length);n=s.indexOf("&");if(n>=0)s=s.substring(0,n);return unescape(s);}function findRat(name,birth,death){var form=document.forms?document.forms.ageForm:null;if(!form)return false;if(birth==dateMask)birth="";if(death==dateMask)death="";var rat=formatDateNum(birth)+formatDateNum(death)+escape(name);for(var n=0;n<form.list.options.length;n++){if(form.list.options[n].value==rat){form.list.value=rat;enableInput(form.add);enableInput(form.del);return true;}}for(var n=0;n<form.list.options.length;n++)form.list.options[n].selected=false;form.list.value="";if(form.birth.value&&form.name.value)enableInput(form.add);disableInput(form.del);return false;}function quickEnableInputs(){if(!this.birth.value||this.birth.value==dateMask){if(!this.death.disabled)disableInput(this.death);if(!this.name.disabled)disableInput(this.name);if(!this.add.disabled)disableInput(this.add);if(!this.calendar.disabled&&this.list.options.length<=0)disableInput(this.calendar);}else{if(this.death.disabled)enableInput(this.death);if(this.name.disabled)enableInput(this.name);if(this.name.value){if(this.add.disabled)enableInput(this.add);if(this.calendar.disabled)enableInput(this.calendar);}else{if(!this.add.disabled)disableInput(this.add);if(!this.calendar.disabled&&this.list.options.length<=0)disableInput(this.calendar);}}return true;}function setRecalcAgeTimer(){if(typeof(window.setTimeout)!="undefined"){if(recalcAgeTimer)window.clearTimeout(recalcAgeTimer);recalcAgeBusy=true;recalcAgeTimer=window.setTimeout("recalcAgeBusy = false;",250);}}var recalcAgeBusy=false,recalcAgeTimer;function recalcAge(event){if(recalcAgeBusy){if(recalcAgeTimer)window.clearTimeout(recalcAgeTimer);recalcAgeBusy=false;return false;}if(!event)event=window.event;var form=this.form?this.form:this;if(!(form&&form.tagName=="FORM")){form=document.forms?document.forms.ageForm:null;if(!form)return true;}if(!validDate(form.birth)){form.birth.focus();return invalidDate(form.birth);}var birth=valueOfDateStr(form.birth.value);var target;if(form.q[1].checked){if(!validDate(form.date)){form.date.focus();return invalidDate(form.date);}target=valueOfDateStr(form.date.value);}else if(form.death.value&&form.death.value!=dateMask){if(!validDate(form.death)){form.death.focus();return invalidDate();}target=valueOfDateStr(form.death.value);}else{target=new Date();if(birth.valueOf()>target.valueOf())target=new Date(birth.valueOf());}if(window.calcAgeVersion)calcAge(birth,target);else return true;enableInput(form.real);enableInput(form.human);if(target.valueOf()>=birth.valueOf()){form.real.value=calcAge_age;form.human.value=calcAge_humanAge;}else{form.real.value="-";form.human.value="-";}var current=calcAge_humanYears;enableInput(form.last);var date;if(current>0){do{target.setDate(target.getDate()-1);calcAge(birth,target,true);}while(calcAge_humanYears==current);target.setDate(target.getDate()+1);form.last.value=formatDateObj(target);}else form.last.value="-";if(form.death.value&&form.death.value!=dateMask&&!form.q[1].checked){enableInput(form.next);form.next.value="-";}else{target.setDate(target.getDate()-1);do{target.setDate(target.getDate()+1);calcAge(birth,target,true);}while(calcAge_humanYears==current);enableInput(form.next);form.next.value=formatDateObj(target);}enableInput(form.url);var s="";if(form.name.value)s+=(s?"&":"")+"n="+escape(form.name.value);if(form.birth.value&&form.birth.value!=dateMask)s+=(s?"&":"")+"b="+formatDateNum(form.birth.value);if(form.death.value&&form.death.value!=dateMask)s+=(s?"&":"")+"d="+formatDateNum(form.death.value);if(form.q[1].checked&&form.date.value&&form.date.value!=dateMask)s+=(s?"&":"")+"w="+formatDateNum(form.date.value);form.url.value=form.url.defaultValue+"?"+s;setRecalcAgeTimer();return false;}function removeDateMask(event){if(!event)event=window.event;if((!event.keyCode||(event.keyCode!=0x09&&event.keyCode!=0x0D&&event.keyCode!=0x10&&event.keyCode!=0x11&&event.keyCode!=0x12&&event.keyCode!=0x1B))&&this.value==dateMask)setDateMask(this,false);return true;}function checkBirth(event){if(!event)event=window.event;var form=this.form;if(validDate(this)){enableInput(form.death);enableInput(form.name);if(form.name.value)findRat(form.name.value,this.value,form.death.value);if(!form.q[1].checked||form.date.value)recalcAge();setDateMask(form.death);form.death.focus();return true;}if(this.value)invalidDate();disableInput(form.death);disableInput(form.name);disableInput(form.add);disableInput(form.del);for(var n=0;n<form.list.options.length;n++)form.list.options[n].selected=false;form.list.value="";if(!this.value)return true;return false;}function checkDate(event){if(!event)event=window.event;var form=this.form;if(validDate(this)){if(validDate(form.birth)){if(this.name=="death")findRat(form.name.value,form.birth.value,this.value);recalcAge();}return true;}if(this.name=="death")findRat(form.name.value,form.birth.value,this.value);if(!this.value)return true;return invalidDate();}var thisRat="?";function updateThisRat(input){var today=getElement("ratQToday");var date=getElement("ratQDate");var name=input.value;var bold=name?"bold":"";if(name&&thisRat=="?")thisRat=today.innerHTML;else if(!name)name=thisRat;if(today&&typeof(today.innerHTML)!="undefined"){today.innerHTML=htmlEscape(name);if(today.style)today.style.fontWeight=bold;}if(date&&typeof(date.innerHTML)!="undefined"){date.innerHTML=htmlEscape(name);if(date.style)date.style.fontWeight=bold;}}function updateName(event){if(!event)event=window.event;var form=this.form;updateThisRat(this);if(this.value){findRat(this.value,form.birth.value,form.death.value);enableInput(form.calendar);}else{disableInput(form.add);disableInput(form.del);for(var n=0;n<form.list.options.length;n++)form.list.options[n].selected=false;form.list.value="";if(form.list.options.length<=0)disableInput(form.calendar);}recalcAge();return true;}function selectQuestion(event){if(!event)event=window.event;var form=this.form;if(this.checked&&this.value=="date"){enableInput(form.date);setDateMask(form.date);form.date.focus();if(validDate(form.birth)&&(!form.death.value||validDate(form.death))&&validDate(form.date))recalcAge();}else{disableInput(form.date);if(validDate(form.birth)&&(!form.death.value||validDate(form.death)))recalcAge();}return true;}function selectRat(event){if(!event)event=window.event;if(!this.value)return false;var form=this.form;if(form.birth.value==dateMask)setDateMask(form.birth,false);if(form.death.value==dateMask)setDateMask(form.death,false);form.birth.value=formatDateStr(this.value.substring(0,8));enableInput(form.death);form.death.value=formatDateStr(this.value.substring(8,16));enableInput(form.name);form.name.value=unescape(this.value.substring(16,this.value.length));updateThisRat(form.name);enableInput(form.add);enableInput(form.del);if(form.q[1].checked&&!form.date.value)form.date.focus();else recalcAge();return true;}function addRat(event){if(!event)event=window.event;var form=this.form;if(!(window.navigator&&window.navigator.cookieEnabled&&form.birth.value&&form.name.value))return false;if(!validDate(form.birth)){form.birth.focus();return invalidDate(form.birth);}if(form.death.value&&!validDate(form.death)){form.death.focus();return invalidDate(form.death);}if(!form.name.value){if(window.clientLang=="nl")alert("Sorry, maar je bent vergeten de naam in te vullen.");else alert("I'm sorry, but you've forgotten to enter the name.");form.name.focus();return false;}var rat=formatDateNum(form.birth.value)+formatDateNum(form.death.value)+escape(form.name.value);var cookie="";for(var n=0;n<form.list.options.length;n++){if(form.list.options[n].value.substring(0,8)==rat.substring(0,8)&&form.list.options[n].value.substring(16,form.list.options[n].value.length)==rat.substring(16,rat.length)){cookie+=(cookie?"&":"")+rat;rat="";}else if(form.list.options[n].value.length>=8+8+1)cookie+=(cookie?"&":"")+form.list.options[n].value;}if(rat)cookie+=(cookie?"&":"")+rat;storeCookie(cookie);parseCookie(form);findRat(form.name.value,form.birth.value,form.death.value);return false;}function delRat(event){if(!event)event=window.event;var form=this.form;if(!(window.navigator&&window.navigator.cookieEnabled&&form.list.value))return false;var cookie="";for(var n=0;n<form.list.options.length;n++){if(form.list.options[n].value!=form.list.value)cookie+=(cookie?"&":"")+form.list.options[n].value;}storeCookie(cookie);parseCookie(form);return false;}function resetForm(event){if(!event)event=window.event;var form=this;form.birth.value="";setDateMask(form.birth);form.death.value="";disableInput(form.death);form.name.value="";if(thisRat!="?")updateThisRat(form.name);disableInput(form.name);disableInput(form.add);disableInput(form.del);for(var n=0;n<form.list.options.length;n++)form.list.options[n].selected=false;form.list.value="";form.q[0].checked=true;form.date.value="";disableInput(form.date);form.real.value="";disableInput(form.real);form.human.value="";disableInput(form.human);form.last.value="";disableInput(form.last);form.next.value="";disableInput(form.next);if(form.list.options.length<=0)disableInput(form.calendar);form.url.value=form.url.defaultValue;disableInput(form.url);form.birth.focus();return false;}var calendarWindow=null;function printCalendar(event){if(!event)event=window.event;var form=this.form;var url="";if(form.list.value==""&&form.name.value){url+=(url?"&":"")+"n="+escape(form.name.value);if(form.birth.value&&form.birth.value!=dateMask)url+=(url?"&":"")+"b="+formatDateNum(form.birth.value);if(form.death.value&&form.death.value!=dateMask)url+=(url?"&":"")+"d="+formatDateNum(form.death.value);}if(form.q[1].checked&&form.date.value&&form.date.value!=dateMask)url+=(url?"&":"")+"w="+formatDateNum(form.date.value).substring(0,4);if(url)url="?"+url;url="calendar.htm"+url;if(calendarWindow&&!calendarWindow.closed)calendarWindow.close();calendarWindow=window.open(url,"_blank","toolbar=yes,location=no,directories=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes");return false;}function installHandlers(form){form.birth.onchange=checkBirth;form.birth.onclick=removeDateMask;form.birth.onkeydown=removeDateMask;form.death.onchange=checkDate;form.death.onclick=removeDateMask;form.death.onkeydown=removeDateMask;form.death.onblur=removeDateMask;form.name.onchange=updateName;form.list.onchange=selectRat;form.add.onclick=addRat;form.del.onclick=delRat;form.q[0].onclick=form.q[1].onclick=selectQuestion;form.date.onchange=checkDate;form.date.onclick=removeDateMask;form.date.onkeydown=removeDateMask;form.onsubmit=recalcAge;form.calc.onclick=recalcAge;form.onreset=resetForm;form.calendar.onclick=printCalendar;form.onkeyup=quickEnableInputs;return true;}function parseURL(form){if(!(window.location&&window.location.search))return false;var value=getURLParam("b");if(value)form.birth.value=formatDateStr(value);if(!validDate(form.birth))return false;enableInput(form.death);enableInput(form.name);value=getURLParam("d");if(value){form.death.value=formatDateStr(value);if(!validDate(form.death))return false;}value=getURLParam("n");if(value){form.name.value=value;updateThisRat(form.name);findRat(value,form.birth.value,form.death.value);enableInput(form.calendar);}value=getURLParam("w");if(value){form.date.value=formatDateStr(value);if(validDate(form.date)){form.q[1].checked=true;enableInput(form.date);}}recalcAge();return true;}function parseForm(form){if(form.q[1].checked)enableInput(form.date);if(form.birth.value==dateMask){form.birth.value="";setDateMask(form.birth);}if(form.death.value==dateMask){form.death.value="";setDateMask(form.death);}if(form.date.value==dateMask){form.date.value="";setDateMask(form.date);}if(!validDate(form.birth)){if(!form.birth.value)return null;return form.birth;}enableInput(form.death);enableInput(form.name);if(form.death.value&&form.death.value!=dateMask&&!validDate(form.death))return form.death;if(form.name.value){updateThisRat(form.name);findRat(form.name.value,form.birth.value,form.death.value);enableInput(form.calendar);}if(form.q[1].checked){if(form.date.value&&form.date.value!=dateMask)recalcAge();else return form.date;}else recalcAge();if(!form.name.value)return form.name;return document.body;}var initFormOnLoad=null;function initForm(event){if(!event)event=window.event;var form=document.forms?document.forms.ageForm:null;if(form){parseCookie(form);var input=parseForm(form);if(!input)if(!parseURL(form))input=form.birth;installHandlers(form);if(!form.birth.value)setDateMask(form.birth);if(form.style)form.style.visibility="visible";if(input&&input!=document.body)input.focus();}if(initFormOnLoad)return initFormOnLoad(event);return true;}var closeCalendarOnUnLoad=null;function closeCalendar(event){if(!event)event=window.event;if(calendarWindow&&!calendarWindow.closed)calendarWindow.close();if(closeCalendarOnUnLoad)return closeCalendarOnUnLoad(event);return true;}if(window.onload)initFormOnLoad=window.onload;window.onload=initForm;if(window.onunload)closeCalendarOnUnLoad=window.onunload;window.onunload=closeCalendar;if(document.styleSheets)document.write('<STYLE TYPE="text/css">.Hidden {visibility:hidden}</STYLE>');