// ******************** GLOBAL VARIABLES AND FUNCTIONS ********************

var LI_ROW = 10;
var LI_COL = 4;
var IU_ROW = 10;
var IU_COL = 2;
var IM_ROW = 10;
var IM_COL = 2;
var AT_ROW = 10;
var AT_COL = 5;
var PA_ROW = 10;
var PA_COL = 4;
var EPA_ROW = 10;
var EPA_COL = 2;

var rates_li_toUS_mon;
var rates_li_toUS_daily;
var rates_iu_toUS_mon;
var rates_iu_toUS_daily;
var rates_at_toUS_mon;
var rates_at_toUS_daily;
var rates_pa_toUS_mon;
var rates_pa_toUS_daily;
var rates_epa_toUS_mon;
var rates_im_toUS_mon;

var rates_iu_outUS_mon;
var rates_iu_outUS_daily;

var months, days, your_age, spouse_age, children;
var premium_li, row_li, spouse_row_li, col_li, coverage_li, deductible_li, sports_li;
var premium_iu, row_iu, spouse_row_iu, col_iu, coverage_iu, deductible_iu, sports_iu;
var premium_at, row_at, spouse_row_at, col_at, coverage_at, deductible_at, sports_at, home_at;
var premium_pa, row_pa, spouse_row_pa, col_pa, coverage_pa, deductible_pa, sports_pa;
var premium_epa, row_epa, spouse_row_epa, col_epa, coverage_epa, deductible_epa, sports_epa;
var premium_im, row_im, spouse_row_im, col_im, coverage_im, deductible_im, sports_im;

function MakeArray(n) {
   var arr;
   if(n <= 0) {
      arr = new Array(0);
   }
     
   arr = new Array(n);
   return arr;
}

function Init_Table(t_name, row, col) {
   //document.write("Start Init Table: " + t_name);
   var table = new MakeArray(row);
   for (var i=0; i<row; i++) {
      table[i] = new MakeArray(col);
   }

   for (var i=0; i<row; i++) {
      for (var j=0; j<col; j++) {
         table[i][j] = 0.00;
      }
   }

   //document.write("Done Init Table: " + t_name + "<br>");
   return table;
}

function Format_premium(prem) {
   var ind = prem.indexOf(".");
   var new_prem = "0.00";

   if(ind == -1) {
      new_prem = prem + ".00";
   }
   else if(ind == (prem.length-2)) {
      new_prem = prem + "0";
   }
   else if(ind < (prem.length-2)) {
      var n = parseFloat(prem);
      n = Math.round(n*100);
      n = n/100.00;
   
      new_prem = "" + n;

      ind = new_prem.indexOf(".");
      if(ind == -1) {
         new_prem = new_prem + ".00";
      }
      else if(ind == (new_prem.length-2)) {
         new_prem = new_prem + "0";
      }
   }

   return new_prem;
}


// ******************** LOCAL ********************************************

// Initates all Tables
function Init_Tables() {
   rates_li_toUS_mon = Init_Table("rates_li_toUS_mon", LI_ROW, LI_COL);
   rates_li_toUS_daily = Init_Table("rates_li_toUS_daily", LI_ROW, LI_COL);
   rates_iu_toUS_mon = Init_Table("rates_iu_toUS_mon", IU_ROW, IU_COL);
   rates_iu_toUS_daily = Init_Table("rates_iu_toUS_mon", IU_ROW, IU_COL);
   rates_at_toUS_mon = Init_Table("rates_at_toUS_mon", AT_ROW, AT_COL);
   rates_at_toUS_daily = Init_Table("rates_at_toUS_daily", AT_ROW, AT_COL);
   rates_pa_toUS_mon = Init_Table("rates_pa_toUS_mon", PA_ROW, PA_COL);
   rates_pa_toUS_daily = Init_Table("rates_pa_toUS_daily", PA_ROW, PA_COL);
   rates_epa_toUS_mon = Init_Table("rates_epa_toUS_mon", EPA_ROW, EPA_COL);
   rates_im_toUS_mon = Init_Table("rates_im_toUS_mon", IM_ROW, IM_COL);


}

