// Opens a NEW WINDOW on the page specified by path
function OpenNewWindow(path, width, height, center, resize)
{		
var   features = "toolbar=no, status=yes, menubar=no, scrollbars=yes, resizable=no, width=" + width + ", height=" + height
	
	// Center?
	if( center == true )
	{
		var   screenWidth = window.screen.width;
		var   screenHeight = window.screen.height;
		var   newWindowLeft = (window.screen.width - width) / 2;
		var   newWindowTop = (window.screen.height - height) / 2;
		features += " left=" + newWindowLeft+ " top=" + newWindowTop;
	}
	else
		features += ",left=15, top=15";
		
	//Resize ?
	if (resize == true)
		features += ", resizable=yes"
	else
		features += ", resizable=no"
	
	// Open			
	window.open(path, "", features);

}


function OpenWarningWindow(path, width, height, center, resize)
{		
var   features = "toolbar=no, status=no, menubar=no, scrollbars=no, resizable=no, width=" + width + ", height=" + height
	
	// Center?
	if( center == true )
	{
		var   screenWidth = window.screen.width;
		var   screenHeight = window.screen.height;
		var   newWindowLeft = (window.screen.width - width) / 2;
		var   newWindowTop = (window.screen.height - height) / 2;
		features += " left=" + newWindowLeft+ " top=" + newWindowTop;
	}
	else
		features += ",left=15, top=15";
		
	//Resize ?
	if (resize == true)
		features += ", resizable=yes"
	else
		features += ", resizable=no"
	
	// Open			
	window.open(path, "", features);

}



//SET DEFAULT ASSET ALLOCATION
function setAssetAllocation(fld,form) { //form,fld) {
				
	if (fixMoney(fld,",")){
	
		//get rates
		var growthrate = document.getElementById(form + "_txtPerGrowth").value;
		var stablerate = document.getElementById(form + "_txtPerStable").value;
		var protectedrate = document.getElementById(form + "_txtPerProtected").value;
			
		var assetgrowth = (growthrate * fld.value)/100;
	
		document.getElementById(form + "_txtAssetGrowth").value = formatNumber(assetgrowth);
		var assetstable = (stablerate * fld.value)/100;
		document.getElementById(form + "_txtAssetStable").value = formatNumber(assetstable);
		var assetprotected = (protectedrate * fld.value)/100;
		document.getElementById(form + "_txtAssetProtected").value = formatNumber(assetprotected);	
	}	
}

//CALCULATE IP COVER AND PREMIUM when insurance selected by member
function IPInsurance(value,form,coverctrl,premiumctrl,wagectrl)
{
	var wage = document.getElementById(form + "_" + wagectrl).value;
	
	if (value == 'no')
	{
		document.getElementById(form + "_" + coverctrl).value = '';
		document.getElementById(form + "_" + premiumctrl).value = '';		
	}
	if (value == 'yes')						
	{	
		if (isNaN(wage) || wage == ""){
			document.getElementById(form + "_" + coverctrl).value = '';
			document.getElementById(form + "_" + premiumctrl).value = '';	
		}
		else {
			document.getElementById(form + "_" + coverctrl).value = formatNumber(wage * 0.85); //displayNumber(wage * 0.85);
			document.getElementById(form + "_" + premiumctrl).value = formatNumber(wage * 0.010125); //displayNumber(wage * 0.010125);
			
			var path = "../Disclaimer/ippremiumdisclaimer.htm";
			OpenWarningWindow(path, 354, 270, true, false);
		}
	}	
}

function getIPInsurance(radioObject1,radioObject2,form,wagectrl)
{
	var wage = document.getElementById(form + "_" + wagectrl).value;
	if (isNaN(wage) || wage == ""){ //do nothing
		} else {
		//format wage value
		document.getElementById(form + "_" + wagectrl).value = formatNumber(wage);
		}
	if (  document.getElementById(form + "_" + radioObject1).checked ) { 
		return IPInsurance('yes',form,"txtIPCover","txtIPPremium",wagectrl); }
	if (radioObject2.checked) { 
		return IPInsurance('no',form,"txtIPCover","txtIPPremium",wagectrl); }	
}


function setInsuranceValues(form,dobfld,termfld,dunits,tpdunits,dttoday) { //calcfld???
	
	var dob = document.getElementById(form + "_" + dobfld).value;
	var calcdate = document.getElementById(form + "_" + termfld).value;
	if ((calcdate.length==0) || (calcdate=='') || (validateDateValue(calcdate)==false)) { calcdate = dttoday; }
	
	var deathunits = document.getElementById(form + "_" + dunits).value;
	var tpdeathunits = document.getElementById(form + "_" + tpdunits).value;
	
	if (dob.length != 0) {
			if (validateDateValue(dob)) 
				{ 
					var age = CalculateAge(dob, calcdate);					
					var cover = getBasicCoverByAge(age); 
					
					if (deathunits!=0) {
						var dunitcost = GetVolDeath(age); 
						var dbenefit = (deathunits * dunitcost); 
						var dcover = parseFloat(cover) + parseFloat(dbenefit);
						document.getElementById(form + "_txtDinsurance").value = formatNumber(dcover);					
						} else { document.getElementById(form + "_txtDinsurance").value = formatNumber(cover); }
				
					
					if (tpdeathunits!=0) {
						var tpdunitcost = GetVolTpd(age);
						var tpdbenefit = (tpdeathunits * tpdunitcost); 
						var tpdcover = parseFloat(cover) + parseFloat(tpdbenefit);
						document.getElementById(form + "_txtTPDInsurance").value = formatNumber(tpdcover);
						} else { document.getElementById(form + "_txtTPDInsurance").value = formatNumber(cover); }
									
					document.getElementById(form + "_ddlVolDUnits").value = deathunits;
					document.getElementById(form + "_ddlVolTPDUnits").value = tpdeathunits;
				}
		} else {
					document.getElementById(form + "_txtDinsurance").value = '';
					document.getElementById(form + "_txtTPDInsurance").value = '';
					document.getElementById(form + "_ddlVolDUnits").value = 0;
					document.getElementById(form + "_ddlVolTPDUnits").value = 0;
		}		

}

