 var percent = .3;
 var isCompatibleWithFlash = false; 
 var activeTab = 1;
 var cookieSaveArray = {'noDependentsHidden':'2a','noSpouseHidden':'2b','gdInsurance': 'a','lifeIncomeSource': 'b','lifeIncomeExpenses': 'c','lifeIncomeGap': 'd','pvIncomeContinue': 'e','pvIncomeGoodStart': 'f','pvIncomeGoodStartYear': 'g','pvIncomeGoodStartPer': 'h','pvIncomeFinanStart': 'i','pvIncomeFinanStartYear': 'j','pvIncomeFinanStartPer': 'k','pvIncomeFinanNeed': 'l','pvIncomeSurvivors': 'm','pvChildrenSSI': 'n','pvSpouseSSI': 'o','clientName': 'p','repName': 'q','oweHome': 'r','outstandingDebt': 's','settleEstate': 't','funeralCost': 'u','unplannedExpenses': 'v','totalCalculatedCost': 'w','specialNeeds': 'x','otherNeeds': 'y','currentfamilyincomeText': 'z','percentcontinue': '1a','yearstocontinue': '1b','spouseearnings': '1c','yearsspouseworks': '1d','socialsecurityforchildren': '1e','socialsecurityforchildrenyears': '1f','annualpension': '1g','currentavailableassets': '1h','grouplife': '1i','personalLife': '1j','longterminflation': '1k','longtermrateofreturn': '1l','odt':'odt','et':'et','es':'es','ait':'ait'};
 var cookieLoadArray = {'2a':'noDependentsHidden','2b':'noSpouseHidden','a':'gdInsurance','b':'lifeIncomeSource','c':'lifeIncomeExpenses','d':'lifeIncomeGap','e':'pvIncomeContinue','f':'pvIncomeGoodStart','g':'pvIncomeGoodStartYear','h':'pvIncomeGoodStartPer','i':'pvIncomeFinanStart','j':'pvIncomeFinanStartYear','k':'pvIncomeFinanStartPer','l':'pvIncomeFinanNeed','m':'pvIncomeSurvivors','n':'pvChildrenSSI','o':'pvSpouseSSI','p':'clientName','q':'repName','r':'oweHome','s':'outstandingDebt','t':'settleEstate','u':'funeralCost','v':'unplannedExpenses','w':'totalCalculatedCost','x':'specialNeeds','y':'otherNeeds','z':'currentfamilyincomeText','1a':'percentcontinue','1b':'yearstocontinue','1c':'spouseearnings','1d':'yearsspouseworks','1e':'socialsecurityforchildren','1f':'socialsecurityforchildrenyears','1g':'annualpension','1h':'currentavailableassets','1i':'grouplife','1j':'personalLife','1k':'longterminflation','1l':'longtermrateofreturn','odt':'odt','et':'et','es':'es','ait':'ait'};
 var wrokSheetArray = new Array('od','e','ai','p','ast','ins');
 var wrokSheetArrayCnt = new Array(11,34,10,39,10,10);
 var childCostArray = new Array("A", "B", "C", "D", "E"  );  
 var focusArray = new Array("clientName","childA", "currentfamilyincomeText", "spouseearnings", "currentavailableassets", "summary_mortgagepayoff");
 var blnNoDep = false;
 var blnNotMarried = false;
 var blnErrorMessage = true;

function getCookie(NameOfCookie)
{
  if (document.cookie.length > 0) 
  {
    begin = document.cookie.indexOf(NameOfCookie+"="); 
    if (begin != -1) 
    { 
     begin += NameOfCookie.length+1; 
     end = document.cookie.indexOf(";", begin);
     if (end == -1) end = document.cookie.length;
     return unescape(document.cookie.substring(begin, end)); 
    } 
  }
  return ""; 
}

function getNextElement (field) 
{
      var form = field.form;
      for (var e = 0; e < form.elements.length; e++)
        if (field == form.elements[e])
            break;
      return form.elements[++e % form.elements.length];
}


function setCookie(NameOfCookie, value ) 
{ 
  var expiredays = 365;
  var ExpireDate = new Date ();
  ExpireDate.setTime(ExpireDate.getTime() + (expiredays * 24 * 3600 * 1000));
  document.cookie = NameOfCookie + "=" + escape(value) + 
  ((expiredays == null) ? "" : "; expires=" + ExpireDate.toGMTString());
}