// Populates all tables
function Populate_Tables() {
   
   //document.write("Start Populate_Tables<br>");

   //  Populate Inbound USA $75 ded. monthly
   //document.write("Populating rates_iu_toUS_mon Table");
   rates_iu_toUS_mon[0][0]=30.00; rates_iu_toUS_mon[0][1]=49.00;
   rates_iu_toUS_mon[1][0]=39.00; rates_iu_toUS_mon[1][1]=58.00;
   rates_iu_toUS_mon[2][0]=39.00; rates_iu_toUS_mon[2][1]=58.00;
   rates_iu_toUS_mon[3][0]=39.00; rates_iu_toUS_mon[3][1]=58.00;
   rates_iu_toUS_mon[4][0]=39.00; rates_iu_toUS_mon[4][1]=58.00;
   rates_iu_toUS_mon[5][0]=59.00; rates_iu_toUS_mon[5][1]=87.00;
   rates_iu_toUS_mon[6][0]=59.00; rates_iu_toUS_mon[6][1]=87.00;
   rates_iu_toUS_mon[7][0]=59.00; rates_iu_toUS_mon[7][1]=87.00;
   rates_iu_toUS_mon[8][0]=82.00; rates_iu_toUS_mon[8][1]=-1.00;
   rates_iu_toUS_mon[9][0]=110.00; rates_iu_toUS_mon[9][1]=-1.00;
   //document.write("Done populating rates_iu_toUS_mon<br>");

   //  Populate Inbound USA $75 ded. daily
   //document.write("Populating rates_iu_toUS_daily Table");
   rates_iu_toUS_daily[0][0]=1.00; rates_iu_toUS_daily[0][1]=1.63;
   rates_iu_toUS_daily[1][0]=1.30; rates_iu_toUS_daily[1][1]=1.93;
   rates_iu_toUS_daily[2][0]=1.30; rates_iu_toUS_daily[2][1]=1.93;
   rates_iu_toUS_daily[3][0]=1.30; rates_iu_toUS_daily[3][1]=1.93;
   rates_iu_toUS_daily[4][0]=1.30; rates_iu_toUS_daily[4][1]=1.93;
   rates_iu_toUS_daily[5][0]=1.97; rates_iu_toUS_daily[5][1]=2.90;
   rates_iu_toUS_daily[6][0]=1.97; rates_iu_toUS_daily[6][1]=2.90;
   rates_iu_toUS_daily[7][0]=1.97; rates_iu_toUS_daily[7][1]=2.90;
   rates_iu_toUS_daily[8][0]=2.73; rates_iu_toUS_daily[8][1]=-1.00;
   rates_iu_toUS_daily[9][0]=3.67; rates_iu_toUS_daily[9][1]=-1.00;
   //document.write("Done populating rates_iu_toUS_daily<br>");

   //  Populate Inbound Immigrant $75 ded. monthly
   //document.write("Populating rates_im_toUS_mon Table");
   rates_im_toUS_mon[0][0]=54.00; rates_im_toUS_mon[0][1]=81.00;
   rates_im_toUS_mon[1][0]=65.00; rates_im_toUS_mon[1][1]=95.00;
   rates_im_toUS_mon[2][0]=65.00; rates_im_toUS_mon[2][1]=95.00;
   rates_im_toUS_mon[3][0]=65.00; rates_im_toUS_mon[3][1]=95.00;
   rates_im_toUS_mon[4][0]=65.00; rates_im_toUS_mon[4][1]=95.00;
   rates_im_toUS_mon[5][0]=103.00; rates_im_toUS_mon[5][1]=145.00;
   rates_im_toUS_mon[6][0]=103.00; rates_im_toUS_mon[6][1]=145.00;
   rates_im_toUS_mon[7][0]=103.00; rates_im_toUS_mon[7][1]=145.00;
   rates_im_toUS_mon[8][0]=111.00; rates_im_toUS_mon[8][1]=-1.00;
   rates_im_toUS_mon[9][0]=144.00; rates_im_toUS_mon[9][1]=-1.00;
   //document.write("Done populating rates_im_toUS_mon<br>");


   //  Populate Liaison to US $250 ded. monthly
   //document.write("Populating rates_li_toUS_mon Table");
   rates_li_toUS_mon[0][0]=28.00; rates_li_toUS_mon[0][1]=32.00;
   rates_li_toUS_mon[0][2]=42.00; rates_li_toUS_mon[0][3]=45.00;
   rates_li_toUS_mon[1][0]=46.00; rates_li_toUS_mon[1][1]=54.00;
   rates_li_toUS_mon[1][2]=68.00; rates_li_toUS_mon[1][3]=76.00;
   rates_li_toUS_mon[2][0]=48.00; rates_li_toUS_mon[2][1]=56.00;
   rates_li_toUS_mon[2][2]=76.00; rates_li_toUS_mon[2][3]=85.00;
   rates_li_toUS_mon[3][0]=63.00; rates_li_toUS_mon[3][1]=74.00;
   rates_li_toUS_mon[3][2]=99.00; rates_li_toUS_mon[3][3]=110.00;
   rates_li_toUS_mon[4][0]=95.00; rates_li_toUS_mon[4][1]=106.00;
   rates_li_toUS_mon[4][2]=145.00; rates_li_toUS_mon[4][3]=160.00;
   rates_li_toUS_mon[5][0]=134.00; rates_li_toUS_mon[5][1]=163.00;
   rates_li_toUS_mon[5][2]=195.00; rates_li_toUS_mon[5][3]=230.00;
   rates_li_toUS_mon[6][0]=160.00; rates_li_toUS_mon[6][1]=201.00;
   rates_li_toUS_mon[6][2]=249.00; rates_li_toUS_mon[6][3]=285.00;
   rates_li_toUS_mon[7][0]=205.00; rates_li_toUS_mon[7][1]=-1.00;
   rates_li_toUS_mon[7][2]=-1.00; rates_li_toUS_mon[7][3]=-1.00;
   rates_li_toUS_mon[8][0]=258.00; rates_li_toUS_mon[8][1]=-1.00;
   rates_li_toUS_mon[8][2]=-1.00; rates_li_toUS_mon[8][3]=-1.00;
   rates_li_toUS_mon[9][0]=449.00; rates_li_toUS_mon[9][1]=-1.00;
   rates_li_toUS_mon[9][2]=-1.00; rates_li_toUS_mon[9][3]=-1.00;
   //document.write("Done populating rates_li_toUS_mon<br>");


   // Populate Liaison to US daily Table
   //document.write("Populating rates_li_toUS_daily Table");
   rates_li_toUS_daily[0][0]=0.93; rates_li_toUS_daily[0][1]=1.07;
   rates_li_toUS_daily[0][2]=1.40; rates_li_toUS_daily[0][3]=1.50;
   rates_li_toUS_daily[1][0]=1.53; rates_li_toUS_daily[1][1]=1.80;
   rates_li_toUS_daily[1][2]=2.27; rates_li_toUS_daily[1][3]=2.53;
   rates_li_toUS_daily[2][0]=1.60; rates_li_toUS_daily[2][1]=1.87;
   rates_li_toUS_daily[2][2]=2.53; rates_li_toUS_daily[2][3]=2.83;
   rates_li_toUS_daily[3][0]=2.10; rates_li_toUS_daily[3][1]=2.47;
   rates_li_toUS_daily[3][2]=3.30; rates_li_toUS_daily[3][3]=3.67;
   rates_li_toUS_daily[4][0]=3.17; rates_li_toUS_daily[4][1]=3.53;
   rates_li_toUS_daily[4][2]=4.83; rates_li_toUS_daily[4][3]=5.33;
   rates_li_toUS_daily[5][0]=4.47; rates_li_toUS_daily[5][1]=5.43;
   rates_li_toUS_daily[5][2]=6.50; rates_li_toUS_daily[5][3]=7.67;
   rates_li_toUS_daily[6][0]=5.33; rates_li_toUS_daily[6][1]=6.70;
   rates_li_toUS_daily[6][2]=8.30; rates_li_toUS_daily[6][3]=9.50;
   rates_li_toUS_daily[7][0]=6.83; rates_li_toUS_daily[7][1]=-1.00;
   rates_li_toUS_daily[7][2]=-1.00; rates_li_toUS_daily[7][3]=-1.00;
   rates_li_toUS_daily[8][0]=8.60; rates_li_toUS_daily[8][1]=-1.00;
   rates_li_toUS_daily[8][2]=-1.00; rates_li_toUS_daily[8][3]=-1.00;
   rates_li_toUS_daily[9][0]=14.97; rates_li_toUS_daily[9][1]=-1.00;
   rates_li_toUS_daily[9][2]=-1.00; rates_li_toUS_daily[9][3]=-1.00;
   //document.write("Done populating rates_li_toUS_daily<br>");


   // Populate Atlas to US monthly table  $250 ded.
   //document.write("Populating rates_at_toUS_mon Tables");
   rates_at_toUS_mon[0][0]=28.00; rates_at_toUS_mon[0][1]=32.00;
   rates_at_toUS_mon[0][2]=33.00; rates_at_toUS_mon[0][3]=34.00;
   rates_at_toUS_mon[0][4]=39.00;
   rates_at_toUS_mon[1][0]=44.00; rates_at_toUS_mon[1][1]=52.00;
   rates_at_toUS_mon[1][2]=53.00; rates_at_toUS_mon[1][3]=54.00;
   rates_at_toUS_mon[1][4]=56.00;
   rates_at_toUS_mon[2][0]=48.00; rates_at_toUS_mon[2][1]=56.00;
   rates_at_toUS_mon[2][2]=62.00; rates_at_toUS_mon[2][3]=64.00;
   rates_at_toUS_mon[2][4]=75.00;
   rates_at_toUS_mon[3][0]=62.00; rates_at_toUS_mon[3][1]=74.00;
   rates_at_toUS_mon[3][2]=81.00; rates_at_toUS_mon[3][3]=84.00;
   rates_at_toUS_mon[3][4]=97.00;
   rates_at_toUS_mon[4][0]=94.00; rates_at_toUS_mon[4][1]=106.00;
   rates_at_toUS_mon[4][2]=118.00; rates_at_toUS_mon[4][3]=126.00;
   rates_at_toUS_mon[4][4]=142.00;
   rates_at_toUS_mon[5][0]=134.00; rates_at_toUS_mon[5][1]=164.00;
   rates_at_toUS_mon[5][2]=174.00; rates_at_toUS_mon[5][3]=178.00;
   rates_at_toUS_mon[5][4]=205.00;
   rates_at_toUS_mon[6][0]=158.00; rates_at_toUS_mon[6][1]=216.00;
   rates_at_toUS_mon[6][2]=229.00; rates_at_toUS_mon[6][3]=230.00;
   rates_at_toUS_mon[6][4]=256.00;
   rates_at_toUS_mon[7][0]=200.00; rates_at_toUS_mon[7][1]=250.00;
   rates_at_toUS_mon[7][2]=277.00; rates_at_toUS_mon[7][3]=278.00;
   rates_at_toUS_mon[7][4]=300.00;
   rates_at_toUS_mon[8][0]=254.00; rates_at_toUS_mon[8][1]=-1.00;
   rates_at_toUS_mon[8][2]=-1.00; rates_at_toUS_mon[8][3]=-1.00;
   rates_at_toUS_mon[8][4]=-1.00;
   rates_at_toUS_mon[9][0]=500.00; rates_at_toUS_mon[9][1]=-1.00;
   rates_at_toUS_mon[9][2]=-1.00; rates_at_toUS_mon[9][3]=-1.00;
   rates_at_toUS_mon[9][4]=-1.00;
   //document.write("Done populating rates_at_toUS_mon<br>");

   // Populate Atlas to US daily Table   $250 ded.
   //document.write("Populating rates_iu_toUS_daily Table");
   rates_at_toUS_daily[0][0]=0.90; rates_at_toUS_daily[0][1]=1.10;
   rates_at_toUS_daily[0][2]=1.10; rates_at_toUS_daily[0][3]=1.10;
   rates_at_toUS_daily[0][4]=1.30;
   rates_at_toUS_daily[1][0]=1.50; rates_at_toUS_daily[1][1]=1.70;
   rates_at_toUS_daily[1][2]=1.80; rates_at_toUS_daily[1][3]=1.80;
   rates_at_toUS_daily[1][4]=2.20;
   rates_at_toUS_daily[2][0]=1.60; rates_at_toUS_daily[2][1]=1.90;
   rates_at_toUS_daily[2][2]=2.00; rates_at_toUS_daily[2][3]=2.10;
   rates_at_toUS_daily[2][4]=2.50;
   rates_at_toUS_daily[3][0]=2.10; rates_at_toUS_daily[3][1]=2.50;
   rates_at_toUS_daily[3][2]=2.70; rates_at_toUS_daily[3][3]=2.80;
   rates_at_toUS_daily[3][4]=3.20;
   rates_at_toUS_daily[4][0]=3.10; rates_at_toUS_daily[4][1]=3.50;
   rates_at_toUS_daily[4][2]=3.90; rates_at_toUS_daily[4][3]=4.20;
   rates_at_toUS_daily[4][4]=4.70;
   rates_at_toUS_daily[5][0]=4.50; rates_at_toUS_daily[5][1]=5.50;
   rates_at_toUS_daily[5][2]=5.80; rates_at_toUS_daily[5][3]=5.90;
   rates_at_toUS_daily[5][4]=6.80;
   rates_at_toUS_daily[6][0]=5.30; rates_at_toUS_daily[6][1]=7.20;
   rates_at_toUS_daily[6][2]=7.60; rates_at_toUS_daily[6][3]=7.70;
   rates_at_toUS_daily[6][4]=8.50;
   rates_at_toUS_daily[7][0]=6.70; rates_at_toUS_daily[7][1]=8.30;
   rates_at_toUS_daily[7][2]=9.20; rates_at_toUS_daily[7][3]=9.30;
   rates_at_toUS_daily[7][4]=10.00;
   rates_at_toUS_daily[8][0]=8.50; rates_at_toUS_daily[8][1]=-1.00;
   rates_at_toUS_daily[8][2]=-1.00; rates_at_toUS_daily[8][3]=-1.00;
   rates_at_toUS_daily[8][4]=-1.00;
   rates_at_toUS_daily[9][0]=16.70; rates_at_toUS_daily[9][1]=-1.00;
   rates_at_toUS_daily[9][2]=-1.00; rates_at_toUS_daily[9][3]=-1.00;
   rates_at_toUS_daily[9][4]=-1.00;
   //document.write("Done populating rates_at_toUS_daily<br>");


   // Populate Patriot to US monthly table  $250 ded.
   //document.write("Populating rates_pa_toUS_mon Tables");
   rates_pa_toUS_mon[0][0]=28.00; rates_pa_toUS_mon[0][1]=32.00;
   rates_pa_toUS_mon[0][2]=40.00; rates_pa_toUS_mon[0][3]=44.00;
   rates_pa_toUS_mon[1][0]=44.00; rates_pa_toUS_mon[1][1]=52.00;
   rates_pa_toUS_mon[1][2]=66.00; rates_pa_toUS_mon[1][3]=74.00;
   rates_pa_toUS_mon[2][0]=48.00; rates_pa_toUS_mon[2][1]=56.00;
   rates_pa_toUS_mon[2][2]=72.00; rates_pa_toUS_mon[2][3]=84.00;
   rates_pa_toUS_mon[3][0]=62.00; rates_pa_toUS_mon[3][1]=74.00;
   rates_pa_toUS_mon[3][2]=94.00; rates_pa_toUS_mon[3][3]=108.00;
   rates_pa_toUS_mon[4][0]=94.00; rates_pa_toUS_mon[4][1]=106.00;
   rates_pa_toUS_mon[4][2]=140.00; rates_pa_toUS_mon[4][3]=158.00;
   rates_pa_toUS_mon[5][0]=134.00; rates_pa_toUS_mon[5][1]=164.00;
   rates_pa_toUS_mon[5][2]=198.00; rates_pa_toUS_mon[5][3]=228.00;
   rates_pa_toUS_mon[6][0]=158.00; rates_pa_toUS_mon[6][1]=194.00;
   rates_pa_toUS_mon[6][2]=230.00; rates_pa_toUS_mon[6][3]=276.00;
   rates_pa_toUS_mon[7][0]=180.00; rates_pa_toUS_mon[7][1]=232.00;
   rates_pa_toUS_mon[7][2]=252.00; rates_pa_toUS_mon[7][3]=300.00;
   rates_pa_toUS_mon[8][0]=244.00; rates_pa_toUS_mon[8][1]=-1.00;
   rates_pa_toUS_mon[8][2]=-1.00; rates_pa_toUS_mon[8][3]=-1.00;
   rates_pa_toUS_mon[9][0]=424.00; rates_pa_toUS_mon[9][1]=-1.00;
   rates_pa_toUS_mon[9][2]=-1.00; rates_pa_toUS_mon[9][3]=-1.00;
   //document.write("Done populating rates_pa_toUS_mon<br>");

   // Populate Patriot to US daily Table   $250 ded.
   //document.write("Populating rates_pa_toUS_daily Table");
   rates_pa_toUS_daily[0][0]=0.95; rates_pa_toUS_daily[0][1]=1.10;
   rates_pa_toUS_daily[0][2]=1.35; rates_pa_toUS_daily[0][3]=1.50;
   rates_pa_toUS_daily[1][0]=1.50; rates_pa_toUS_daily[1][1]=1.75;
   rates_pa_toUS_daily[1][2]=2.20; rates_pa_toUS_daily[1][3]=2.50;
   rates_pa_toUS_daily[2][0]=1.60; rates_pa_toUS_daily[2][1]=1.90;
   rates_pa_toUS_daily[2][2]=2.40; rates_pa_toUS_daily[2][3]=2.80;
   rates_pa_toUS_daily[3][0]=2.10; rates_pa_toUS_daily[3][1]=2.50;
   rates_pa_toUS_daily[3][2]=3.15; rates_pa_toUS_daily[3][3]=3.60;
   rates_pa_toUS_daily[4][0]=3.15; rates_pa_toUS_daily[4][1]=3.55;
   rates_pa_toUS_daily[4][2]=4.70; rates_pa_toUS_daily[4][3]=5.30;
   rates_pa_toUS_daily[5][0]=4.50; rates_pa_toUS_daily[5][1]=5.50;
   rates_pa_toUS_daily[5][2]=6.60; rates_pa_toUS_daily[5][3]=7.60;
   rates_pa_toUS_daily[6][0]=5.30; rates_pa_toUS_daily[6][1]=6.50;
   rates_pa_toUS_daily[6][2]=7.70; rates_pa_toUS_daily[6][3]=9.20;
   rates_pa_toUS_daily[7][0]=6.00; rates_pa_toUS_daily[7][1]=7.75;
   rates_pa_toUS_daily[7][2]=8.40; rates_pa_toUS_daily[7][3]=10.00;
   rates_pa_toUS_daily[8][0]=8.15; rates_pa_toUS_daily[8][1]=-1.00;
   rates_pa_toUS_daily[8][2]=-1.00; rates_pa_toUS_daily[8][3]=-1.00;
   rates_pa_toUS_daily[9][0]=14.15; rates_pa_toUS_daily[9][1]=-1.00;
   rates_pa_toUS_daily[9][2]=-1.00; rates_pa_toUS_daily[9][3]=-1.00;
   //document.write("Done populating rates_pa_toUS_daily<br>");


   // Populate ExPatriot PLUS to US monthly table
   //document.write("Populating rates_epa_toUS_mon Tables");
   rates_epa_toUS_mon[0][0]=28.00; rates_epa_toUS_mon[0][1]=39.00;
   rates_epa_toUS_mon[1][0]=49.00; rates_epa_toUS_mon[1][1]=66.00;
   rates_epa_toUS_mon[2][0]=64.00; rates_epa_toUS_mon[2][1]=75.00;
   rates_epa_toUS_mon[3][0]=84.00; rates_epa_toUS_mon[3][1]=97.00;
   rates_epa_toUS_mon[4][0]=126.00; rates_epa_toUS_mon[4][1]=142.00;
   rates_epa_toUS_mon[5][0]=178.00; rates_epa_toUS_mon[5][1]=205.00;
   rates_epa_toUS_mon[6][0]=207.00; rates_epa_toUS_mon[6][1]=248.00;
   rates_epa_toUS_mon[7][0]=226.00; rates_epa_toUS_mon[7][1]=270.00;
   rates_epa_toUS_mon[8][0]=220.00; rates_epa_toUS_mon[8][1]=-1.00;
   rates_epa_toUS_mon[9][0]=0; rates_epa_toUS_mon[9][1]=0;
   //document.write("Done populating rates_epa_toUS_mon<br>");

}