//CALCULATE ADDITIONAL INSURANCE UNITS
function setIPInsuranceValues(form,dobfld,termfld,dttoday) { 
	
	var volunits = document.getElementById(form + "_ddlVolDUnits").value;
	if (volunits == 0) { document.getElementById(form + "_txtDVolInsurance").value = ''; }
	else {
			
			var dob = document.getElementById(form + "_" + dobfld).value;
			var calcdate = document.getElementById(form + "_" + termfld).value;
			if (calcdate=='') { calcdate = dttoday; }
			
			if (dob.length != 0) {
			
			
					if (validateDateValue(dob)) 
						{ 
							var age = CalculateAge(dob, calcdate);
														
							if (age >= 16 && age <= 64) {
									var dunitcost = GetVolDeath(age);
									var	dbenefit = parseFloat(volunits * dunitcost); 
									 document.getElementById(form + "_txtDVolInsurance").value = formatNumber(dbenefit);
									
									} else { document.getElementById(form + "_txtDVolInsurance").value = ''; 
									         document.getElementById(form + "_ddlVolDUnits").value = 0; }
						 
						  }	
					else { 
							document.getElementById(form + "_txtDVolInsurance").value = '';
						}
											
											
				  }
			
			  }		
}

//CALCULATE INSURANCE BASIC COVER
function calculateBasicCover(form,dobdate,calcdate) {	
	var age = CalculateAge(dobdate, calcdate);
	if (age > 64 || age <= 16) { cover = 0; }
	else { cover = GetBasicCover(age); }
	return cover;	
}
//GET INSURANCE BASIC COVER
function getBasicCoverByAge(age) {	
	if (age > 64 || age <= 16) { cover = 0; }
	else { cover = GetBasicCover(age); }
	return cover;	
}

//-------------------------------------------------------------
//removed from script on startup of AccumPlusCalculator page
//-------------------------------------------------------------

function setDTPDValues(form, dob) {
	
	if (validateDateValue(dob))
		var cover = calculateBasicCover(form,dob);
	else
		var cover = 0;
	
	document.getElementById(form + "_txtDinsurance").value = formatNumber(cover);
	document.getElementById(form + "_txtTPDInsurance").value = formatNumber(cover);
	document.getElementById(form + "_ddlVolDUnits").value = 0;
	document.getElementById(form + "_ddlVolTPDUnits").value = 0;
}

function PopUpExternalFundWarning(form,fld){
		
		var fund = document.getElementById(form + "_" + fld).value;
		if (isNaN(fund) || (fund == "") || (fund == '0') ){ //do nothing
				} else { 
			document.getElementById(form + "_" + fld).value = formatNumber(fund);
			var path = "../Disclaimer/externalfundwarning.htm";
			OpenWarningWindow(path, 354, 230, true, false);
		 } 
}	


function PopUpPreservationAge(form,dobfld,termfld,datetype) {
	var dob = document.getElementById(form + "_" + dobfld).value;
	var termdate = document.getElementById(form + "_" + termfld).value;
	if ( (dob == "")||(termdate == "") ) { //do nothing
			}
	else {
		var age = GetPreservationAge(dob);
		var termage = CalculateAge(dob, termdate);
				if (termage < age) { 
				//display warning
				if (datetype=='retirement') {  var path = "../Disclaimer/resignationbeforepreservation.htm";}
				if (datetype=='termination') { var path = "../Disclaimer/terminationbeforepreservation.htm";}
				OpenWarningWindow(path, 354, 230, true, false);
		  }
	}
	
}


function formatDollarValue(form,balfld) {
	var balance = document.getElementById(form + "_" + balfld).value;
	if ((balance=='') || (balance==0) || isNaN(balance)) {
	//do nothing
	} else {
	document.getElementById(form + "_" + balfld).value = formatNumber(balance);
	}	
}

//Get preservation age
function GetPreservationAge(dobval) {
         
    var re = /\D+/g;
	var ddmmyyStart = dobval.replace(re, "/");
	var endOfDay = ddmmyyStart.indexOf('/');
	var endOfMonth = ddmmyyStart.lastIndexOf('/');
	birthDay = ddmmyyStart.substr(0, endOfDay);
	birthMonth = ddmmyyStart.substr(endOfDay + 1, endOfMonth - endOfDay - 1);
	birthyear = ddmmyyStart.substr(endOfMonth + 1, ddmmyyStart.length - endOfMonth - 1); 
	
	var intBirthDay = parseInt(birthDay);
	var intBirthMonth = parseInt(birthMonth);
	var intBirthYear = parseInt(birthyear);
	
	var century = "";
	//set year prefix
	if (birthyear.length == 2) {century = "19";}
	var birthyear = century + birthyear;
	var intBirthYear = parseInt(birthyear);  

	
	if  (intBirthYear < 1960)  { return 55; }
	if ( (intBirthYear == 1960) && (intBirthMonth <= 6) )  { return 55;}
	if ( (intBirthYear == 1960) && (intBirthMonth > 6)) { return 56; }
	
    if (intBirthYear < 1961)  { return 56; }
    if ( (intBirthYear == 1961) && (intBirthMonth <= 6) )  { return 56;}
	if ( (intBirthYear == 1961) && (intBirthMonth > 6)) { return 57; }
    
    if (intBirthYear < 1962)  { return 57; }
    if ( (intBirthYear == 1962) && (intBirthMonth <= 6) )  { return 57;}
	if ( (intBirthYear == 1962) && (intBirthMonth > 6)) { return 58; }  
	
	if (intBirthYear < 1963)  { return 58; }
    if ( (intBirthYear == 1963) && (intBirthMonth <= 6) )  { return 58;}
	if ( (intBirthYear == 1963) && (intBirthMonth > 6)) { return 59; } 
	
	if (intBirthYear < 1964)  { return 59; }
    if ( (intBirthYear == 1964) && (intBirthMonth <= 6) )  { return 59;}
	if ( (intBirthYear == 1964) && (intBirthMonth > 6) ) { return 60; }
	if (intBirthYear >= 1965) { return 60; }     
	
}
		
			
function setMemberRate(form,fld,defaultrate) {
	var ratestr = document.getElementById(form + "_" + fld).value;
	if (ratestr == "")	 {//set to default rate
		document.getElementById(form + "_" + fld).value = defaultrate;
	}
	else {
			var persign = ratestr.substr(ratestr.length - 1);
			if (persign == '%')
			{ ratestr = ratestr.substr(0,ratestr.length - 1); }
	
	}
	if (isNaN(ratestr)) { 
				document.getElementById(form + "_" + fld).value = defaultrate;
	 }
		else { 	
				if (parseInt(ratestr) < 4)
				{ document.getElementById(form + "_" + fld).value = '4%'; }
				else if (parseInt(ratestr) > 100)
				{ document.getElementById(form + "_" + fld).value = '100%'; }
				else { document.getElementById(form + "_" + fld).value = ratestr + '%'; }
		}
	}	

	
