// JavaScript Document 
// Calcularea varstei de pensionare

var luni_i = 0	// nr. luni initial
var luni_t = 0	// nr. luni total


//var borf = 0	// 0 = barbat, 1 = femeie
//var luna = 0	// luna nasterii
//var anul = 0	// anul nasterii
//anul = 1934		// pentru cazul cand nu este completat anul in casuta text

var lunap = 0	// luna pensionarii
var anulp = 0	// anul pensionarii

var data_n = new Date() // data nasterii

var data0 = new Date(1900, 0, 1)	// data 0 pentru perioada 1900-2000
var acum = new Date()				// data curenta

var data_1	= new Date(1945, 3, 1)	// data nasterii limita 1
var data_21	= new Date(1945, 3, 1)	// data nasterii limita 2 - limita inferioara
var data_22	= new Date(1947, 8, 1)	// data nasterii limita 2 - limita superioara
var data_31	= new Date(1947, 9, 1)	
var data_32	= new Date(1954, 11, 1)
var data_4	= new Date(1955, 0, 1)

var data_1b	= new Date(1940, 3, 1)
var data_21b= new Date(1940, 3, 1)
var data_22b= new Date(1942, 8, 1)
var data_31b= new Date(1942, 9, 1)
var data_32b= new Date(1950, 2, 1)
var data_4b	= new Date(1950, 2, 1)



function dumpProps(obj, parent) {
    // Go through all the properties of the passed-in object 
    for (var i in obj) {
       // if a parent (2nd parameter) was passed in, then use that to 
       // build the message. Message includes i (the object's property name) 
       // then the object's property value on a new line 
       if (parent) { var msg = parent + "." + i + "\n" + obj[i]; } else { var msg = i + "\n" + obj[i]; }
       // Display the message. If the user clicks "OK", then continue. If they 
       // click "CANCEL" then quit this level of recursion 
       if (!confirm(msg)) { return; }
       // If this property (i) is an object, then recursively process the object 
       if (typeof obj[i] == "object") { 
          if (parent) { dumpProps(obj[i], parent + "." + i); } else { dumpProps(obj[i], i); }
       }
    }
 }

function getSelectedRadio(buttonGroup) {
    // returns the array number of the selected radio button or -1 if no button is selected
    if (buttonGroup[0]) { // if the button group is an array (one button is not an array)
       for (var i=0; i<buttonGroup.length; i++) {
          if (buttonGroup[i].checked) {
             return i
          }
       }
    } else {
       if (buttonGroup.checked) { return 0; } // if the one button is checked, return zero
    }
    // if we get to this point, no radio button is selected
    return -1;
 } // Ends the "getSelectedRadio" function

function getSelectedRadioValue(buttonGroup) {
    // returns the value of the selected radio button or "" if no button is selected
    var i = getSelectedRadio(buttonGroup);
    if (i == -1) {
       return "";
    } else {
       if (buttonGroup[i]) { // Make sure the button group is an array (not just one button)
          return buttonGroup[i].value;
       } else { // The button group is just the one button, and it is checked
          return buttonGroup.value;
       }
    }
 } // Ends the "getSelectedRadioValue" function 


function calculeaza(frm)
{
	//dumpProps(frm, frm.parent);
	borf = getSelectedRadioValue(frm.radiobutton1);
	luna = frm.menu1.options[frm.menu1.selectedIndex].value;
	anul = frm.textfield.value;
	if (borf == 0)
		calcul_b(anul, luna);
	if (borf == 1)
		calcul_f(anul, luna);
	
	var strluna = ""
	switch(lunap)
	{
		case 0:
			strluna = "Ianuarie";
			break;
		case 1:
			strluna = "Februarie";
			break;
		case 2:
			strluna = "Martie";
			break;
		case 3:
			strluna = "Aprilie";
			break;
		case 4:
			strluna = "Mai";
			break;
		case 5:
			strluna = "Iunie";
			break;
		case 6:
			strluna = "Iulie";
			break;
		case 7:
			strluna = "August";
			break;
		case 8:
			strluna = "Septembrie";
			break;
		case 9:
			strluna = "Octombrie";
			break;
		case 10:
			strluna = "Noiembrie";
			break;
		case 11:
			strluna = "Decembrie";
			break;
	}
	alert("Data iesirii la pensie limita de varsta: " + "\n\nLuna: " + strluna + "\nAnul: " + anulp)
}


