// ==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.7
// @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") == "txt-block"){
			divs[i]	= divs[i];
			if (divs[i].getElementsByTagName("h4").length > 0 && divs[i].getElementsByTagName("h4")[0].innerHTML.toLowerCase() == "born:"){
				infoDiv		= divs[i];
			}
		}
	}
	if (infoDiv){
		for (i = 0; i < infoDiv.getElementsByTagName("a").length; i++){
			if (infoDiv.getElementsByTagName("a")[i].href.indexOf("birth_year=") > -1){
				year	= parseInt(infoDiv.getElementsByTagName("a")[i].innerHTML);
				linkid	= i + 1;
			} else if (infoDiv.getElementsByTagName("a")[i].href.indexOf("/date/") > -1){
				date	= infoDiv.getElementsByTagName("a")[i].innerHTML.split(" ");
				day	= date[1];
			}
			
		}
		if (typeof date !== "undefined"){
			for (month = 12; month >= 0; month--){
				if (months[month] == date[0]){
					break;
				}
			}
		}
		if (!year){
			year = date[0];
		}
		if (typeof month !== "undefined" && 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 --;
					}
				}
			}
		} else {
			nowDate = new Date();
			age	= nowDate.getFullYear() - year;
			age	= "\"" + age + "\"";
		}
		if (typeof age !== "undefined"){
			splitedhtml		= infoDiv.innerHTML.split(/<\/a>/i); // razdjeljuje
			splitedhtml[linkid]	= splitedhtml[linkid].replace(/,/, ""); // brise zarez
			splitedhtml[linkid]	 = " (" + age + " years old) " + splitedhtml[linkid]; // ispred linka mece godinu
			infoDiv.innerHTML	= splitedhtml.join("</a>"); // spaja natrag array u cijelinu
		}
	}
}, false);