function validateRate(form,fld) {
	var strrate = String(document.getElementById(form + "_" + fld).value);
	strrate = strrate.substr(0,strrate.length - 1);
	var rate = Number(strrate)
	
	if (rate <= 4 || rate >= 100) { return false; } 
	}
		


//CALCULATE SG
function calculateSG(fld,form, sgpercent) {
if ( (fld.value=='') || (isNaN(fld.value)) ) { document.getElementById(form + "_txtCalcSGWeek").value = ''; }
else {
	if (fixMoney(fld,",")){
		var SGGar = CalculateWeeklySGNet(sgpercent, fld.value);
		if (fld.value <= 100) { alert("Please note that Super Guarantee is payable only when monthly earnings exceed $450."); }
		/*if (isNaN(SGGar)) { 
			document.getElementById(form + "_txtCalcSGMonth").value = "";
			return;
		}*/	
		
		document.getElementById(form + "_txtCalcSGWeek").value = formatNumber(roundHundreds(SGGar));
		}
	}
}

//CALCULATE SG NET WITH NO INFLATION
function CalculateWeeklySGNet(sgpercent, weeklywage){
	return 	(weeklywage * sgpercent * 0.85);
}
	
						
// Opens a NEW WINDOW on the page specified by path
function OpenWindowToScreen(path, resize)
{			
	var width = window.screen.width;
	var height = window.screen.height;
	
	if (width <= 800) 
		width = window.screen.width - (0.025 * window.screen.width);
	else
		width = 950;
		
	if (height <= 800)
		height = window.screen.height - (0.25 * window.screen.height);
	else
		height = 700;
	
	var left = (window.screen.width - width) / 4;	
	var top =  (window.screen.height - height) / 4;
			
	var   features = "toolbar=no, status=yes, menubar=no, scrollbars=yes, resizable=no, width=" + width + ", height=" + height + ",left=" + left + ", top=" + top;

	//Resize ?
	if (resize == true)
		features += ", resizable=yes";
	else
		features += ", resizable=no";
	
	// Open			
	window.open(path, "", features);
}

//OPEN DISLAIMER IN FOOTER
function OpenPopupWinDisclaimer()
{
	var path = "../Disclaimer/disclaimer.htm";
	OpenNewWindow(path, 762, 654, false, false);
}

//OPEN DISCLAIMER IN THE FOOTER OF THE SEARCH PAGE
function OpenSearchPopupWinDisclaimer()
{
	var path = "Disclaimer/disclaimer.htm";
	OpenNewWindow(path, 762, 654, false, false);
}

function disclaimer_onclick()
{
	OpenPopupWinDisclaimer();
}

//EVENT HANDLER TO OPEN LOGIN WINDOW
function login_onclick(path)
{
	OpenWindowToScreen(path,true);
}

//EVENT HANDLER TO OPEN HELP WINDOW
function help_onclick(path)
{
	OpenNewWindow(path,762, 505, true, true);
}

//EVENT HANDLER TO OPEN HELP WINDOW
function contactus_onclick(path)
{
	OpenNewWindow(path,762, 505, true, true);
}

//SET FOCUS ON THE FIRST INPUT FIELD, IF ENABLED
function SetFocus(control)
{

	if( control.disabled == false )
	{
		control.focus();
		if( control.type == "text" ) control.select();
	}

}

//FORCE DROP DOWN MENUS IN IE
function IEHoverPseudo() {

	var navItems = document.getElementById("nav").getElementsByTagName("li");

	for (var i=0; i<navItems.length; i++) {
		if(navItems[i].className == "menuparent") {
		navItems[i].onmouseover=function() { this.className += " over"; }
		navItems[i].onmouseout=function() { this.className = "menuparent"; }
		}
	}
}

//check if the Enter key has been pressed in the search box
function checkSearchEnter() {
	if(event.which || event.keyCode){
		if ((event.which == 13) || (event.keyCode == 13)) {
			document.getElementById('btnG').click();
			return false;
			}
	}
	else {
		return true;
	}
}
	
//Change style sheets on the fly - for small and larger fonts
function changeSheets(whichSheet){

if(document.styleSheets){
	var c = document.styleSheets.length;
	for(var i=0;i<c;i++){
		if(document.styleSheets[i].title != whichSheet && document.styleSheets[i].title != "print"){
			document.styleSheets[i].disabled=true;
		}else{
			document.styleSheets[i].disabled=false;
		}
	}
	}
}

// DYNAMICALLY SETS THE HEIGHT OF THE LEFT NAV. DIV. SO IT IS AS LONG AS THE CONTENT
function lengthenSideBar(contentDiv){
	var isNS4 = (document.layers) ? 1 : 0;
	var isIE4 = (document.all) ? 1 : 0;
	var isW3C = (document.getElementById && !document.all) ? 1 : 0;
	var docObj, objHeight, objHeadHeight;
	
	if (isW3C) {
		docObj = document.getElementById(contentDiv);
		objHeight = document.defaultView.getComputedStyle(docObj, "").getPropertyValue("height");
		
		docObj = document.getElementById("contentHeader");
		objHeadHeight = document.defaultView.getComputedStyle(docObj, "").getPropertyValue("height");

		if ( (parseInt(objHeight) + parseInt(objHeadHeight)) > 700 )
			document.getElementById("leftNavigation").style.height=parseInt(objHeight) + parseInt(objHeadHeight) + "px"; 
		
	}
	else if (isIE4){	
		docObj = document.getElementById(contentDiv);
		objHeight = docObj.offsetHeight;
		
		docObj = document.getElementById("contentHeader");
		objHeadHeight = docObj.offsetHeight;

		docObj = document.getElementById("leftNavigation");
		
		if (objHeight + objHeadHeight > 700)
			docObj.style.height = objHeight + objHeadHeight + 'px';
	}
	else if(isNS4){
		/*docObj = document.getElementById("content");*/
		objHeight = document.layers.contentDiv.clip.height;
		
		if (objHeight > 700) 
			document.layers.leftNavigation.clip.height = objHeight;
	}
}