function delCookie (NameOfCookie) 
{ 
  if (getCookie(NameOfCookie)) 
  {
   document.cookie = NameOfCookie + "=" +
   "; expires=Thu, 01-Jan-70 00:00:01 GMT";
  }
}
 
 
function LoadCookies()
{
  //alert( document.cookie );
  var cookieStr = getCookie( 'PrincipalLifeInsCalculator' ) ;
  var elementsValuePair = cookieStr.substring(cookieStr.indexOf("?")+1,cookieStr.length).split("&");
  var eleLength = elementsValuePair.length;
  var currTab = 1;
  var tempChildArray = new Array();
  
  
  
  for( keyVar in childCostArray )
  {
    var fldPos = childCostArray[keyVar];
    tempChildArray[fldPos + "amC"] = "child" + fldPos + "amount";
    tempChildArray[fldPos + "agC"] = "child" + fldPos + "age";
    tempChildArray[fldPos + "yrC"] = "child" + fldPos + "years";
 
  }  
  
  for( i = 0; i<eleLength; i++ )
  {
  
   elementVP = elementsValuePair[i].split("=");
   elementObj = document.frmInput.elements[cookieLoadArray[elementVP[0]]];
   
   if( elementVP[0] != "" )
   {
     if( elementObj != null )
     {
       if( elementObj.type == "select-one" )
	 elementObj.options[elementVP[1]].selected=true;  
       else
	 elementObj.value =  elementVP[1];   
     }
     else
     {
       elementObj = document.frmInput.elements[elementVP[0]];
       if( elementObj != null )
	 elementObj.value =  elementVP[1];        
       else
       {
	 elementObj = document.frmInput.elements[tempChildArray[elementVP[0]]];
	 if( elementObj != null )
	   elementObj.value =  elementVP[1]; 
       }
     }

     if( elementVP[0] == "tab" )
      currTab = elementVP[1];
      
     if( elementVP[0] == "2a" )
     {
     	document.getElementById("noDependentsHidden" ).value = elementVP[1];
     	if( elementVP[1] == "1" )
     	blnNoDep = true;
     }
     
     if( elementVP[0] == "2b" )
     {
     	document.getElementById("noSpouseHidden" ).value = elementVP[1];
     	if( elementVP[1] == "1" )
     	blnNotMarried = true;
     }     
      

    }
  
   }
   
   
   activateTab( "step"+currTab, currTab ); 
   
 
}
  

function SaveCookies()
{
  var eleLength = document.frmInput.elements.length;
  
  var nameValue = "";
  var cookieStr = "";
  
  for( i = 0; i< eleLength; i++ )
  {
    elementObj = document.frmInput.elements[i];
    
    if( cookieSaveArray[elementObj.name] != undefined )
    {
    
      if( elementObj.type == "hidden" || elementObj.type == "text" || elementObj.type == "select-one" )
      {

        if( elementObj.type == "select-one" )
        {
	  nameValue = nameValue + elementObj.name + " " + elementObj.type + " " + elementObj.selectedIndex + "  " + elementObj.value + "   ---   ";
	  cookieStr = cookieStr +  cookieSaveArray[elementObj.name] + "=" + elementObj.selectedIndex + "&";

        }
        else
        {
        
	 nameValue = nameValue + elementObj.name + " " + elementObj.type + " " + elementObj.value + "   ---   ";
	 cookieStr = cookieStr + cookieSaveArray[elementObj.name] + "=" + elementObj.value + "&";
       }
     }
    }
  }
  
  for( i=0; i<wrokSheetArray.length; i++ )
  {
    for (j=0; j<=wrokSheetArrayCnt[i]; j++ )
    {
      fldName= wrokSheetArray[i]+j;
      elementObj = document.frmInput.elements[fldName];
      cookieStr = cookieStr +  fldName + "=" + elementObj.value + "&";
    }
  } 

  for( keyVar in childCostArray )
  {
    var fldPos = childCostArray[keyVar];
    cookieStr = cookieStr +  fldPos + "amC" + "=" + document.frmInput["child" + fldPos + "amount"].value  + "&";
    cookieStr = cookieStr +  fldPos + "agC" + "=" + document.frmInput["child" + fldPos + "age"].value + "&";
    cookieStr = cookieStr +  fldPos + "yrC" + "=" + document.frmInput["child" + fldPos + "years"].value + "&";
  }
  
  cookieStr = cookieStr + "tab=" + activeTab + "&";
  
  //alert( nameValue );
  //alert( cookieStr );
  
  setCookie( 'PrincipalLifeInsCalculator', cookieStr );
  
  //alert( document.cookie );

  
}
 
//----------------------------------------------------------------------WORKSHEET-------------------------------------------------------//

 
function OpenUtilitiesWorksheet()
{
  popupWin = window.open('WorksheetUtilities.htm', '', 'width=370,height=410,left=342,top=80');
}
function OpenAutoWorksheet()
{
  popupWin = window.open('WorksheetAuto.htm', '', 'width=370,height=410,left=342,top=80');
}
function OpenLoanWorksheet()
{
  popupWin = window.open('WorksheetLoans.htm', '', 'width=370,height=410,left=342,top=80');
}
function OpenInsuranceWorksheet()
{
  popupWin = window.open('WorksheetInsurance.htm', '', 'width=380,height=330,left=342,top=80');
}
function OpenChildCareWorksheet()
{
  popupWin = window.open('WorksheetChildCare.htm', '', 'width=370,height=410,left=342,top=80');
}
function OpenOtherExpensesWorksheet()
{
  popupWin = window.open('WorksheetOtherExpenses.htm', '', 'width=370,height=410,left=342,top=80');
} 

//----------------------------------------------------------------------Math Calculation-------------------------------------------------------//
 
function setBackground(field,bIn)
{
  //if (bIn)
  //  field.style.backgroundColor='#ffb200';
  //else
  //  field.style.backgroundColor='#ffffff';
}
 
