
function print_todays_date()
{
   var d=new Date();
   document.write(d.toLocaleString());
}
   print_todays_date();
   var d = new Date();
   var curmon = d.getMonth();

function xdte() {
   document.wheel.xmonth.value = document.wheel.emonth.value;
   document.wheel.xday.value = document.wheel.eday.value;
   var yr = document.wheel.eyear.value;
   if (yr != "") {
      var wdate = "eff";
      chkdtes(wdate);
   }
}
function edte() {
   document.wheel.emonth.value = document.wheel.xmonth.value;
   document.wheel.eday.value = document.wheel.xday.value;
   var yr = document.wheel.xyear.value;
   if (yr != "") {
      var wdate = "exp";
      chkdtes(wdate);
   }
}
function chkdtes(wdate) {
   if ( wdate=="exp") var year = document.wheel.xyear.value;
      else { 
      var year = document.wheel.eyear.value;
      var wdate = "eff";
      }
   var p = document.wheel.prem.value;
   var e = document.wheel.earned.value;
   var t = document.wheel.term.value;
   
   if ( cvtint(t)<0 || isNaN(t)) {
      document.wheel.term.value = "Na";
      return;
      }
   if ( t>12 ) var y = parseInt(t/12);
   if ( parseInt(y) >= 1) var m = parseInt(t)-parseInt(y)*12;
      else var m = parseInt(t);
   if ( y >= 1) { 
      if ( wdate=="eff" ) {
         document.wheel.xyear.value = parseInt(year)+y;
         var year = ++year; 
         }
      else { 
         document.wheel.eyear.value = parseInt(year)-y;
         var year = --year; 
         }
   }
   else {
        if ( wdate=="eff" ) {
        var year = document.wheel.eyear.value;
        document.wheel.xyear.value = year; 
        }
        else {
        var year = document.wheel.xyear.value;
        document.wheel.eyear.value = year; 
   }
   if ( m >= 1 && wdate=="eff" ) {
      var month = document.wheel.emonth.value;
      var m = parseInt(month)+m;
      }
   if ( m >= 1 && wdate=="exp" ) {
      var month = document.wheel.xmonth.value;
      var m = parseInt(month)+m;
      }
   if (m > 12 && wdate=="eff" ) {
      var m = parseInt(m)-12;
      document.wheel.xyear.value = ++year;
      }
   if (m > 12 && wdate=="exp" ) {
      var m = parseInt(m)-12;
      document.wheel.eyear.value = --year;
      }
   if (month != "" && wdate=="eff" ) document.wheel.xmonth.value = parseInt(m);
   else if (month != "" && wdate=="exp" ) document.wheel.emonth.value = parseInt(m);
 }
days();
if ( p>0 || parseFloat(e)!=0 ) factor();
}
function days() {
   var months = new Array(0, 31, 59, 90, 120, 151, 181, 212, 
                          243, 273, 304, 334);
   var y1 = document.wheel.eyear.value;
   var m1 = document.wheel.emonth.value;
   var d1 = document.wheel.eday.value;
   m1 = cvtint(m1);
   if ( cvtint(y1)>0 ) var day1 = (y1*365)+months[--m1]+cvtint(d1);
   if ( leap(y1)==1 && m1>=2 ) day1 = ++day1; 

   var y2 = document.wheel.cyear.value;
   var m2 = document.wheel.cmonth.value;
   var d2 = document.wheel.cday.value;
   m2 = cvtint(m2);
   if ( cvtint(y2)>0 ) var day2 = (y2*365)+months[--m2]+cvtint(d2);
   if ( leap(y1)==1 && m2>=2 ) day2 = ++day2; 

   var y3 = document.wheel.xyear.value;
   var m3 = document.wheel.xmonth.value;
   var d3 = document.wheel.xday.value;
   m3 = cvtint(m3);
   if ( cvtint(y3)>0 ) var day3 = (y3*365)+months[--m3]+cvtint(d3);
   if ( leap(y1)==1 && m3>=2 ) day3 = ++day3; 

   if ( day1>365 ) document.wheel.used.value = day2-day1;
   if ( day3>365 ) document.wheel.unused.value = day3-day2;
}
function factor() {
   var u1 = document.wheel.used.value;
   var u2 = document.wheel.unused.value;         
   var u3 = document.wheel.earned.value;         
   var t = (cvtint(u2)+cvtint(u1));              // term in days
   var tm = document.wheel.term.value;           // term in months
   var m = document.wheel.method.selectedIndex;
   if ( m<0 || m>2) m = 0;                       // set default to short term
   if ( u1<1 || u2<1 ) {
       document.wheel.earned.value = "";
       document.wheel.unearned.value = "";
       document.wheel.eprem.value = "";
       document.wheel.rprem.value = "";
       return;
   }
   if ( m==2 ) { 
      var f = u2/t;
   }
   if ( m==1 ) {
      if ( t<=365 ) var f = (u2/t)*0.9;
      else if ( t>=365 && u1<365 ) { 
           var f = ((t-365)/t+0.3*((365-parseInt(u1))/365)); }
      else var f = u2/(parseInt(u2)+parseInt(u1)); 
   }
   if ( m==0 && ( tm==6 || tm==12 || tm==36 )) {
      if ( u1>365 ) var f = (1.7/2.7*(1.0-Math.ceil((u1-365.0)/5.0)/146.0));
      else {
           if ( t==183 || t==184 ) var u1 = u1*2;
           var f = 90.0-u1/3.65;
           if ( u1<23 ) var f = f+5.55-u1/4.0;
           else if ( u1>186 && u1<365 ) var f = f+u1/18.29-9.98;
           else if ( u1>=365 ) var f = 0;
           var f = Math.floor(f)/100.0;
           if ( t>365 ) var f = 1-((1-f)/2.7);
    }
   }
   document.wheel.earned.value = Math.round((1-f)*1000)/1000;
   document.wheel.unearned.value = Math.round(f*1000)/1000;
   if ( m==0 && ( tm!=6 && tm!=12 && tm!=36 )) {
      document.wheel.earned.value = 0;
      document.wheel.unearned.value = 0;
   }
   calculate();
}
function calculate() {
   var p = document.wheel.prem.value;
   var x = document.wheel.earned.value;
   if ( parseFloat(p)>0 && x>0 ) {
      var p = Math.round(p*100)/100;  
          document.wheel.prem.value = p;
      var ep = (Math.round((p*x)*100))/100;  
      var rp = Math.round((p-ep)*100)/100;  }
   else {
      var ep = "";  
      var rp = "";  }
   document.wheel.eprem.value = ep;
   document.wheel.rprem.value = rp; 
}
function ckdate(chk) {
   var chkmonth = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
   var mm = parseInt(chk/1000000);
   var dd = parseInt((chk-mm*1000000)/10000);
   var yy = chk-mm*1000000-dd*10000;
   var l = leap(yy);
   if ( mm<1 || mm>12 ) return 1;
   if ( dd==29 && mm==2 && l==1) return 0;
   if ( dd>chkmonth(mm) || dd<1 ) return 1;
   return 0;
}
function leap(yr) {
   if (parseInt(yr/4)==yr/4 && (parseInt(yr/100)!=yr/100 || 
      parseInt(yr/400)==yr/400)) return 1; 
   else return 0;
}
function cvtint(xx) {
   var x = parseFloat(xx);
   var x = parseInt(x);
   return x;
}