// DYNAMICALLY SHOWS and HIDES divs include tables, etc....
function showHideDiv(myDiv)
{
	var div1;
	
	x = document.getElementsByTagName("div");
	for (i=0;i<x.length;i++){
		if (x[i].id==myDiv)
			div1 = x[i];
	}
	
	if (div1.style.display == "none")
		div1.style.display = "block";
	else
		div1.style.display = "none";

	//window.scroll(0,vpos);
	//lengthenSideBar('content');
}

// DYNAMICALLY SHOWS and HIDES ULs....
function showHideUL(ul)
{
	var ul1;
	
	x = document.getElementsByTagName("ul");
	for (i=0;i<x.length;i++){
		if (x[i].id==ul){
			ul1 = x[i];

		if (ul1.style.display == "none")
			ul1.style.display = "block";
		else
			ul1.style.display = "none";
		}

	}
}

//CHANGES THE VISIBLE DIV IN A GROUP OF DIVS
function changeDiv(myDiv)
{
	var div1;
	var divGroup;
	var x = document.getElementsByTagName("div");
	
	divGroup = Left(myDiv,3);
	
	for (i=0;i<x.length;i++){
		if (Left(x[i].id,3)==divGroup){
			div1 = x[i];
			if(div1.id==myDiv)
				div1.style.display = "block";
			else
				div1.style.display = "none";
		}
	}
	lengthenSideBar('content');
}
			
//CHANGES THE UNDERLINED ITEM IN A GROUP OF CELLS (most likely the same table)
function changeUnderline(myCell)
{
	var cell1;
	var cellGroup;
	var x = document.getElementsByTagName("td");
	
	cellGroup = Left(myCell,3);
	
	for (i=0;i<x.length;i++){
		if (Left(x[i].id,3)==cellGroup){
			cell1 = x[i];
			
			if(cell1.id==myCell)
				cell1.style.textDecoration = "underline";
			else
				cell1.style.textDecoration = "none";
		}
	}
}

// displays the first div in div group has default
function setDefaultDiv(myGroup)
{
	var x = document.getElementsByTagName("div");
	
	for (i=0;i<x.length;i++){
		if (Left(x[i].id,3)==myGroup){
			x[i].style.display = "block";
			break;
		}
	}
	lengthenSideBar('content')
}

function MM_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}

function redirect(page){
	window.location = page;
}

//ROUND HUNDREDS - TO TWO DECIMAL POINTS
function roundHundreds(number) {
			number = number*100;
			number = Math.round(number);
			number = number/100;
			return number;
}

//FORMAT NUMBER WITH 2 DECIMAL POINTS	
function formatNumber(number) {
	
	var strnumber = number.toString();
	var coma = strnumber.indexOf('.');
	var dec = 0;
	var str;	
	if (coma != -1) {
		str = strnumber.substr(coma, strnumber.length - coma + 1);
		dec = str.length;
	}
	if (dec == 2) { return strnumber.concat('0'); }
	if (dec == 3) { return strnumber; }
	if (dec > 3) { return strnumber.substr(0, strnumber.length - (dec - 3)); }
	
	return strnumber.concat('.00');	
}
//CUT OFF DECIMAL PLACES - TO ONE ONLY 
function displayNumber(number) {
	var strnumber = number.toString();
	var coma = strnumber.indexOf('.');
	var strdisplay = strnumber.concat('.00');	
	if (coma != -1) { strdisplay = strnumber.substr(0,coma + 2).concat('0'); }
	return strdisplay;
	
}


//VALIDATE WHETHER DATE IS PROPERLY ENTERED
function validateDateValue(date) {

//format passed date parameter in 'mm/dd/yyyy' 
	var re = /\D+/g;	
	var ddmmyyDate = date.replace(re, "/");
	
	// Extract termdate data bits
	var endOfDay = ddmmyyDate.indexOf('/');
	var endOfMonth = ddmmyyDate.lastIndexOf('/');
	day = ddmmyyDate.substr(0, endOfDay);
	month = ddmmyyDate.substr(endOfDay + 1, endOfMonth - endOfDay - 1);
	year = ddmmyyDate.substr(endOfMonth + 1, ddmmyyDate.length - endOfMonth - 1);
	
	var intYear = parseInt(year);
	var century = "";
	if (year.length == 2) {
		//set year prefix
		if( intYear > 50 ) { century = "19"; }
		 century = "20";
		}
	year = century + year;
	//get maximum no of days for each month
	maxdays = 30;	
	leapyear = 0;
	if (year % 4 == 0) { leapyear = 1; }	
	if ( month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12 )
	{ maxdays = 31; }
	else if (month == 2) { maxdays = 28 + leapyear; }
	
	if ( (parseInt(year) > 3000) || (parseInt(year) < 1900) ) { return false; }
	if ( (month > 12) || (month < 1) ) { return false; }
	if (day > maxdays) { return false; }
	return true;
}

function fixMoney(fld,sep)
{ // monetary field check
  if(!fld.value.length||fld.disabled) return true; // blank fields are the domain of requiredValue 
  var val= fld.value;
  if(typeof(sep)!='undefined') val= val.replace(new RegExp(sep,'g'),'');
  
  if(val.indexOf('$') == 0)
    val= parseFloat(val.substring(1,40));
  else
    val= parseFloat(val);
  
  if(isNaN(val))
	return false
  else
  { // parse error 
	var sign= ( val < 0 ? '-': '' );
	val= Number(Math.round(Math.abs(val)*100)).toString();
	while(val.length < 2) val= '0'+val;
	var len= val.length;
	val= sign + ( len == 2 ? '0' : val.substring(0,len-2) ) + '.' + val.substring(len-2,len+1);
	fld.value= val;
	return true;
  }
}

// Left(string, length): Returns a specified number of characters from the left side of a string
function Left(str, n)
/***
        IN: str - the string we are LEFTing
            n - the number of characters we want to return

        RETVAL: n characters from the left side of the string
***/
{
        if (n <= 0)     // Invalid bound, return blank string
                return "";
        else if (n > String(str).length)   // Invalid bound, return
                return str;                // entire string
        else // Valid bound, return appropriate substring
                return String(str).substring(0,n);
}


//---------------------------------------------------------------------------------------------
//CALCULATORS FUNCTIONS
//---------------------------------------------------------------------------------------------