function CalculatePva(payment, periods, rate)
{
	if(periods <= 0) return 0;
	if(rate == 0) rate = 0.001;
	
	var coef = Math.pow((1+rate), -periods);
	var annuity = payment*(1 - coef)/rate;
	//return parseInt(annuity);
	return Math.ceil(annuity);
}

function CalculatePvaShifted(payment, age, years, rate)
{
	if(years <= 0 || payment <= 0) return 0;
	if(rate == 0) rate = 0.001;
	
	if(age > 18) age = 18;
	
	var coef1 = Math.pow((1+rate), -(18 - age));	
	var coef2 = Math.pow((1+rate), -(18 - age + years));
	
	var annuity = payment*(1 - coef2)/rate - payment*(1 - coef1)/rate;
	return parseInt(annuity);
} 

function CalculateSpouseSS(payment, periods, rate)
{
	if (periods <= 0) return 0;
	if (rate == 0) rate = 0.001;
	var newPayment = payment*13.7535;
		
	var coef = format_number(Math.pow((1+rate), -periods),4);
	
	//alert('coef->'+coef);
	var annuity = newPayment*coef;
	//alert(parseInt(annuity));
	return parseInt(annuity);
}

function format_number(pnumber,decimals)
{ 
  if (isNaN(pnumber)) { return 0}; 
  if (pnumber=='') { return 0}; 
  
  var IsNegative=(parseInt(pnumber)<0);
  if(IsNegative)pnumber=-pnumber;

  var snum = new String(pnumber); 
  var sec = snum.split('.'); 
  var whole = parseInt(sec[0]); 
  var result = ''; 
  if(sec.length > 1){ 
    var dec = new String(sec[1]); 
    dec = parseInt(dec)/Math.pow(10,parseInt(dec.length-decimals-1));
	Math.round(dec);
	dec = parseInt(dec)/10;
	
	if(IsNegative)
	{
	  var x = 0-dec;
      x = Math.round(x);
	  dec = - x;
	}
	else
	{
      dec = Math.round(dec);
	}

	/*
	 * If the number was rounded up from 9 to 10, and it was for 1 'decimal'
	 * then we need to add 1 to the 'whole' and set the dec to 0.
	 */
	if(decimals==1 && dec==10)
	{
	  whole+=1;
	  dec="0";
	}

    dec = String(whole) + "." + String(dec); 
    var dot = dec.indexOf('.'); 
    if(dot == -1){ 
      dec += '.'; 
      dot = dec.indexOf('.'); 
    }
	var l=parseInt(dot)+parseInt(decimals);
    while(dec.length <= l) { dec += '0'; } 
    result = dec; 
  } else{ 
    var dot; 
    var dec = new String(whole); 
    dec += '.'; 
    dot = dec.indexOf('.'); 
	var l=parseInt(dot)+parseInt(decimals);
    while(dec.length <= l) { dec += '0'; } 
    result = dec; 
  } 
  if(IsNegative)result="-"+result;
  return result; 
} 


//----------------------------------------------------------------------Tab Activation-------------------------------------------------------//
 
  function activateTab( tabcontentid, listId )
  { 
    var summaryTab = document.getElementById("summaryDiv" );
    var textDisclaimerTab = document.getElementById("textDisclaimer" );
    var threeColSummaryTab = document.getElementById("threeColSummary" );
    
    var imgObject = document.getElementById("stepImage" );
    var contentTabs = document.getElementById("contentTabs");
    //var tabList = contentTabs.getElementsByTagName("div");
    
    var tabList = new Array( document.getElementById("step1"), document.getElementById("step2"), document.getElementById("step3"),
    			     document.getElementById("step4"), document.getElementById("step5"), document.getElementById("step6") );
    
     
    
    var ulobj=document.getElementById("maintab");
    var ulist=ulobj.getElementsByTagName("li");
    
   if( listId == 11 )
   	listId = 2;
    
    
    if( listId <= 0 )
    	listId = 1;
    	
    if( listId >= 7 )
    	listId = 6;

    
    for (var x=0; x<ulist.length; x++)
    {
      tabList[x].style.display = "none";
      if( x == ( listId - 1 ) )
      {
        ulist[x].className="selected";
        imgObject.src = "images/step" + listId + ".gif";
        tabList[x].style.display = "inline";
        activeTab = listId;
        
        if( focusArray[x] == "childAage" )
        {
	  if( blnNoDep )
	  {
	   focusArray[x] = "specialNeeds";
	  }
        }
        
        if( focusArray[x] == "spouseearnings" )
        {
          if( blnNotMarried )
          {
            focusArray[x] = "socialsecurityforchildren";
          }
        }
        
        if( focusArray[x] == "socialsecurityforchildren" )
        {
	  if( blnNoDep )
	  {
	   focusArray[x] = "NextButton";
	  }
        }        
        
        
        document.getElementById( focusArray[x] ).focus();
        
        var obj = document.getElementById( focusArray[x] );
        
        if( obj.className == "Input" )
        {
         document.getElementById( focusArray[x] ).select();
        }
        
      }
      else
        ulist[x].className="";
        
        
    }
 
    
    textDisclaimerTab.style.display = "none";
    threeColSummaryTab.style.display = "none";
    
    if( listId == 6 ) //call summary
    {
      textDisclaimerTab.style.display = "inline";
      threeColSummaryTab.style.display = "inline";
      summaryTab.className = "hideitemDisplay";
     
    }
    else
    {
      summaryTab.className = "itemDisplay";
      textDisclaimerTab.style.display = "none";
      threeColSummaryTab.style.display = "none";
    }
    javascript:scroll(0,0);
  }
  
  