//   Test Functions!!!!!
function Display_iu_toUS_mon_rate(age_range, coverage) {
   if(age_range < 0 || aga_range >= AT_ROW || coverage < 0 || coverage >= AT_COL) {
      document.write("error");
      return;
   }
   document.write("rate is: " + rates_at_toUS_mon[age_range][coverage]);
}

function Display_iu_toUS_daily_rate(age_range, coverage) {
   if(age_range < 0 || aga_range >= AT_ROW || coverage < 0 || coverage >= AT_COL) {
      document.write("error");
      return;
   }
   document.write("rate is: " + rates_at_toUS_daily[age_range][coverage]);
}  

function Display_iu_outUS_mon_rate(age_range, coverage) {
   if(age_range < 0 || aga_range >= AT_ROW || coverage < 0 || coverage >= AT_COL) {
      document.write("error");
      return;
   }
   document.write("rate is: " + rates_iu_outUS_mon[age_range][coverage]);
}  

function Display_iu_outUS_daily_rate(age_range, coverage) {
   if(age_range < 0 || aga_range >= IU_ROW || coverage < 0 || coverage >= IU_COL) {
      document.write("error");
      return;
   }
   document.write("rate is: " + rates_iu_outUS_daily[age_range][coverage]);
}  

function RComp(LForm, change) {
   months = parseInt(LForm.months.value);
   days = parseInt(LForm.days.value);
   your_age = LForm.age.value;
   spouse_age = LForm.spouse_age.value;
   children = parseInt(LForm.num_child.value);


   // find out which row of the table for insured
   if(your_age=="0-18") {
      row_iu=1;
   }
   else if(your_age=="19-29") {
      row_iu=2;
   }
   else if(your_age=="30-39") {
      row_iu=3;
   }
   else if(your_age=="40-49") {
      row_iu=4;
   }
   else if(your_age=="50-59") {
      row_iu=5;
   }
   else if(your_age=="60-64") {
      row_iu=6;
   }
   else if(your_age=="65-69") {
      row_iu=7;
   }
   else if(your_age=="70-79") {
      row_iu=8;
   }
   else {  
      row_iu=9;
   }
   row_li = row_iu;
   row_at = row_iu;
   row_pa = row_iu;
   row_im = row_iu;
   row_epa = row_iu;

   // find out which row of the table for spouse
   if(spouse_age != "na") {
      if(spouse_age=="0-18") {
         spouse_row_iu=1;
      }
      else if(spouse_age=="19-29") {
         spouse_row_iu=2;
      }
      else if(spouse_age=="30-39") {
         spouse_row_iu=3;
      }
      else if(spouse_age=="40-49") {
         spouse_row_iu=4;
      }
      else if(spouse_age=="50-59") {
         spouse_row_iu=5;
      }
      else if(spouse_age=="60-64") {
         spouse_row_iu=6;
      }
      else if(spouse_age=="65-69") {
         spouse_row_iu=7;
      }
      else if(spouse_age=="70-79") {
         spouse_row_iu=8;
      }
      else {
         spouse_row_iu=9;
      }
	spouse_row_li = spouse_row_iu;
      spouse_row_pa = spouse_row_iu;
	spouse_row_epa = spouse_row_iu;
	spouse_row_im = spouse_row_iu;
      spouse_row_at = spouse_row_iu;
   }

   if(months=="0" && days=="0") {
	LForm.li_premium.value=("0.00");
	LForm.iu_premium.value=("0.00");
	LForm.at_premium.value=("0.00");
	LForm.pa_premium.value=("0.00");
	LForm.epa_premium.value=("0.00");
	LForm.im_premium.value=("0.00");
      return;
   }
   if(your_age=="na") {
	LForm.li_premium.value=("0.00");
	LForm.iu_premium.value=("0.00");
      LForm.at_premium.value=("0.00");
	LForm.pa_premium.value=("0.00");
	LForm.epa_premium.value=("0.00");
	LForm.im_premium.value=("0.00");
      return;
   }

   RComp_li(LForm, change);
   RComp_iu(LForm, change);
   RComp_im(LForm, change);
   RComp_at(LForm, change);
   RComp_pa(LForm, change);
   RComp_epa(LForm, change);

   return;
}