//TEST IF DEATH BENEFIT IS NOT LESS THAN TPD BENEFIT 
function ValidateDeath(form,field,dobctrl) {
	
	var dob = document.getElementById(form + "_" + dobctrl).value;
	
	//var strDay = document.getElementById(form + "_lstDobDay").options[document.getElementById(form + "_lstDobDay").selectedIndex].text;
	//var strMonth = document.getElementById(form + "_lstDobMonth").options[document.getElementById(form + "_lstDobMonth").selectedIndex].text;
	//var strYear = document.getElementById(form + "_txtDobYear").value;
	
	//var dob = strdob.concat(strDay,"/",strMonth,"/",strYear);
	
	//var dob = strdob.concat(document.getElementById(form + "_lstDobDay").options[].Text,"/",document.getElementById(form + "_lstDobMonth").SelectedItem.Text,"/",document.getElementById(form + "_txtDobYear").value);
	//document.getElementById('AccumulationPlusCalculatorNew1_lstDobDay').options[document.getElementById('AccumulationPlusCalculatorNew1_lstDobDay').selectedIndex].text

	if (validateDateValue(dob)) {
		var basiccover = calculateBasicCover(form,dob); 
		var age = CalculateAge(dob, document.getElementById(form + "_txtCalcDate").value);
		
		if (age >= 16 && age <= 64) {
			var dunits = parseFloat(document.getElementById(form + "_" + field).value);
			var dunitcost = GetVolDeath(age);
			var	dbenefit = parseFloat(basiccover) + parseFloat(dunits * dunitcost);
			document.getElementById(form + "_txtDinsurance").value = formatNumber(dbenefit);	
		}	
		else 
			document.getElementById(form + "_txtDinsurance").value = 0.00;	
	}
}	

//TEST IF TPD BENEFIT IS NOT MORE THAN DEATH BENEFIT 
function ValidateTPD(form,field,dobctrl) {

	var dob = document.getElementById(form + "_" + dobctrl).value;

	if (validateDateValue(dob)) {
		var basiccover = calculateBasicCover(form,dob);
		var age = CalculateAge(dob, document.getElementById(form + "_txtCalcDate").value);
		
		if (age >= 16 && age <= 64) {
			var dunits = parseFloat(field.value);
			var tpdunits = parseFloat(document.getElementById(form + "_ddlVolTPDUnits").value);	
			var tpdunitcost = GetVolTpd(age);		
			var	tpdbenefit = parseFloat(basiccover) + parseFloat(tpdunits * tpdunitcost);
			document.getElementById(form + "_txtTPDInsurance").value = formatNumber(tpdbenefit);
		}
		else
			document.getElementById(form + "_txtTPDInsurance").value = 0.00;

	}
}	

//CALCULATE VOLUNTARY DEATH BENEFIT FOR BASIC AND STANDARD 
function CalculateVolDeathCover(form,field,dobctrl,coverctrl) {
	
	var dob = document.getElementById(form + "_" + dobctrl).value;
	
	if (validateDateValue(dob)) {
		var age = CalculateAge(dob, document.getElementById(form + "_txtCalcDate").value);
		
		if (age >= 16 && age <= 64) {
			var dunits = parseFloat(document.getElementById(form + "_" + field).value);
			var dunitcost = GetVolDeath(age);
			var	dbenefit = parseFloat(dunits * dunitcost);
			document.getElementById(form + "_" + coverctrl).value = formatNumber(dbenefit);	
		}	
		else 
			document.getElementById(form + "_" + coverctrl).value = '';	
	}

}


///////////////////////////////////////////////////////////////////////////////////
//Check when pension started and member's age to setup UPP or tax-free PP
function SetPensionUPP(form,dobfld,dtfld) {

	var dob = document.getElementById(form + "_" + dobfld).value;
	var startdate = document.getElementById(form + "_" + dtfld).value;

	if ( (dob=='') || (startdate=='')) { //do nothing
	} else {
	
		var age = CalculateAge(dob,startdate);
		
		//validate startdate
		var startval = startdate;
		var re = /\D+/g;
		var ddmmyyStart = startval.replace(re, "/");
		var endOfDay = ddmmyyStart.indexOf('/');
		var endOfMonth = ddmmyyStart.lastIndexOf('/');
	
	startDay = ddmmyyStart.substr(0, endOfDay);
		if ( (startDay.length == 2) && (startDay.substr(0,1) == '0') )
			{ startDay = startDay.substr(1,1); }
	startMonth = ddmmyyStart.substr(endOfDay + 1, endOfMonth - endOfDay - 1);
		if ( (startMonth.length == 2) && (startMonth.substr(0,1) == '0') )
			{ startMonth = startMonth.substr(1,1); }
	startyear = ddmmyyStart.substr(endOfMonth + 1, ddmmyyStart.length - endOfMonth - 1); 
	
	var intStartDay = parseInt(startDay);
	var intStartMonth = parseInt(startMonth);
	var intStartYear = parseInt(startyear);
	
	var century = "";
	//set year prefix
	if (startyear.length == 2) {century = "19";}
	var startyear = century + startyear;
	var intStartYear = parseInt(startyear);  
	var before = false;	
	if 	(intStartYear < 2007) before=true;
	if  ( (intStartYear == 2007) && (intStartMonth < 7) ) before=true;
	
		
		if ( (age<60) && (before==true) )
		//or partial commutation has not happened in SVII
		{//UPP
			document.getElementById(form + "_txtPrice").disabled=false;
			document.getElementById(form + "_txtPrice").style.backgroundColor='#ffffff';
			document.getElementById(form + "_rfvPrice").disabled=false;
			document.getElementById(form + "_cvPrice").disabled=false;
			document.getElementById(form + "_cvPrice2").disabled=false;
			document.getElementById(form + "_txtTaxFree").disabled=true;
			document.getElementById(form + "_txtTaxFree").style.backgroundColor='LightSteelBlue'; //#b2d07c';
			document.getElementById(form + "_txtPrice").value = '0';
			document.getElementById(form + "_txtTaxFree").value = '';
			document.getElementById(form + "_rbtnYesncap").disabled=true;
			document.getElementById(form + "_rbtnNoncap").disabled=true;
			
		} else if ( (age<60) && (before==false) ) { 
		//tax-free percentage
			document.getElementById(form + "_txtTaxFree").disabled=false;
			document.getElementById(form + "_txtTaxFree").style.backgroundColor='#ffffff';
			document.getElementById(form + "_txtPrice").disabled=true;
			document.getElementById(form + "_txtPrice").style.backgroundColor='LightSteelBlue'; //#b2d07c';
			document.getElementById(form + "_rfvPrice").disabled=true;
			document.getElementById(form + "_cvPrice").disabled=true;
			document.getElementById(form + "_cvPrice2").disabled=true;
			document.getElementById(form + "_txtTaxFree").value = '0';
			document.getElementById(form + "_txtPrice").value = '';
			document.getElementById(form + "_rbtnYesncap").disabled=false;
			document.getElementById(form + "_rbtnNoncap").disabled=false;
		}
		else {
		//do nothing age > 60
			document.getElementById(form + "_txtPrice").disabled=true;
			document.getElementById(form + "_txtPrice").style.backgroundColor='LightSteelBlue'; //#b2d07c';
			document.getElementById(form + "_rfvPrice").disabled=true;
			document.getElementById(form + "_cvPrice").disabled=true;
			document.getElementById(form + "_cvPrice2").disabled=true;
			document.getElementById(form + "_txtTaxFree").disabled=true;
			document.getElementById(form + "_txtTaxFree").style.backgroundColor='LightSteelBlue'; //'#b2d07c';
			document.getElementById(form + "_txtPrice").value='';
			document.getElementById(form + "_txtTaxFree").value='';
			document.getElementById(form + "_rbtnYesncap").disabled=true;
			document.getElementById(form + "_rbtnNoncap").disabled=true;
		}
	}
}