//----------------------------------------------------------------------String Functions-------------------------------------------------------//  
  
  function appendValue(strValue, aValue)
  {
    var re = /\$|,|%/gi;  
    strValue = strValue.replace(re,""); 
    return   strValue + aValue;
  }
  
  function prefixValue(strValue, pValue)
  {
    var re = /\$|,|%/gi;
    strValue = strValue.replace(re,""); 
    return   pValue + strValue ;    
  }

  function prefixIntValue(textObject)
  {
    textObject.value = FormatAsDollars( ConvertToInteger( textObject.value ) );
  }
 

function ConvertToInteger(strValue)
{
  // replace $ and ,
  var re = /\$|,|%/gi;
  strValue = strValue.replace(re,"");
  var temp = parseInt(strValue, 10);
  if(isNaN(temp)) temp = 0;
  if(temp < 0)
    temp = -temp;
  return temp;
}

function FormatAsDollars(num) 
{
  num = num.toString().replace(/\$|\,/g,'');
  if(isNaN(num))
    return "$0";
  sign = (num == (num = Math.abs(num)));
  num = Math.floor(num*100+0.50000000001);
  cents = num%100;
  num = Math.floor(num/100).toString();
  if(cents<10)
  cents = "0" + cents;
  for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
  num = num.substring(0,num.length-(4*i+3))+','+
  num.substring(num.length-(4*i+3));
  return (((sign)?'':'-') + '$' + num);
}


//----------------------------------------------------------------------Other Functions-------------------------------------------------------//  

function tabOnEnterSum (field, evt) 
{
      var keyCode = document.layers ? evt.which : evt.keyCode;
      if (keyCode != 13)
        return true;
      else 
    {
          getNextElement(field).focus();
          return false;
      }
}
function tabOnEnter (field ) 
{
  if (event.keyCode == 13) 
  {
    event.keyCode=9;
    return true;
  }
}

function selectOther()
{
  document.frmInput["gdInsurancePercent"].selectedIndex = 4;
}

function selectOtherValue( fldName )
{
  var sel = document.frmInput[fldName];
  var retVal = sel.options[sel.selectedIndex].value;
  
  if( retVal == "Other" )
    retVal = document.frmInput[fldName+"Other"].value;
   
  return retVal;
}


//----------------------------------------------------------------------Business Functions-------------------------------------------------------//  

 

function EnableTextFields()
{
  /*var otherArray = new Array("maxMonthlyBenefit", "wpDays", "benefitPeriodYears", "iwpDays", "indBenefitPeriodYears");
  for( keyVar in otherArray )
  {
    var spanOther = document.getElementById(otherArray[keyVar]+"OtherSpan");
    var sel = document.frmInput[otherArray[keyVar]];
    
    if( MSDetect == "true" )
    {
      if( sel.options[sel.selectedIndex].value == "Other" )
        spanOther.style.display = "inline";
      else
        spanOther.style.display = "none";
    }
    else
    {
   
    
      if( sel.options[sel.selectedIndex].value == "Other" )
        spanOther.style.display = "table-row";
      else
        spanOther.style.display = 'none';    
    }
  }*/
}


function FooterContent()
{
	var totalExpenses = 0;
	var cashNeeds = 0;
	var currIns = 0;
	var expenseArray = new Array("oweHome", "outstandingDebt", "settleEstate", "funeralCost", "unplannedExpenses");
	for( keyVar in expenseArray )
		totalExpenses = totalExpenses + ConvertToInteger(document.frmInput[expenseArray[keyVar]].value );
		
	 
	cashNeeds = FormatAsDollars( ConvertToInteger(document.frmInput["specialNeeds"].value )+ ConvertToInteger(document.frmInput["otherNeeds"].value ) );
	currIns = FormatAsDollars( ConvertToInteger(document.frmInput["grouplife"].value )+ ConvertToInteger(document.frmInput["personalLife"].value ) ); 
		
	document.frmInput.f_gs_final_exp.value = FormatAsDollars( totalExpenses );
	document.frmInput.f_yc_final_exp.value = FormatAsDollars( totalExpenses );
	document.frmInput.f_fs_final_exp.value = FormatAsDollars( totalExpenses ); 
	
	document.frmInput.f_gs_edu.value = document.frmInput.totalCalculatedCost.value;
	document.frmInput.f_yc_edu.value = document.frmInput.totalCalculatedCost.value;
	document.frmInput.f_fs_edu.value = document.frmInput.totalCalculatedCost.value;
	
	document.frmInput.f_gs_ocn.value = cashNeeds;
	document.frmInput.f_yc_ocn.value = cashNeeds;
	document.frmInput.f_fs_ocn.value = cashNeeds;
	
	document.frmInput.f_gs_ci.value =  document.frmInput.pvIncomeGoodStartYear.value  + " yrs";
	document.frmInput.f_gs_cip.value =   document.frmInput.pvIncomeGoodStartPer.value + "%";
	
	document.frmInput.f_yc_ci.value =  ConvertToInteger( document.frmInput.yearstocontinue.value )+ " yrs";
	document.frmInput.f_yc_cip.value = ConvertToInteger(  document.frmInput.percentcontinue.value )+ "%";
	
	document.frmInput.f_fs_ci.value =  document.frmInput.pvIncomeFinanStartYear.value+ " yrs";
    	document.frmInput.f_fs_cip.value =  document.frmInput.pvIncomeFinanStartPer.value+ "%";
    	
	document.frmInput.f_gs_ca.value = document.frmInput.currentavailableassets.value;
	document.frmInput.f_yc_ca.value = document.frmInput.currentavailableassets.value;
	document.frmInput.f_fs_ca.value = document.frmInput.currentavailableassets.value;    	
    	
     
    	document.frmInput.f_gs_cins.value = currIns;
    	document.frmInput.f_yc_cins.value = currIns;
    	document.frmInput.f_fs_cins.value = currIns;
    	
    	document.frmInput.f_gs_total.value = document.frmInput.pvIncomeGoodStart.value;
    	document.frmInput.f_yc_total.value = document.frmInput.summary_totallifeinsurance.value
    	document.frmInput.f_fs_total.value = document.frmInput.pvIncomeFinanNeed.value;
	 
	
}