// ----------------------------------------------------------------------------

// Compute rate for INBOUND USA
function RComp_iu(LForm, change) {
	coverage_iu = LForm.coverage_iu.value;
	deductible_iu = LForm.deductible_iu.value;
//	newrate = 0;
//	newmonths = months;

	if (LForm.sports_iu[0].checked == 1) {
		sports_iu = LForm.sports_iu[0].value;
	}
	else {
		sports_iu = LForm.sports_iu[1].value;
	}

// Inbound USA is monthly only!
// if (days > 0) {
//	newmonths++;
//   }

   // Display available coverage options for the specific age group
   if(change == "age" || change == "spouse_age") {
      if(your_age=="80+" || spouse_age=="80+") {
         LForm.coverage_iu.options.length = 1;
         LForm.coverage_iu.options[0] = new Option("$50,000", "50000");
	   LForm.deductible_iu.value = "250";
	   deductible_iu = "250";
      }
      else if(your_age=="70-79" || spouse_age=="70-79") {
         LForm.coverage_iu.options.length = 1;
         LForm.coverage_iu.options[0] = new Option("$50,000", "50000");
	   LForm.deductible_iu.value = "250";
	   deductible_iu = "250";
      }
      else {
         LForm.coverage_iu.options.length = 2;
         LForm.coverage_iu.options[0] = new Option("$50,000", "50000");
         LForm.coverage_iu.options[1] = new Option("$100,000", "100000");
      }
      coverage_iu = "50000";
   }

   // find out which col of the table
   if(coverage_iu=="50000") {
      col_iu=0;
   }
   else {
      col_iu=1;
   }

   // Apply deductible factors
   if(deductible_iu == "150") {
      if (col_iu == 0) {
		newrate = rates_iu_toUS_mon[row_iu][col_iu] - 4;
	}
	else {
		newrate = rates_iu_toUS_mon[row_iu][col_iu] - 2;
	}
   }
   if (deductible_iu == "75" || deductible_iu == "250") {
	newrate = rates_iu_toUS_mon[row_iu][col_iu];
   }


   // Add insured's based premium
   premium_iu = rates_iu_toUS_mon[row_iu][col_iu]*months + rates_iu_toUS_daily[row_iu][col_iu]*days;

   //premium_iu = rates_iu_toUS_mon[row_iu][col_iu] * newmonths;


   //LForm.iu_premium.value = ("" + row_iu " " + col_iu);
   //return;

   // Add spouse's based premium if applicable
   if(spouse_age != "na") {
      premium_iu += rates_iu_toUS_mon[spouse_row_iu][col_iu]*months + rates_iu_toUS_daily[spouse_row_iu][col_iu]*days;
   }

   // Add the children's premium if applicable
   if (children > 0) {
      premium_iu += (rates_iu_toUS_mon[0][col_iu]*months + rates_iu_toUS_daily[0][col_iu]*days) * children;
   }

   // Apply Sports Rider factor for Liason = 1.15x
	if (sports_iu == "Yes") {
		premium_iu = premium_iu * 1.15;
	}

   LForm.iu_premium.value = Format_premium("" + premium_iu);
   return;
}