function UpdatePensionLimitsOld(form,blnfld,startdate,agefld) {

	var balance = document.getElementById(form + "_" + blnfld ).value;
	var memberage = document.getElementById(form + "_" + agefld ).value;
	
	if ( (balance == "") || isNaN(balance) || (memberage == "") || (startdate == "") ) {
			document.getElementById(form + "_txtLowerPensionField").value = "";
			document.getElementById(form + "_txtHigherPensionField").value = "";
			return;
			} 
		
		//		//test if before 1/1/2006 - old factors
		if (IsBeforeEndDate(startdate,'1/1/2006')) {  //old factor tables
					
				lowerLimit = GetOlderLowerLimit(parseInt(memberage));
					higherLimit = GetOlderHigherLimit(parseInt(memberage));
					
				} else {
		
					//or after 1/1/2006 - latest factor tables
				lowerLimit = roundHundreds(parseFloat(balance) / GetLowerLimit(parseInt(memberage)));
		
				if (isNaN(GetHigherLimit(parseInt(memberage)))) { 
					higherLimit = GetHigherLimit(parseInt(memberage)); 
				} else { 
					higherLimit = roundHundreds(parseFloat(balance) / GetHigherLimit(parseInt(memberage)));		
				}
				
			} 

	//show values on the screen
	document.getElementById(form + "_txtLowerPensionField").value = RoundDown(lowerLimit); 
	document.getElementById(form + "_txtHigherPensionField").value = RoundDown(higherLimit); 

}

function RoundDown(valueToRound) {
    
      var floorValue = Math.floor(valueToRound);
      //if ((valueToRound - floorValue) > .5) ?????
     // {
      //  return (floorValue + 1);
          return (floorValue);
 
    }
///////////////////////////////////////////////////////////////////////////////////
//CALCULATE PENSION LIMITS
function UpdatePensionLimits(form,blnfld,dobfld,dtfld,ncapfld,todaydt,year) {
	var balance = document.getElementById(form + "_" + blnfld ).value;
	var dob = document.getElementById(form + "_" + dobfld).value;
	var startdate = document.getElementById(form + "_" + dtfld).value;
	var memberage;
	
	if ( (balance == "") || isNaN(balance) || (dob == "") || (startdate == "") ) {
		document.getElementById(form + "_txtLowerPensionField").value = "";
		document.getElementById(form + "_txtHigherPensionField").value = "";
		return;
		} 
	
		document.getElementById(form + "_" + blnfld ).value = formatNumber(balance);
		// first check what date is later - startdate or 1/07 current fin year		
		var strfinancialyear = "";
		strfinancialyear = strfinancialyear.concat("01/07/",year);
	 
		if ( IsBeforeEndDate(startdate,strfinancialyear) == true ) { 
	
			memberage = CalculateAge(dob,strfinancialyear);
		} else {
			memberage = CalculateAge(dob,startdate); }
	
		//' strip commas
		var re = /,/g;
		balance = balance.replace(re,"");

			
		//apply pension factors for pensions commenced before 20.9.2007
	//if ( IsBeforeEndDate(startdate,'20/9/2007')) {  
		 		
			
			
			//		//test if before 1/1/2006 - old factors
			//	if (IsBeforeEndDate(startdate,'1/1/2006')) {  //old factor tables
					
			//		lowerLimit = GetOlderLowerLimit(parseInt(memberage));
			//		higherLimit = GetOlderHigherLimit(parseInt(memberage));
					
			//	} else {
		
					//or after 1/1/2006 - latest factor tables
			//		lowerLimit = roundHundreds(parseFloat(balance) / GetLowerLimit(parseInt(memberage)));
		
			//		if (isNaN(GetHigherLimit(parseInt(memberage)))) { 
			//			higherLimit = GetHigherLimit(parseInt(memberage)); 
		//			} else { 
		//				higherLimit = roundHundreds(parseFloat(balance) / GetHigherLimit(parseInt(memberage)));		
			//		}
				
			//	} 
	
//	} else {
	

	
		//apply 'new' factors for pensions commenced after 20.9.2007				
		var lowerpercent = GetLowerPensionPercent(parseInt(memberage)); 		
		lowerLimit = lowerpercent * balance;
		higherLimit = balance;
		
		if (document.getElementById(form + "_" + ncapfld).checked==true) {
			 higherLimit = (0.1 * balance);	}
	//	}
		
//	}
	
	//show values on the screen
	document.getElementById(form + "_txtLowerPensionField").value = RoundDown(lowerLimit); 
	document.getElementById(form + "_txtHigherPensionField").value = RoundDown(higherLimit); 
}



///////////////////////////////////////////////////////////////////////////////////
//CALCULATE PENSION LIMITS - with initial prorated limits