function GlobalErrorMessage()
{
	if( blnErrorMessage )
	{
	  blnErrorMessage = false;
	  
	  if( activeTab == 6)
	  	alert( "Value can not be greater than years entered for 'Continue income for' under 'Survivor Income Needs'" );
	   
	   if( activeTab == 4)
	  	alert( "Value can not be greater than years entered for 'How many years would you prefer to assure this income?' in Step 3" );
	  blnErrorMessage = true;
	}
}


function PercentageErrorMessage()
{
 	if( blnErrorMessage )
 	{
 	  blnErrorMessage = false;
	  alert( "Please Enter a value between 1 and 100" );
  	  blnErrorMessage = true;
	}
}


function CalculateTotal(bMonthlyToAnnual)
{
    var totalExpenses = 0;
    var totalIncome = 0;
    var incomeGap = 0;
    var incomeFinSecGap = 0;
    var incomeGoodStartGap = 0;
    
    var rateOfReturn = ConvertToInteger( document.frmInput.longtermrateofreturn.value );
    var inflation = ConvertToInteger( document.frmInput.longterminflation.value );
    var rate = rateOfReturn - inflation;
    var rateAdjusted = rate / 100;
    
    var groupLifeVal = ConvertToInteger( document.frmInput.grouplife.value );
    var personalLifeVal = ConvertToInteger ( document.frmInput.personalLife.value);

    var tempExpLivingPercent = ConvertToInteger(document.frmInput.percentcontinue.value);
    
    if( tempExpLivingPercent > 100 )
    {
    	tempExpLivingPercent = 100;
    	PercentageErrorMessage();
    	document.frmInput.percentcontinue.value = "100%";
    }

    var expenseLiving = ConvertToInteger(document.frmInput.currentfamilyincomeText.value);
    var expenseLivingPercent = tempExpLivingPercent;
    var expenseLivingYears = ConvertToInteger(document.frmInput.yearstocontinue.value);
    
    
    
    var finSecurityPercent = expenseLivingPercent; //100;
    var finSecurityYears = ( expenseLivingYears < 60 )? (expenseLivingYears + 10) :expenseLivingYears;
    
    
    //var goodStartPercent = ( expenseLivingPercent> 50 )?50:expenseLivingPercent;
    var goodStartPercent = ( expenseLivingPercent> 50 )? (expenseLivingPercent - 15):expenseLivingPercent;
    var goodStartYears = expenseLivingYears; //( expenseLivingYears > 5 )?5 :expenseLivingYears;
    

    var spouseearningsVal = ConvertToInteger( document.frmInput.spouseearnings.value);
    var yearsspouseworksVal = ConvertToInteger( document.frmInput.yearsspouseworks.value);
    var socialsecurityforchildrenVal = ConvertToInteger( document.frmInput.socialsecurityforchildren.value);
    var socialsecurityforchildrenyearsVal = ConvertToInteger( document.frmInput.socialsecurityforchildrenyears.value);
    var annualpensionVal = ConvertToInteger( document.frmInput.annualpension.value);
    
    
    if( yearsspouseworksVal > expenseLivingYears )
    {
     GlobalErrorMessage();
     yearsspouseworksVal = expenseLivingYears;
     document.frmInput.summary_continueincomforsurvivor.value = yearsspouseworksVal + " yrs";
     document.frmInput.yearsspouseworks.value = yearsspouseworksVal + " yrs";
    }
    
    var expenseArray = new Array("oweHome", "outstandingDebt", "settleEstate", "funeralCost", "unplannedExpenses","totalCalculatedCost", "specialNeeds", "otherNeeds", "pvIncomeContinue");
    var resourceArray = new Array("currentavailableassets", "grouplife", "personalLife", "pvIncomeSurvivors", "pvChildrenSSI", "pvSpouseSSI"    );
    
    document.getElementById("clientName").innerHTML= document.frmInput.clientName.value;
    
      
 
    var totalChildCost = 0;
    for( keyVar in childCostArray )
    {
 
     var expenseChildAmount = ConvertToInteger( document.frmInput["child" + childCostArray[keyVar] + "amount"].value );
     var expenseChildAge = ConvertToInteger( document.frmInput["child" + childCostArray[keyVar] + "age"].value );
     var expenseChildYears = ConvertToInteger( document.frmInput["child" + childCostArray[keyVar] + "years"].value );
     var expenseChildCost = 0;
     
     expenseChildCost = CalculatePvaShifted(expenseChildAmount, expenseChildAge, expenseChildYears, rateAdjusted);
     
     totalChildCost = totalChildCost + expenseChildCost;
     
     document.frmInput["child" + childCostArray[keyVar] + "cost"].value = expenseChildCost;
    	
    }
    
    if( activeTab != 6 ) // if summary take the value directly
    	document.frmInput.totalCalculatedCost.value = totalChildCost;
    
    
    document.frmInput.pvIncomeContinue.value = CalculatePva(expenseLiving * expenseLivingPercent / 100, expenseLivingYears, rateAdjusted);
    
    document.frmInput.pvIncomeGoodStart.value = CalculatePva(expenseLiving * goodStartPercent / 100, goodStartYears, rateAdjusted);
    document.frmInput.pvIncomeGoodStartYear.value = goodStartYears;
    document.frmInput.pvIncomeGoodStartPer.value = goodStartPercent;
    
    document.frmInput.pvIncomeFinanStart.value = CalculatePva(expenseLiving * finSecurityPercent / 100, finSecurityYears, rateAdjusted);
    document.frmInput.pvIncomeFinanStartYear.value =finSecurityYears;
    document.frmInput.pvIncomeFinanStartPer.value =finSecurityPercent;
    
    document.frmInput.pvIncomeSurvivors.value =  CalculatePva(spouseearningsVal, yearsspouseworksVal, rateAdjusted);
    
    document.frmInput.pvSpouseSSI.value =  CalculateSpouseSS(annualpensionVal, yearsspouseworksVal, rateAdjusted);
    
    
    document.frmInput.pvChildrenSSI.value =  CalculatePva(socialsecurityforchildrenVal, socialsecurityforchildrenyearsVal, rateAdjusted);
    
    
    document.frmInput.summary_presentvalue.value  = FormatAsDollars( document.frmInput.pvIncomeContinue.value );
    document.frmInput.summary_pvofsurvivor.value  = FormatAsDollars( document.frmInput.pvIncomeSurvivors.value );
    document.frmInput.summary_pvofspousepension.value  = FormatAsDollars( document.frmInput.pvSpouseSSI.value );
    document.frmInput.summary_pvofchildren.value  = FormatAsDollars( document.frmInput.pvChildrenSSI.value );
    
    
    
    for( keyVar in expenseArray )
      totalExpenses = totalExpenses + ConvertToInteger(document.frmInput[expenseArray[keyVar]].value );
    
    for( keyVar in resourceArray )
      totalIncome = totalIncome + ConvertToInteger(document.frmInput[resourceArray[keyVar]].value );
  		
  		
  if( totalExpenses > totalIncome )
  {
    incomeGap = ( totalExpenses - totalIncome );
    incomeFinSecGap = ( totalExpenses - totalIncome ) + ( document.frmInput.pvIncomeFinanStart.value - document.frmInput.pvIncomeContinue.value );
    incomeGoodStartGap= ( totalExpenses - totalIncome ) + ( document.frmInput.pvIncomeGoodStart.value - document.frmInput.pvIncomeContinue.value );
  }
  
  if( incomeFinSecGap <= 0 )
  	document.frmInput.pvIncomeFinanNeed.value = "None";
  else
  	document.frmInput.pvIncomeFinanNeed.value  = FormatAsDollars( incomeFinSecGap+"" );

  
  if( incomeGap <= 0 )
  	document.frmInput.summary_totallifeinsurance.value = "None";
  else
  	document.frmInput.summary_totallifeinsurance.value  = FormatAsDollars( document.frmInput.lifeIncomeGap.value );
  
  if( incomeGoodStartGap <= 0 )
  	document.frmInput.pvIncomeGoodStart.value = "None";
  else
  	document.frmInput.pvIncomeGoodStart.value  = FormatAsDollars( incomeGoodStartGap+"" );
  
  document.frmInput.lifeIncomeSource.value = totalIncome;
  document.frmInput.lifeIncomeExpenses.value = totalExpenses;
  document.frmInput.lifeIncomeGap.value = incomeGap;
  

  
  
  
  EnableTextFields(); 
  FooterContent();
  
  if( activeTab != 6 )
  	SummaryContent();  
  
  //isCompatibleWithFlash = true;
  if( isCompatibleWithFlash )
  {
  	  if(window.frmInput) 
	  {   
	    window.document["chart"].SetVariable("varExpenses", totalIncome );
	    window.document["chart"].SetVariable("varDisabilityIncome",  totalExpenses );
	    window.document["chart"].SetVariable("varPersonal", personalLifeVal );
	    window.document["chart"].SetVariable("varIncome", groupLifeVal ); 
	    window.document["chart"].SetVariable("varFinal", "yes");      
	  }
	  if(document.frmInput) 
	  { 

	    document.chart.SetVariable("varExpenses", totalIncome ); //TotalIncome
	    document.chart.SetVariable("varDisabilityIncome", totalExpenses ); //expenseTotal
	    document.chart.SetVariable("varPersonal", personalLifeVal ); //incomePersonalInsurance
	    document.chart.SetVariable("varIncome", groupLifeVal ); //incomeOtherInsurance
	    document.chart.SetVariable("varFinal", "yes");    
	  }  
  }
    

}