// ----------------------------------------------------------------------------

// Compute rate for INBOUND IMMIGRANT
function RComp_im(LForm, change) {
	coverage_im = LForm.coverage_im.value;
	deductible_im = LForm.deductible_im.value;
	newrate = 0;
	newmonths = months;

	if (LForm.sports_im[0].checked == 1) {
		sports_im = LForm.sports_im[0].value;
	}
	else {
		sports_im = LForm.sports_im[1].value;
	}

// Inbound USA is monthly only!
   if (days > 0) {
	newmonths++;
   }

   // Display available coverage options for the specific age group
   if(change == "age" || change == "spouse_age") {
      if(your_age=="80+" || spouse_age=="80+") {
         LForm.coverage_im.options.length = 1;
         LForm.coverage_im.options[0] = new Option("$50,000", "50000");
	   LForm.deductible_im.value = "250";
	   deductible_im = "250";
      }
      else if(your_age=="70-79" || spouse_age=="70-79") {
         LForm.coverage_im.options.length = 1;
         LForm.coverage_im.options[0] = new Option("$50,000", "50000");
	   LForm.deductible_im.value = "250";
	   deductible_im = "250";
      }
      else {
         LForm.coverage_im.options.length = 2;
         LForm.coverage_im.options[0] = new Option("$50,000", "50000");
         LForm.coverage_im.options[1] = new Option("$100,000", "100000");
      }
      coverage_im = "50000";
   }

   // find out which col of the table
   if(coverage_im=="50000") {
      col_im=0;
   }
   else {
      col_im=1;
   }

   // Apply deductible factors
   if(deductible_im == "150") {
      if (col_im == 0) {
		newrate = rates_im_toUS_mon[row_im][col_im] - 3;
	}
	else if (col_im == 1) {
		if (row_im > 4 && row_im < 8) {
			newrate = rates_im_toUS_mon[row_im][col_im] - 3;
		} 
		else if (row_im < 5 && row_im > 0) {
			newrate = rates_im_toUS_mon[row_im][col_im] - 4;
		}
	}
   }
   if (deductible_im == "75" || deductible_im == "250") {
	newrate = rates_im_toUS_mon[row_im][col_im];
   }


   // Add insured's based premium
   premium_im = newrate * newmonths;

   //premium_im = rates_im_toUS_mon[row_im][col_im] * newmonths;

   // Add spouse's based premium if applicable
   if(spouse_age != "na") {
      premium_im += rates_im_toUS_mon[spouse_row_im][col_im] * newmonths;
   }

   // Add the children's premium if applicable
   if (children > 0) {
      premium_im += (rates_im_toUS_mon[0][col_im] * newmonths) * children;
   }

   // Apply Sports Rider factor for Liason = 1.15x
	if (sports_im == "Yes") {
		premium_im = premium_im * 1.15;
	}

   LForm.im_premium.value = Format_premium("" + premium_im);
   return;
}