function UpdatePensionLimitsProrated(prorated,currentbalance,dob,start,minimum,maximum,ncap,form,blnfld,dobfld,dtfld,ncapfld,todaydt,year) {
	var finYear;	
	if (validateDateValue(document.getElementById(form + "_" + dtfld).value)==true)
	{
		finYear=document.getElementById(form + "_" + dtfld).value.substring(6);
	}
	else
	{
		window.alert("Start Date has to be dd/mm/yyyy");
		return;
	}
	var proratedvalue = prorated;
	if (prorated == 1) {
	
	var balance = document.getElementById(form + "-" + blnfld ).value;
	var dobdate = document.getElementById(form + "_" + dobfld).value;
	var startdate = document.getElementById(form + "_" + dtfld).value;
	var ncapvalue = 0;
	if (document.getElementById(form + "_" + ncapfld).checked) { ncapvalue=1; }
	
		//if member did not change personal data - prorated limits amounts are used in calculation
		if ( (currentbalance == balance) && (dobdate == dob) && (startdate == start) ) { 
			
			if (ncapvalue == ncap) {	
					document.getElementById(form + "_txtHigherPensionField").value = RoundDown(maximum);
					return;  }
			else	{ 
			
					if (ncap==0) { document.getElementById(form + "_txtHigherPensionField").value = RoundDown(maximum / 10); }
					if (ncap==1) { document.getElementById(form + "_txtHigherPensionField").value = RoundDown(maximum * 10); }
					return; 
			}
		}
	}
	
	var balance = document.getElementById(form + "_" + blnfld ).value;
	var dobdate = document.getElementById(form + "_" + dobfld).value;
	var startdate = document.getElementById(form + "_" + dtfld).value;
	var memberage;
	
	if ( (balance == "") || isNaN(balance) || (dobdate == "") || (startdate == "") ) {
		document.getElementById(form + "_txtLowerPensionField").value = "";
		document.getElementById(form + "_txtHigherPensionField").value = "";
		return;
		} 
	
		document.getElementById(form + "_" + blnfld ).value = formatNumber(balance);
		// first check what date is later - startdate or 1/07 current fin year		
		var strfinancialyear = "";
		strfinancialyear = strfinancialyear.concat("01/07/",finYear);
	 
		if ( IsBeforeEndDate(startdate,strfinancialyear) == true ) { 
			memberage = CalculateAge(dobdate,strfinancialyear);			
		} else {
			memberage = CalculateAge(dobdate,startdate); }
	
		if (memberage >= 60)
		{
			document.getElementById(form + "_txtTaxFree").value=100;
			document.getElementById(form + "_txtTaxFree").disabled=true;
			document.getElementById(form + "_txtTaxFree").Style='background-color: #D7C9E6;'
		}
		else
		{
			//document.getElementById(form + "_txtTaxFree").value="";
			document.getElementById(form + "_txtTaxFree").disabled=false;
			//document.getElementById(form + "_txtTaxFree").Style='background-color: White;'
		}
		//' strip commas
		var re = /,/g;
		balance = balance.replace(re,"");
	
		//apply 'new' factors for pensions commenced after 20.9.2007				
		var lowerpercent = GetLowerPensionPercent(parseInt(memberage)); 		
		lowerLimit = lowerpercent * balance;
		higherLimit = balance;
		
		if (document.getElementById(form + "_" + ncapfld).checked==true) {
			 higherLimit = (0.1 * balance);	}

	//show values on the screen
	document.getElementById(form + "_txtLowerPensionField").value = RoundDown(lowerLimit); 
	document.getElementById(form + "_txtHigherPensionField").value = RoundDown(higherLimit); 
//	}
	
}





function ValidateAgeBeforePreservation(form,dobfld,dtfld,todaydt) {

		var dob = document.getElementById(form + "_" + dobfld).value;
		var startdate = document.getElementById(form + "_" + dtfld).value;
		if ( (dob == "") || (startdate == "") ) { return; }
		
		var memberage = CalculateAge(dob,startdate);
		var preservationage = GetPreservationAge(dob);

				if ( (memberage<preservationage) && (!IsBeforeEndDate(startdate,todaydt)) ) {
				
				var path = "../Disclaimer/agepreservationwarning.htm";
				OpenWarningWindow(path, 354, 240, true, false);		
				}
	}

function calculateCBW(form,salaryfld,classfld) {
	var salary = document.getElementById(form + "_" + salaryfld).value;
	var classf = document.getElementById(form + "_" + classfld).value;
	if ( (salary == "") || isNaN(salary) || (salary == 0) ) { // do nothing
		return; }
	else { 
		var salaryclass = (salary * 0.75)/52;
		var cbw = salaryclass;
		if (classf == 'GWE') {
			if (salaryclass < 650) cbw=650;					
		}
		else {
			if (salaryclass < 950) cbw=950;	
		}	
		document.getElementById(form + "_txtCBW").value = Math.round(cbw); //formatNumber(cbw);
	}
}

function formatPensionAmount(form,pensionfld) {

	var pension = document.getElementById(form + "_" + pensionfld).value;
	
		if ( (pension == "") || isNaN(pension) ) { }
		else {
		var pensvalue = document.getElementById(form + "_" + pensionfld).value;
		document.getElementById(form + "_" + pensionfld).value = formatNumber(pensvalue); }
}

function formatUPPAmount(form,pricefld) {

	var price = document.getElementById(form + "_" + pricefld).value;
	
		if ( (price == "") || isNaN(price) ) { }
		else {
		var pricevalue = document.getElementById(form + "_" + pricefld).value;
		document.getElementById(form + "_" + pricefld).value = formatNumber(pricevalue); }
}