function CalculateSummaryTotal(bMonthlyToAnnual)
{
 var mainflds = new Array("oweHome", "outstandingDebt", "settleEstate", "funeralCost", "unplannedExpenses",
 			  "totalCalculatedCost", "specialNeeds", "otherNeeds",
 			  "currentfamilyincomeText", "percentcontinue", "yearstocontinue", "pvIncomeContinue",
 			  "currentavailableassets", "grouplife", "personalLife", "longterminflation", "longtermrateofreturn",
 			  "spouseearnings", "yearsspouseworks", "pvIncomeSurvivors", "socialsecurityforchildren", "socialsecurityforchildrenyears", "pvChildrenSSI", "pvSpouseSSI","annualpension"
  			);
 
 var summary = new Array("summary_mortgagepayoff", "summary_outstandingdebts", "summary_estatesettlementcosts", "summary_funeralexpenses", "summary_unplannedexpenses",
 			  "summary_education", "summary_specialneeds", "summary_otherneeds",
 			  "summary_currentfamilyincome", "summary_continueincome", "summary_continueincomefor", "summary_presentvalue",
 			  "summary_currentassets", "summary_grouplifeinsurance", "summary_personallifeinsurance", "summary_inflationassumption", "summary_assetsreturnassumption",
 			  "summary_survivorincome", "summary_continueincomforsurvivor", "summary_pvofsurvivor", "summary_childrenssi", "summary_continuessi","summary_pvofchildren","summary_pvofspousepension","summary_spousepension"
 			 );
 
 for( keyVar in mainflds )
 {
 	var summary_fldName = summary[keyVar];
 	var fldName = mainflds[keyVar];
 	var tempVal = document.frmInput[summary_fldName].value ;
 	
 	if( fldName == "percentcontinue" )
 	{
 	  if( ConvertToInteger( tempVal ) > 100 )
    	    {
		tempVal = "100%";
		PercentageErrorMessage();
		document.frmInput[summary_fldName].value = tempVal;
	    }	
 	}
 	
 	document.frmInput[fldName].value = tempVal;
 }
 
 CalculateTotal(bMonthlyToAnnual);
}