// ----------------------------------------------------------------------------

// Compute rate for LIASON INTERNATIONAL
function RComp_li(LForm, change) {
   coverage_li = LForm.coverage_li.value;
   deductible_li = LForm.deductible_li.value;
	if (LForm.sports_li[0].checked == 1) {
		sports_li = LForm.sports_li[0].value;
	}
	else {
		sports_li = LForm.sports_li[1].value;
	}
      //LForm.answer.value = sports_li;

   // Display available coverage options for the specific age group
   if(change == "age" || change == "spouse_age") {
      if(your_age=="80+" || spouse_age=="80+") {
         LForm.coverage_li.options.length = 1;
         LForm.coverage_li.options[0] = new Option("$15,000", "50000");
      }
      else if(your_age=="70-79" || spouse_age=="70-79") {
         LForm.coverage_li.options.length = 1;
         LForm.coverage_li.options[0] = new Option("$50,000", "50000");
      }
      else {
         LForm.coverage_li.options.length = 4;
         LForm.coverage_li.options[0] = new Option("$50,000", "50000");
         LForm.coverage_li.options[1] = new Option("$100,000", "100000");
         LForm.coverage_li.options[2] = new Option("$500,000", "500000");
         LForm.coverage_li.options[3] = new Option("$1,000,000", "1000000");
      }
      coverage_li = "50000";
   }

   // find out which col of the table
   if(coverage_li=="50000") {
      col_li=0;
   }
   else if(coverage_li=="100000") {
      col_li=1;
   }
   else if(coverage_li=="500000") {
      col_li=2;
   }
   else {
      col_li=3;
   }

   // Add insured's based premium
   premium_li = rates_li_toUS_mon[row_li][col_li]*months + rates_li_toUS_daily[row_li][col_li]*days;

   //LForm.li_premium.value = ("" + row_li " " + col_li);
   //return;

   // Add spouse's based premium if applicable
   if(spouse_age != "na") {
      premium_li += rates_li_toUS_mon[spouse_row_li][col_li]*months + rates_li_toUS_daily[spouse_row_li][col_li]*days;
   }

   // Add the children's premium if applicable
   if (children > 0) {
      premium_li += (rates_li_toUS_mon[0][col_li]*months + rates_li_toUS_daily[0][col_li]*days) * children;
   }

   // Apply deductible factors
   // 100: 1.1x  250: 1x  500: 0.9x  1000: 0.8x  2000: 0.7x
   if(deductible_li == "100") {
      premium_li = premium_li * 1.1;
   }
   else if(deductible_li == "500") {
      premium_li = premium_li * 0.9;
   }
   else if(deductible_li == "1000") {
      premium_li = premium_li * 0.8;
   }
   else if(deductible_li == "2500") {
      premium_li = premium_li * 0.7;
   }

   // Apply Sports Rider factor for Liason = 1.15x
	if (sports_li == "Yes") {
		premium_li = premium_li * 1.15;
	}

   LForm.li_premium.value = Format_premium("" + premium_li);
   return;
}