function GetLowerPensionPercent(age) {
		var min;	
		var agevalue = 1 ;
		if ((age>=65) && (age<75)) agevalue = 2;
	    if ((age>=75) && (age<80)) agevalue = 3;
		if ((age>=80) && (age<85)) agevalue = 4;
		if ((age>=85) && (age<90)) agevalue = 5;
		if ((age>=90) && (age<=95)) agevalue = 6;
		
		switch (agevalue) {
						case 1: min=0.04; break;
						case 2: min=0.05; break;
						case 3: min=0.06; break;
						case 4: min=0.07; break;
						case 5: min=0.09; break;
						case 6: min=0.11; break;
						default : min=0.14; 
					}

		return min;
}

		
function IsBeforeEndDate(adate,enddate) {

	//validate startdate
		var startval = adate;
		var re = /\D+/g;
		var ddmmyyStart = startval.replace(re, "/");
		var endOfDay = ddmmyyStart.indexOf('/');
		var endOfMonth = ddmmyyStart.lastIndexOf('/');
	
		startDay = ddmmyyStart.substr(0, endOfDay);
		if ( (startDay.length == 2) && (startDay.substr(0,1) == '0') )
			{ startDay = startDay.substr(1,1); }
		startMonth = ddmmyyStart.substr(endOfDay + 1, endOfMonth - endOfDay - 1);
		if ( (startMonth.length == 2) && (startMonth.substr(0,1) == '0') )
			{ startMonth = startMonth.substr(1,1); }
		startyear = ddmmyyStart.substr(endOfMonth + 1, ddmmyyStart.length - endOfMonth - 1); 
		
		var intStartDay = parseInt(startDay);
		var intStartMonth = parseInt(startMonth);
		var intStartYear = parseInt(startyear);
		
		var century = "";
		//set year prefix
		if (startyear.length == 2) {century = "19";}
		var startyear = century + startyear;
		var intStartYear = parseInt(startyear);  
		
		//20/09/2007
		var endval = enddate;
		//var re = /\D+/g;
		var ddmmyyEnd = endval.replace(re, "/");
		var endOfEDay = ddmmyyEnd.indexOf('/');
		var endOfEMonth = ddmmyyEnd.lastIndexOf('/');
	
		endDay = ddmmyyEnd.substr(0, endOfEDay);
			if ( (endDay.length == 2) && (endDay.substr(0,1) == '0') )
			{ endDay = endDay.substr(1,1); }
		endMonth = ddmmyyEnd.substr(endOfEDay + 1, endOfEMonth - endOfEDay - 1);
		if ( (endMonth.length == 2) && (endMonth.substr(0,1) == '0') )
			{ endMonth = endMonth.substr(1,1); }
		endYear = ddmmyyEnd.substr(endOfEMonth + 1, ddmmyyEnd.length - endOfEMonth - 1); 
		
		var intEndDay = parseInt(endDay);
		var intEndMonth = parseInt(endMonth);
		var intEndYear = parseInt(endYear);
		
		//var century = "";
		//set year prefix
		if (endYear.length == 2) {century = "19";}
		var endYear = century + endYear;
		var intEndYear = parseInt(endYear);  
		
		var before = false;	
	
		if 	(intStartYear < intEndYear) before=true;
		if  ( (intStartYear == intEndYear) && (intStartMonth < intEndMonth) ) before=true;
		if ( (intStartYear == intEndYear) && (intStartMonth == intEndMonth) && (intStartDay < intEndDay) ) before=true;
		return before;
	
 }
	
//CALCULATE MEMBER'S AGE AS AT THE DATE OF TERMINATION
function CalculateAge(birthdate, termdate) 
{
	var re = /\D+/g;
	var ddmmyyStart = birthdate.replace(re, "/");
	var endOfDay = ddmmyyStart.indexOf('/');
	var endOfMonth = ddmmyyStart.lastIndexOf('/');
	birthDay = ddmmyyStart.substr(0, endOfDay);
	birthMonth = ddmmyyStart.substr(endOfDay + 1, endOfMonth - endOfDay - 1);
	if ( (birthMonth.length == 2) && (birthMonth.substr(0,1) == '0') )
			{ birthMonth = birthMonth.substr(1,1); }
	birthyear = ddmmyyStart.substr(endOfMonth + 1, ddmmyyStart.length - endOfMonth - 1); 
	
	var intBirthDay = parseInt(birthDay);
	var intBirthMonth = parseInt(birthMonth);
	var intBirthYear = parseInt(birthyear);
	
	var century = "";
	//set year prefix
	if (birthyear.length == 2) {century = "19";}
	var birthyear = century + birthyear;
	var intBirthYear = parseInt(birthyear);
	
	//Extract termdate data bits
	var ddmmyyEnd = termdate.replace(re, "/");
	var endOfDay = ddmmyyEnd.indexOf('/');
	var endOfMonth = ddmmyyEnd.lastIndexOf('/');
	termDay = ddmmyyEnd.substr(0, endOfDay);
	termMonth = ddmmyyEnd.substr(endOfDay + 1, endOfMonth - endOfDay - 1);
	if ( (termMonth.length == 2) && (termMonth.substr(0,1) == '0') )
			{ termMonth = termMonth.substr(1,1); }
			
	termyear = ddmmyyEnd.substr(endOfMonth + 1, ddmmyyEnd.length - endOfMonth - 1); 
	
	var intTermDay = parseInt(termDay);
	var intTermMonth = parseInt(termMonth);
	var intTermYear = parseInt(termyear);
	
	var century = "20";
	if (termyear.length == 4) { century = ""; }
	//if (termyear.length == 2) {
	//set year prefix
		//if (intTermYear > 50) century = "19";}
	
	var termyear = century + termyear;
	var intTermYear = parseInt(termyear);
	
	var age = intTermYear - intBirthYear;
	if ((intBirthMonth > intTermMonth) || (intBirthMonth == intTermMonth && intBirthDay > intTermDay)) age --;

	return (age);
	
}
//CALCULATE INSURANCE BASIC COVER
function calculateBasicCover(form,dobdate) {	
	var age = CalculateAge(dobdate, document.getElementById(form + "_txtCalcDate").value);
	if (age > 64 || age <= 16) { cover = 0; }
	else { cover = GetBasicCover(age); }
	return cover;	
}

//GET BASIC DEATH & TPD COVER
function GetBasicCover(age) {
	return basiccover[age];
}
//GET VOLUNTARY DEATH COVER
function GetVolDeath(age) {
	return deathcover[age];
}
//GET VOLUNTARY TPD COVER
function GetVolTpd(age) {
	return tpdcover[age];
}

//GET LOWER LIMIT RATE
function GetLowerLimit(age) {
	return ageFactor[age][0];
}

//GET HIGHER LIMIT RATE
function GetHigherLimit(age){
	return ageFactor[age][1];
}
//GET LOWER LIMIT RATE
function GetOlderLowerLimit(age) {
	return oldageFactor[age][0];
}

//GET HIGHER LIMIT RATE
function GetOlderHigherLimit(age){
	return oldageFactor[age][1];
}
//GET MALE fti LIFE EXPECTANCY INDEX
function GetMaleFtiIndex(age){
	return ftiExpectancy[age][0];
}
//GET FEMALE fti LIFE EXPECTANCY INDEX
function GetFemaleFtiIndex(age){
	if (age == 50) return 34;
	if (age < 50) return 34;
	return ftiExpectancy[age][1];
} 