function SummaryContent()
{
  var summaryContent = "";
  var stepArray = new Array();
  var fieldArray = new Array();
  var summarry = new Array();
  
 

  stepArray["STEP 1"] = ["Mortgage pay off amount", "Outstanding debts", "Estate settlement costs", "Funeral expenses", "Unplanned expenses"];
  stepArray["STEP 2"] = ["Education", "Special needs", "Other needs"];
  stepArray["STEP 3"] = ["Current family income", "Percent to continue", "Years to continue", "Present value (PV) of income<br> to continue (adjusted)" ];
  stepArray["STEP 4"] = ["Survivor's earned income", "Continue years", "PV of Survivor's income<br>(adjusted)",	 "Children SSI", "Continue SSI years", "PV of Children SSI (adjusted)", "PV of Spouse SSI (adjusted)"];
  stepArray["STEP 5"] = ["Current assets", "Group life insurance", "Personal life insurance", "Inflation assumption", "Rate of return assumption"];
  stepArray["RESULT"] = ["Total life insurance need"];
  
  fieldArray["STEP 1"] = ["oweHome", "outstandingDebt", "settleEstate", "funeralCost", "unplannedExpenses" ];
  fieldArray["STEP 2"] = ["totalCalculatedCost", "specialNeeds", "otherNeeds"  ];
  fieldArray["STEP 3"]  = ["currentfamilyincomeText", "percentcontinue", "yearstocontinue", "pvIncomeContinue" ];
  fieldArray["STEP 4"]  = ["spouseearnings", "yearsspouseworks", "pvIncomeSurvivors", "socialsecurityforchildren", "socialsecurityforchildrenyears", "pvChildrenSSI", "pvSpouseSSI"];
  fieldArray["STEP 5"]  = ["currentavailableassets", "grouplife", "personalLife", "longterminflation", "longtermrateofreturn"];
  fieldArray["RESULT"]  = ["lifeIncomeGap"];
  
  summarry["STEP 1"] = ["summary_mortgagepayoff", "summary_outstandingdebts", "summary_estatesettlementcosts", "summary_funeralexpenses", "summary_unplannedexpenses"];
  summarry["STEP 2"] = ["summary_education", "summary_specialneeds", "summary_otherneeds"];
  summarry["STEP 3"] = ["summary_currentfamilyincome", "summary_continueincome", "summary_continueincomefor", "summary_presentvalue"];
  summarry["STEP 4"] = ["summary_survivorincome", "summary_continueincomforsurvivor", "summary_pvofsurvivor", "summary_childrenssi", "summary_continuessi","summary_pvofchildren","summary_pvofspousepension"];
  summarry["STEP 5"] = ["summary_currentassets", "summary_grouplifeinsurance", "summary_personallifeinsurance", "summary_inflationassumption", "summary_assetsreturnassumption"];
  
  
  
  for ( keyVar in stepArray )
  {
  summaryContent = summaryContent + "<table style=\"width:250px\"cellspacing=\"0\" cellpadding=\"1\" border=\"0\" class=\"summaryTable\">";
  summaryContent = summaryContent + "<tr><td nowrap=\"true\" class=\"summaryTable-headrow\">" + keyVar + "</td><td class=\"summaryTable-headrow\">&nbsp;</td></tr>";
  
  for( contentVar in stepArray[keyVar] )
  {
    var tempVal = "0";
    var fldName = fieldArray[keyVar][contentVar];
    tempVal = document.frmInput[fldName].value;
    
    if( fldName == "percentcontinue" || fldName == "longterminflation" || fldName == "longtermrateofreturn" )
    	tempVal = ConvertToInteger(tempVal) + "%";
    else if( fldName == "yearstocontinue" || fldName == "yearsspouseworks" || fldName == "socialsecurityforchildrenyears" )
    	tempVal = ConvertToInteger(tempVal) + "yrs";
     else
    	tempVal = FormatAsDollars( ConvertToInteger(tempVal) ); 
    
     
    
    if( keyVar == "RESULT" )
    {
     	if( ConvertToInteger(tempVal) == 0 )
     	{
    		tempVal = "";
    		stepArray[keyVar][contentVar] = "No insurance needed";
    		document.frmInput.summary_totallifeinsurance.value = "None";
    	}
    	document.frmInput.summary_totallifeinsurance.value = tempVal;
    }
    else
    {
    	document.frmInput[summarry[keyVar][contentVar]].value = tempVal;	
    }
    
    
    
    summaryContent = summaryContent + "<tr><td nowrap=\"true\" class=\"summaryTable-row\" width=\"90%\">" + stepArray[keyVar][contentVar] + ":</td><td class=\"summaryTable-row\" >"+ tempVal +"</td></tr>";
  }
  
  summaryContent = summaryContent + "</table>";
  }
  
  document.frmInput.summary_spousepension.value = FormatAsDollars( ConvertToInteger(document.frmInput.annualpension.value) ); 
  
  document.getElementById("summaryDiv").innerHTML=summaryContent;
  
  if( blnNoDep )
  {
  	document.getElementById("summary_education" ).value = "No Dependents";
  	document.getElementById("summary_continuessi" ).value = "No Dependents";
  	document.getElementById("summary_childrenssi" ).value = "No Dependents";
  }
  
  if( blnNotMarried )
  {
	document.getElementById("summary_survivorincome" ).value = "No Spouse";
	document.getElementById("summary_continueincomforsurvivor" ).value = "No Spouse";
	document.getElementById("summary_spousepension" ).value = "No Spouse";  
  }
}


 
function SummaryGDInsurance()
{
    var sel = document.frmInput["gdInsurancePercent"];
    var summary_sel = document.frmInput["summary_gdInsurancePercent"];
    sel.options[summary_sel.selectedIndex].selected=true;    
    
   document.frmInput.gdInsurancePercentAmount.value =  document.frmInput.summary_gdInsurancePercentAmount.value;
   document.frmInput.gdInsurancePercentText.value =  document.frmInput.summary_gdInsurancePercentText.value;
    
    
    CalculateTotal();
}