//---------------------------------------------------------------------------------

// Compute rate for ATLAS
function RComp_at(LForm, change) {
   coverage_at = LForm.coverage_at.value;
   deductible_at = LForm.deductible_at.value;
	if (LForm.sports_at[0].checked == 1) {
		sports_at = LForm.sports_at[0].value;
	}
	else {
		sports_at = LForm.sports_at[1].value;
	}
// home_at = LForm.incidentalhome_at.value;

   // Display available coverage options for the specific age group
   if(change == "age" || change == "spouse_age") {
      if(your_age=="80+" || spouse_age=="80+") {
         LForm.coverage_at.options.length = 1;
         LForm.coverage_at.options[0] = new Option("$10,000", "50000");
      }
      else if(your_age=="70-79" || spouse_age=="70-79") {
         LForm.coverage_at.options.length = 1;
         LForm.coverage_at.options[0] = new Option("$50,000", "50000");
      }
      else {
         LForm.coverage_at.options.length = 5;
         LForm.coverage_at.options[0] = new Option("$50,000", "50000");
         LForm.coverage_at.options[1] = new Option("$100,000", "100000");
         LForm.coverage_at.options[2] = new Option("$250,000", "250000");
         LForm.coverage_at.options[3] = new Option("$500,000", "500000");
         LForm.coverage_at.options[4] = new Option("$1,000,000", "1000000");
      }
      coverage_at = "50000";
   }


   // find out which col of the table
   if(coverage_at == "50000") {
      col_at=0;
   }
   else if(coverage_at == "100000") {
      col_at=1;
   }
   else if(coverage_at == "250000") {
      col_at=2;
   }
   else if(coverage_at=="500000") {
      col_at=3;
   }
   else {
      col_at=4;
   }

   // Add insured's based premium
   premium_at = rates_at_toUS_mon[row_at][col_at]*months + rates_at_toUS_daily[row_at][col_at]*days;

   //LForm.at_premium.value = premium_at;
   //return;

   // Add spouse's based premium if applicable
   if(spouse_age != "na") {
      premium_at += rates_at_toUS_mon[spouse_row_at][col_at]*months + rates_at_toUS_daily[spouse_row_at][col_at]*days;
   }

   // Add the children's premium if applicable
   if (children > 0) {
      premium_at += (rates_at_toUS_mon[0][col_at]*months + rates_at_toUS_daily[0][col_at]*days) * children;
   }

   // Apply deductible factors
   // 100: 1.1x  250: 1x  500: 0.9x  1000: 0.8x  2000: 0.7x
   if(deductible_at == "100") {
      premium_at = premium_at * 1.1;
   }  
   else if(deductible_at == "500") {
      premium_at = premium_at * 0.9;
   }  
   else if(deductible_at == "1000") {
      premium_at = premium_at * 0.8;
   }
   else if(deductible_at == "2500") {
      premium_at = premium_at * 0.7;
   }

   // Apply Sports Rider factor for Atlas = 1.20x
	if (sports_at == "Yes") {
		premium_at = premium_at * 1.20;
	}

   LForm.at_premium.value = Format_premium("" + premium_at);
   return;
}