function calcul_f(anul, luna)	// functia de calculare a varstei de pensionare la femei
{
	data_n = new Date(anul, luna, 1)

	var data_i = new Date()
	var luni_1 = 0

	// varsta de pensionare este de 57 ani = 684 luni
	if (data_n < data_1)	// prima etapa de crestere a varstei de pensionare
	{
		if (data_n.getYear() < 100) // anul de referinta este 1900
		{
			luni_i = 1900*12+(data_n.getYear())*12+(data_n.getMonth()) //am aflat numarul de luni de la anul 0
			luni_t = luni_i + 684 // total luni de la anul 1 (1900)
			lunap = luni_t%12
			if (lunap > 0) // ca sa vad daca fac ceil()
			{
				anulp = (Math.ceil(luni_t/12)-1)
			}
			else
			{
				anulp = luni_t/12
			}
			
			//alert(anulp/*anul iesirii la pensie limita de varsta*/)
			//alert(lunap/*luna iesirii la pensie limita de varsta*/)
			
		}
		else  // anul de referinta nu este 1900 ci 1
		{
			luni_i = (data_n.getYear())*12+(data_n.getMonth()) //am aflat numarul de luni de la anul 0
		}
	}
	
	if ((data_21 <= data_n) && (data_n <= data_22))	// a doua etapa a cresterii varstei de pensionare
	{
		if (data_n.getYear() < 100) // anul de referinta este 1900
		{
			luni_i = 1900*12+(data_n.getYear())*12+(data_n.getMonth()) //am aflat numarul de luni de la anul 1
			//luni_t = luni_i + 684 // total luni de la anul 1
			var luni_ref = 0
			luni_ref = 1900*12+(data_21.getYear())*12+(data_21.getMonth())	// luni referinta inferioara
			var dif_luni = 0
			dif_luni = luni_i - luni_ref
			var plusluni = 0
			if (dif_luni%5 > 0)	// fac ceil()
			{
				plusluni = Math.ceil(dif_luni/5)	// atatea luni adaug la 57 ani (684 luni)
			}
			else	// nu fac ceil()
			{
				plusluni = dif_luni/5+1
			}

			luni_t = luni_i + 684 + plusluni
			lunap = luni_t%12
			if (lunap > 0) // ca sa vad daca fac ceil()
			{
				anulp = (Math.ceil(luni_t/12)-1)
			}
			else
			{
				anulp = luni_t/12
			}
			
			//alert(anulp/*anul iesirii la pensie limita de varsta*/)
			//alert(lunap/*luna iesirii la pensie limita de varsta*/)
		}
		else  // anul de referinta nu este 1900 ci 1
		{
			luni_i = (data_n.getYear())*12+(data_n.getMonth()) //am aflat numarul de luni de la anul 0
		}
		
	}

	if ((data_31 <= data_n) && (data_n <= data_32))	// a treia etapa a cresterii varstei de pensionare
	{
		if (data_n.getYear() < 100) // anul de referinta este 1900
		{
			luni_i = 1900*12+(data_n.getYear())*12+(data_n.getMonth()) //am aflat numarul de luni de la anul 1
			var luni_ref = 0
			luni_ref = 1900*12+(data_31.getYear())*12+(data_31.getMonth())	// luni referinta inferioara
			var dif_luni = 0
			dif_luni = luni_i - luni_ref
			var plusluni = 0
			if (dif_luni%3 > 0)	// fac ceil()
			{
				plusluni = Math.ceil(dif_luni/3)-1	// atatea luni adaug la 57 ani (684 luni)
			}
			else	// nu fac ceil()
			{
				plusluni = dif_luni/3
			}

			luni_t = luni_i + 691 + plusluni
			lunap = luni_t%12
			if (lunap > 0) // ca sa vad daca fac ceil()
			{
				anulp = (Math.ceil(luni_t/12)-1)
			}
			else
			{
				anulp = luni_t/12
			}
			
			//alert(anulp/*anul iesirii la pensie limita de varsta*/)
			//alert(lunap/*luna iesirii la pensie limita de varsta*/)
		}
		else  // anul de referinta nu este 1900 ci 1
		{
			luni_i = (data_n.getYear())*12+(data_n.getMonth()) //am aflat numarul de luni de la anul 0
		}
		
	}

	if (data_n >= data_4)	// prima etapa de crestere a varstei de pensionare
	{
		if (data_n.getYear() < 100) // anul de referinta este 1900
		{
			luni_i = 1900*12+(data_n.getYear())*12+(data_n.getMonth()) //am aflat numarul de luni de la anul 0
			luni_t = luni_i + 720 // total luni de la anul 1 (1900)
			lunap = luni_t%12
			if (lunap > 0) // ca sa vad daca fac ceil()
			{
				anulp = (Math.ceil(luni_t/12)-1)
			}
			else
			{
				anulp = luni_t/12
			}
			
			//alert(anulp/*anul iesirii la pensie limita de varsta*/)
			//alert(lunap/*luna iesirii la pensie limita de varsta*/)
			
		}
		else  // anul de referinta nu este 1900 ci 1
		{
			luni_i = (data_n.getYear())*12+(data_n.getMonth()) //am aflat numarul de luni de la anul 0
		}
	}	
	
}

/////////////////////////////
// CALCUL VECHIME BARBATI 
/////////////////////////////