function SummaryGDInsuranceMMB()
{
    var sel = document.frmInput["maxMonthlyBenefit"];
    sel.options[3].selected=true;    
    document.frmInput.maxMonthlyBenefitOther.value = document.frmInput.summary_mmb.value;    
    
    CalculateTotal();
}



function FillPrintSummary()
{
 var fldArray = new Array( "summary_mortgagepayoff", "summary_outstandingdebts", "summary_estatesettlementcosts", 
 "summary_funeralexpenses", "summary_unplannedexpenses", "summary_education", "summary_specialneeds", "summary_otherneeds", "summary_currentfamilyincome", "summary_continueincome", "summary_continueincomefor", "summary_presentvalue", "summary_survivorincome",  "summary_continueincomforsurvivor", "summary_pvofsurvivor", "summary_childrenssi", "summary_continuessi", "summary_pvofchildren", "summary_spousepension", "summary_pvofspousepension", "summary_currentassets", "summary_grouplifeinsurance", "summary_personallifeinsurance", "summary_inflationassumption", "summary_assetsreturnassumption", "summary_totallifeinsurance" );

 
 for ( keyVar in fldArray )
 {
   document.printForm[fldArray[keyVar]].value = opener.document.frmInput[fldArray[keyVar]].value;
 }

 var sel = opener.document.frmInput["summary_gdInsurancePercent"];
 var print_sel = document.printForm["summary_gdInsurancePercent"];
 print_sel.options[sel.selectedIndex].selected=true;  
 
 
 var gdiSummarySpanOther = opener.document.getElementById("summary_disabilityOther");
 var gdiPrintSpanOther = document.getElementById("summary_disabilityOther");
 
 gdiPrintSpanOther.style.display  = gdiSummarySpanOther.style.display;
 window.print();

}

