// ==UserScript==
// @name		IMDB age
// @namespace		http://www.rulac.net/userjs/imdb-age/
// @description		Adds age of people on imdb after their date of birth
// @version		1.4
// @include		http://*.imdb.com/name/*
// ==/UserScript==

document.addEventListener("DOMContentLoaded", function(){
	infoDiv	= false;
	months	= ["znerp","January","February","March","April","May","June","July","August","September","October","November","December"];
	divs	= document.getElementsByTagName("div");
	for (i = 0; i < divs.length; i++){
		if (divs[i].getAttribute("class") == "info"){
			tmp	= divs[i];
			if (tmp.getElementsByTagName("h5")[0].innerHTML == "Date of Birth:"){
				infoDiv		= tmp;
			}
			if (tmp.getElementsByTagName("h5")[0].innerHTML == "Date of Death:"){
				infoDiv2	= tmp;
			}
		}
	}
	if (infoDiv){
		year	= parseInt(infoDiv.getElementsByTagName("a")[1].innerHTML);
		date	= infoDiv.getElementsByTagName("a")[0].innerHTML.split(" ");
		day	= date[0];
		for (month = 12; month >= 0; month--){
			if (months[month] == date[1]){
				break;
			}
		}
		if (!year){
			year = date[0];
		}
		if (month > 0){
			nowDate = new Date();
			age	= nowDate.getFullYear() - year;
			if (month > 0){
				if ((nowDate.getMonth() + 1 - month) < 0){
					age--;
				} else if ((nowDate.getMonth() + 1 - month) == 0){
					if ((nowDate.getDate() - day) < 0){
						age --;
					}
				}
			}
			if (typeof infoDiv2 == "undefined"){
				splitedhtml		= infoDiv.innerHTML.toLowerCase().split("</a>"); // razdjeljuje
				splitedhtml[2]		= splitedhtml[2].replace(/,/, ""); // brise zarez
				splitedhtml[2]	 	= " (" + age + " years old), " + splitedhtml[2]; // ispred treceg linka mece godinu
				infoDiv.innerHTML	= splitedhtml.join("</a>"); // spaja natrag array u cijelinu
			} else {
				year2	= parseInt(infoDiv2.getElementsByTagName("a")[1].innerHTML);
				date2	= infoDiv2.getElementsByTagName("a")[0].innerHTML.split(" ");
				day2	= date2[0];
				for (month2 = 12; month2 >= 0; month2--){
					if (months[month2] == date2[1]){
						break;
					}
				}

				var d1 = new Date(year, month, day);
				var d2 = new Date(year2, month2, day2);

				var milliseconds1 = d1.getTime();
				var milliseconds2 = d2.getTime();

				var difference	= milliseconds2 - milliseconds1;
				var difyear	= Math.ceil(difference/1000/60/60/24/365);

				splitedhtml		= infoDiv2.innerHTML.toLowerCase().split("</a>"); // razdjeljuje
				splitedhtml[2]		= splitedhtml[2].replace(/,/, ""); // brise zarez
				splitedhtml[2]	 	= " (" + difyear + " years old), " + splitedhtml[2]; // ispred treceg linka mece godinu
				infoDiv2.innerHTML	= splitedhtml.join("</a>"); // spaja natrag array u cijelinu

			//	infoDiv2.innerHTML = infoDiv2.innerHTML.replace(/,/, " ("+difyear+" years old), ");
			}
		}
	}
}, false);