function calcul_b(anul, luna)	// functia de calculare a varstei de pensionare la femei
{
	data_n = new Date(anul, luna, 1)

	var data_i = new Date()
	var luni_1 = 0

	if (data_n < data_1b)	// prima etapa de crestere a varstei de pensionare
	{
		if (data_n.getYear() < 100) // anul de referinta este 1900
		{
			luni_i = 1900*12+(data_n.getYear())*12+(data_n.getMonth()) //am aflat numarul de luni de la anul 0
			luni_t = luni_i + 744 // total luni de la anul 1 (1900)
			lunap = luni_t%12
			if (lunap > 0) // ca sa vad daca fac ceil()
			{
				anulp = (Math.ceil(luni_t/12)-1)
			}
			else
			{
				anulp = luni_t/12
			}
			
			//alert(anulp/*anul iesirii la pensie limita de varsta*/)
			//alert(lunap/*luna iesirii la pensie limita de varsta*/)
			
		}
		else  // anul de referinta nu este 1900 ci 1
		{
			luni_i = (data_n.getYear())*12+(data_n.getMonth()) //am aflat numarul de luni de la anul 0
		}
	}
	
	if ((data_21b <= data_n) && (data_n <= data_22b))	// a doua etapa a cresterii varstei de pensionare
	{
		if (data_n.getYear() < 100) // anul de referinta este 1900
		{
			luni_i = 1900*12+(data_n.getYear())*12+(data_n.getMonth()) //am aflat numarul de luni de la anul 1
			var luni_ref = 0
			luni_ref = 1900*12+(data_21b.getYear())*12+(data_21b.getMonth())	// luni referinta inferioara
			var dif_luni = 0
			dif_luni = luni_i - luni_ref
			var plusluni = 0
			if (dif_luni%5 > 0)	// fac ceil()
			{
				plusluni = Math.ceil(dif_luni/5)
			}
			else	// nu fac ceil()
			{
				plusluni = dif_luni/5+1
			}

			luni_t = luni_i + 744 + plusluni
			lunap = luni_t%12
			if (lunap > 0) // ca sa vad daca fac ceil()
			{
				anulp = (Math.ceil(luni_t/12)-1)
			}
			else
			{
				anulp = luni_t/12
			}
			
			//alert(anulp/*anul iesirii la pensie limita de varsta*/)
			//alert(lunap/*luna iesirii la pensie limita de varsta*/)
		}
		else  // anul de referinta nu este 1900 ci 1
		{
			luni_i = (data_n.getYear())*12+(data_n.getMonth()) //am aflat numarul de luni de la anul 0
		}
		
	}

	if ((data_31b <= data_n) && (data_n <= data_32b))	// a treia etapa a cresterii varstei de pensionare
	{
		if (data_n.getYear() < 100) // anul de referinta este 1900
		{
			luni_i = 1900*12+(data_n.getYear())*12+(data_n.getMonth()) //am aflat numarul de luni de la anul 1
			var luni_ref = 0
			luni_ref = 1900*12+(data_31b.getYear())*12+(data_31b.getMonth())	// luni referinta inferioara
			var dif_luni = 0
			dif_luni = luni_i - luni_ref
			var plusluni = 0
			if (dif_luni%3 > 0)	// fac ceil()
			{
				plusluni = Math.ceil(dif_luni/3)-1	// atatea luni adaug la 57 ani (684 luni)
			}
			else	// nu fac ceil()
			{
				plusluni = dif_luni/3
			}

			luni_t = luni_i + 751 + plusluni
			lunap = luni_t%12
			if (lunap > 0) // ca sa vad daca fac ceil()
			{
				anulp = (Math.ceil(luni_t/12)-1)
			}
			else
			{
				anulp = luni_t/12
			}
			
			//alert(anulp/*anul iesirii la pensie limita de varsta*/)
			//alert(lunap/*luna iesirii la pensie limita de varsta*/)
		}
		else  // anul de referinta nu este 1900 ci 1
		{
			luni_i = (data_n.getYear())*12+(data_n.getMonth()) //am aflat numarul de luni de la anul 0
		}
		
	}

	if (data_n > data_4b)
	{
		if (data_n.getYear() < 100) // anul de referinta este 1900
		{
			luni_i = 1900*12+(data_n.getYear())*12+(data_n.getMonth()) //am aflat numarul de luni de la anul 0
			luni_t = luni_i + 780 // total luni de la anul 1 (1900)
			lunap = luni_t%12
			if (lunap > 0) // ca sa vad daca fac ceil()
			{
				anulp = (Math.ceil(luni_t/12)-1)
			}
			else
			{
				anulp = luni_t/12
			}
			
			//alert(anulp/*anul iesirii la pensie limita de varsta*/)
			//alert(lunap/*luna iesirii la pensie limita de varsta*/)
			
		}
		else  // anul de referinta nu este 1900 ci 1
		{
			luni_i = (data_n.getYear())*12+(data_n.getMonth()) //am aflat numarul de luni de la anul 0
		}
	}	
	
}