// ----------------------------------------------------------------------------

// Compute rate for PATRIOT
function RComp_pa(LForm, change) {
   coverage_pa = LForm.coverage_pa.value;
   deductible_pa = LForm.deductible_pa.value;
	if (LForm.sports_pa[0].checked == 1) {
		sports_pa = LForm.sports_pa[0].value;
	}
	else {
		sports_pa = LForm.sports_pa[1].value;
	}

   // Display available coverage options for the specific age group
   if(change == "age" || change == "spouse_age") {
      if(your_age=="80+" || spouse_age=="80+") {
         LForm.coverage_pa.options.length = 1;
         LForm.coverage_pa.options[0] = new Option("$10,000", "50000");
      }
      else if(your_age=="70-79" || spouse_age=="70-79") {
         LForm.coverage_pa.options.length = 1;
         LForm.coverage_pa.options[0] = new Option("$50,000", "50000");
      }
      else {
         LForm.coverage_pa.options.length = 4;
         LForm.coverage_pa.options[0] = new Option("$50,000", "50000");
         LForm.coverage_pa.options[1] = new Option("$100,000", "100000");
         LForm.coverage_pa.options[2] = new Option("$500,000", "500000");
         LForm.coverage_pa.options[3] = new Option("$1,000,000", "1000000");
      }
      coverage_pa = "50000";
   }


   // find out which col of the table
   if(coverage_pa=="50000") {
      col_pa=0;
   }
   else if(coverage_pa=="100000") {
      col_pa=1;
   }
   else if(coverage_pa=="500000") {
      col_pa=2;
   }
   else {
      col_pa=3;
   }

   // Add insured's based premium
   premium_pa = rates_pa_toUS_mon[row_pa][col_pa]*months + rates_pa_toUS_daily[row_pa][col_pa]*days;

   //LForm.pa_premium.value = premium_pa;
   //return;

   // Add spouse's based premium if applicable
   if(spouse_age != "na") {
      premium_pa += rates_pa_toUS_mon[spouse_row_pa][col_pa]*months + rates_pa_toUS_daily[spouse_row_pa][col_pa]*days;
   }

   // Add the children's premium if applicable
   if (children > 0) {
      premium_pa += (rates_pa_toUS_mon[0][col_pa]*months + rates_pa_toUS_daily[0][col_pa]*days) * children;
   }

   // Apply deductible factors
   // 100: 1.1x  250: 1x  500: 0.9x  1000: 0.8x  2000: 0.7x
   if(deductible_pa == "100") {
      premium_pa = premium_pa * 1.1;
   }  
   else if(deductible_pa == "500") {
      premium_pa = premium_pa * 0.9;
   }  
   else if(deductible_pa == "1000") {
      premium_pa = premium_pa * 0.8;
   }
   else if(deductible_pa == "2500") {
      premium_pa = premium_pa * 0.7;
   }

   // Apply Sports Rider factor for Patriot = 1.20x
	if (sports_pa == "Yes") {
		premium_pa = premium_pa * 1.20;
	}

   LForm.pa_premium.value = Format_premium("" + premium_pa);
   return;
} 

// ----------------------------------------------------------------------------

// Compute rate for EXPATRIOT PLUS
function RComp_epa(LForm, change) {
   coverage_epa = LForm.coverage_epa.value;
   deductible_epa = LForm.deductible_epa.value;
	if (LForm.sports_epa[0].checked == 1) {
		sports_epa = LForm.sports_epa[0].value;
	}
	else {
		sports_epa = LForm.sports_epa[1].value;
	}

// ExPatriot PLUS is monthly only!
   if (days > 0) {
	months++;
   }

   // Display available coverage options for the specific age group
   if(change == "age" || change == "spouse_age") {
      if(your_age=="80+" || spouse_age=="80+") {
         LForm.coverage_epa.options.length = 1;
         LForm.coverage_epa.options[0] = new Option("NA", "0");
      }
      else if(your_age=="70-79" || spouse_age=="70-79") {
         LForm.coverage_epa.options.length = 1;
         LForm.coverage_epa.options[0] = new Option("$50,000", "50000");
      }
      else {
         LForm.coverage_epa.options.length = 2;
         LForm.coverage_epa.options[0] = new Option("$500,000", "500000");
         LForm.coverage_epa.options[1] = new Option("$1,000,000", "1000000");
      }
      coverage_epa = "500000";
   }


   // find out which col of the table
   if(coverage_epa=="500000") {
      col_epa=0;
   }
   else {
      col_epa=1;
   }

   // Add insured's based premium
   premium_epa = rates_epa_toUS_mon[row_epa][col_epa] * months;

   //LForm.epa_premium.value = premium_epa;
   //return;

   // Add spouse's based premium if applicable
  if(spouse_age != "na") {
      premium_epa += rates_epa_toUS_mon[spouse_row_epa][col_epa] * months;
  }

   // Add the children's premium if applicable
   if (children > 0) {
      premium_epa += (rates_epa_toUS_mon[0][col_epa]* months) * children;
   }

   // Apply deductible factors
   // 100: 1.1x  250: 1x  500: 0.9x  1000: 0.8x  2000: 0.7x
   if(deductible_epa == "100") {
      premium_epa = premium_epa * 1.1;
   }  
   else if(deductible_epa == "500") {
      premium_epa = premium_epa * 0.9;
   }  
   else if(deductible_epa == "1000") {
      premium_epa = premium_epa * 0.8;
  }
   else if(deductible_epa == "2500") {
      premium_epa = premium_epa * 0.7;
   }

   // Apply Sports Rider factor for ExPatriot PLUS = 1.20x
	if (sports_epa == "Yes") {
		premium_epa = premium_epa * 1.20;
	}

  LForm.epa_premium.value = Format_premium("" + premium_epa);
  return;
} 
