﻿function CalcFixedAnnualTotal()
{    var fieldvalue;
     var Total;
     var TotalC;
     var i;
     for (i=1; i<=10; i++)
     {
        var Source = document.getElementById('txt_' + String(i)); 
        var TotalSource = document.getElementById('txtFixed'); 
        var a = document.getElementById('lbl_fixa');
        var c = document.getElementById('lbl_fixc');
        var m = document.getElementById('txtMiles');
        
        if (Source.value != null) 
        {   fieldvalue = Source.value.replace(',','');
            fieldvalue = fieldvalue.replace('$','');
            if (IsNumeric(fieldvalue))
            {       
                     if(Total != null)
                        {Total += roundNumber(parseFloat(fieldvalue),2);}
                     else
                        {Total = roundNumber(parseFloat(fieldvalue),2);}                        
            }
        } 
     }
                            
     if(Total != null)
     {TotalSource.innerHTML = formatCurrency(Total);
      a.innerHTML = formatCurrency(Total);
      var fieldvalue4 = m.value.replace(',','');
      if (IsNumeric(fieldvalue4))
        { 
            TotalC = roundNumber(Total / parseFloat(fieldvalue4),3);
            c.innerHTML = TotalC;
        }
      }
     else
     {TotalSource.innerHTML = 'Annual Fixed Costs';
     a.innerHTML = 'Annual Costs';
     c.innerHTML = 'Cents Per Mile';}

}

function CalcFixedMonthlyTotal()
{    var fieldvalue;
     var Total;
     var i;
     for (i=1; i<=10; i++)
     {
        var Source = document.getElementById('txt_' + String(i)+'a'); 
        var TotalSource = document.getElementById('txtFixedMonth');
        var b = document.getElementById('lbl_fixb');
       
        
        if (Source.value != null) 
        {   fieldvalue = Source.value.replace(',','');
            fieldvalue = fieldvalue.replace('$','');
            if (IsNumeric(fieldvalue))
            {        if(Total != null)
                        {Total += roundNumber(parseFloat(fieldvalue),2);}
                     else
                        {Total = roundNumber(parseFloat(fieldvalue),2);}                        
            }
        } 
     }
     
     if(Total != null)
     {TotalSource.innerHTML = formatCurrency(Total);
     b.innerHTML = formatCurrency(Total);}
     else
     {TotalSource.innerHTML = 'Monthly Fixed Costs';
     b.innerHTML = 'Monthly Costs';}
}

function CalcVariableAnnualTotal()
{    var fieldvalue;
     var Total;
     var TotalC;
     var i;
     for (i=11; i<=28; i++)
     {
        var Source = document.getElementById('txt_' + String(i)); 
        var TotalSource = document.getElementById('txtVariable');
        var a = document.getElementById('lbl_vara');
        var c = document.getElementById('lbl_varc');
        var m = document.getElementById('txtMiles');
        
        if (Source.value != null) 
        {   fieldvalue = Source.value.replace(',','');
            fieldvalue = fieldvalue.replace('$','');
            if (IsNumeric(fieldvalue))
            {       
                     if(Total != null)
                        {Total += roundNumber(parseFloat(fieldvalue),2);}
                     else
                        {Total = roundNumber(parseFloat(fieldvalue),2);}                        
            }
        } 
     }  
                 
     if(Total != null)
     {TotalSource.innerHTML = formatCurrency(Total);
      a.innerHTML = formatCurrency(Total);
      var fieldvalue4 = m.value.replace(',','');
      if (IsNumeric(fieldvalue4))
        { 
            TotalC = roundNumber(Total / parseFloat(fieldvalue4),3);
            c.innerHTML = TotalC;
        }
     }
     else
     {TotalSource.innerHTML = 'Annual Variable Costs';
     a.innerHTML = 'Annual Costs';
     c.innerHTML = 'Cents Per Mile';}

}

function CalcVariableMonthlyTotal()
{    var fieldvalue;
     var Total;
     var i;
     for (i=11; i<=28; i++)
     {
        var Source = document.getElementById('txt_' + String(i)+'a'); 
        var TotalSource = document.getElementById('txtVariableMonth');
        var b = document.getElementById('lbl_varb');
        
        if (Source.innerHTML != null) 
        {   fieldvalue = Source.value.replace(',','');
            fieldvalue = fieldvalue.replace('$','');
            if (IsNumeric(fieldvalue))
            {        if(Total != null)
                        {Total += roundNumber(parseFloat(fieldvalue),2);}
                     else
                        {Total = roundNumber(parseFloat(fieldvalue),2);}                        
            }
        } 
     }
     
     if(Total != null)
     {TotalSource.innerHTML = formatCurrency(Total);
     b.innerHTML = formatCurrency(Total);}
     else
     {TotalSource.innerHTML = 'Monthly Variable Costs';
      b.innerHTML = 'Monthly Costs';}
}

function CalcTotalCosts()
{    var fieldvalue1;
     var fieldvalue2;
     var fieldvalue3;
     var fieldvalue4;
     var fieldvalue5;
     var Total;
     var TotalTCO;
     var TotalPenny;
     
        var Source1 = document.getElementById('txtFixed');
        var Source2 = document.getElementById('txtVariable');
        var Source3 = document.getElementById('txtAnnualIncome');
        var Source4 = document.getElementById('txtMiles');
        var TotalSource = document.getElementById('lblAnnualTVC');
        var TotalTCOSource = document.getElementById('lblAnnualTCO');
        var TotalCents = document.getElementById('lblCentsTCO');
        var a = document.getElementById('lbl_tcoa');
        var c = document.getElementById('lbl_tcoc');
        var a2 = document.getElementById('lbl_veca');
        var c2 = document.getElementById('lbl_vecc');
        var m = document.getElementById('txtMiles');
        
        if (Source1.innerHTML != null) 
        {   fieldvalue1 = Source1.innerHTML.replace(',','');
            fieldvalue1 = fieldvalue1.replace('$','');
            if (IsNumeric(fieldvalue1))
            {  
   
                Total = roundNumber(parseFloat(fieldvalue1),2);                      
            }
        } 
        
        if (Source2.innerHTML != null) 
        {   fieldvalue2 = Source2.innerHTML.replace(',','');
            fieldvalue2 = fieldvalue2.replace('$','');
            if (IsNumeric(fieldvalue2))
            {       
                 if(Total != null)
                    {Total += roundNumber(parseFloat(fieldvalue2),2);}
                 else
                    {Total = roundNumber(parseFloat(fieldvalue2),2);}                        
            }
        } 
                  
         if(Total != null)
         {
            TotalSource.innerHTML = formatCurrency(Total);
            a2.innerHTML = TotalSource.innerHTML ;
            var fieldvalue42 = m.value.replace(',','');
            if (IsNumeric(fieldvalue42))
            { 
                TotalC = roundNumber(Total / parseFloat(fieldvalue42),3);
                c2.innerHTML = TotalC;
            }
            
            
            if (Source3.value != null) 
            {   fieldvalue3 = Source3.value.replace(',','');
                fieldvalue3 = fieldvalue3.replace('$','');
                if (IsNumeric(fieldvalue3))
                {       
                     if(TotalTCO != null)
                        {TotalTCO += roundNumber(parseFloat(fieldvalue3),2);}
                     else
                        {TotalTCO = roundNumber(parseFloat(fieldvalue3),2);}                        
                }
                
            } 
            
            if(TotalTCO != null)
            {
                TotalTCOSource.innerHTML = formatCurrency(Total + TotalTCO);
            }
            else
            {
                TotalTCOSource.innerHTML =  TotalSource.innerHTML;
            }
            
            a.innerHTML = TotalTCOSource.innerHTML
            
            if (Source4.value != null) 
            {   fieldvalue4 = Source4.value.replace(',','');
                fieldvalue5 = TotalTCOSource.innerHTML.replace(',','');
                fieldvalue5 = fieldvalue5.replace('$','');
                if (IsNumeric(fieldvalue4))
                {  
                    TotalPenny = roundNumber(parseFloat(fieldvalue5)/parseFloat(fieldvalue4),3);                      
                }
            } 
            if(TotalPenny != null)
            {
                TotalCents.innerHTML = TotalPenny;
            }
            else
            {
                TotalCents.innerHTML = '0';
            }
            
            c.innerHTML = TotalCents.innerHTML;
         
         }
         else
         {
         TotalSource.innerHTML = 'Annual Vehicle Costs';
         TotalTCOSource.innerHTML =  'Annual Costs';
         a.innerHTML = 'Annual Costs';
         c.innerHTML = 'Cents Per Mile';
         a2.innerHTML = 'Annual Costs';
         c2.innerHTML = 'Cents Per Mile';
         }
}

function CalcTotalMonthlyCosts()
{    var fieldvalue1;
     var fieldvalue2;
     var fieldvalue3;
     var Total;
     var TotalTCO;
     
        var Source1 = document.getElementById('txtFixedMonth');
        var Source2 = document.getElementById('txtVariableMonth');
        var Source3 = document.getElementById('txtMonthlyIncome');
        var TotalSource = document.getElementById('lblMonthTVC');
        var TotalTCOSource = document.getElementById('lblMonthTCO');
        
        var b = document.getElementById('lbl_tcob');
        var b2 = document.getElementById('lbl_vecb');
        
        if (Source1.innerHTML != null) 
        {   fieldvalue1 = Source1.innerHTML.replace(',','');
            fieldvalue1 = fieldvalue1.replace('$','');
            if (IsNumeric(fieldvalue1))
            {       
                Total = roundNumber(parseFloat(fieldvalue1),2);                      
            }
        } 
        
        if (Source2.innerHTML != null) 
        {   fieldvalue2 = Source2.innerHTML.replace(',','');
            fieldvalue2 = fieldvalue2.replace('$','');
            if (IsNumeric(fieldvalue2))
            {       
                 if(Total != null)
                    {Total += roundNumber(parseFloat(fieldvalue2),2);}
                 else
                    {Total = roundNumber(parseFloat(fieldvalue2),2);}                        
            }
        } 
                    
         if(Total != null)
         {
            TotalSource.innerHTML = formatCurrency(Total);
            b2.innerHTML = TotalSource.innerHTML;
            
            if (Source3.value != null) 
            {   fieldvalue3 = Source3.value.replace(',','');
                fieldvalue3 = fieldvalue3.replace('$','');
                
                
                if (IsNumeric(fieldvalue3))
                {       
                     if(TotalTCO != null)
                        {TotalTCO += roundNumber(parseFloat(fieldvalue3),2);}
                     else
                        {TotalTCO = roundNumber(parseFloat(fieldvalue3),2);}                        
                }
                
            }
            
            if(TotalTCO != null)
            {
                TotalTCOSource.innerHTML = formatCurrency(Total + TotalTCO);
            }
            else
            {
                TotalTCOSource.innerHTML =  TotalSource.innerHTML;
            }
            
            b.innerHTML = TotalTCOSource.innerHTML;
         }
         else
         {
            TotalSource.innerHTML = 'Monthly Vehicle Costs';
            TotalTCOSource.innerHTML =  'Monthly Costs';
            b.innerHTML =  'Monthly Costs';
            b2.innerHTML =  'Monthly Costs';
         }
}

function CalcMonthly(source,target) 
{ 
    var Source = document.getElementById(source); 
    var Target = document.getElementById(source+'a'); 
    var Target2 = document.getElementById(target+'a'); 
    var Target3 = document.getElementById(target+'b');
    var Target4 = document.getElementById(target+'c'); 
    
    var m = document.getElementById('txtMiles'); 
    var fieldvalue;

    if (Source.value != null) 
    {   if (Source.value.length == 0) {Target.value = '0';}
        fieldvalue = Source.value.replace(',','');
        fieldvalue = fieldvalue.replace('$','');
        if (IsNumeric(fieldvalue))
        {
            Target.value = formatCurrency(roundNumber(parseFloat(fieldvalue)/12,2));
            Source.value = formatCurrency(fieldvalue);
            Target2.innerHTML = Source.value;
            Target3.innerHTML = Target.value;
            var fieldvalue42 = m.value.replace(',','');
            if (IsNumeric(fieldvalue42))
            { 
                Target4.innerHTML = roundNumber(parseFloat(fieldvalue) / parseFloat(fieldvalue42),3);
            }
           
            CalcFixedMonthlyTotal();
            CalcFixedAnnualTotal();
            CalcVariableMonthlyTotal();
            CalcVariableAnnualTotal();
            CalcTotalCosts();
            CalcTotalMonthlyCosts();
        }
    } 
    else
    {
        Target.innerHTML = '0';
    }
} 

function CalcAnnually(source,target) 
{ 
    var Source = document.getElementById(source+'a'); 
    var Target = document.getElementById(source); 
    var Target2 = document.getElementById(target+'a'); 
    var Target3 = document.getElementById(target+'b');
    var Target4 = document.getElementById(target+'c'); 
    
    var m = document.getElementById('txtMiles'); 
    var fieldvalue;

    if (Source.value != null) 
    {   if (Source.value.length == 0) {Target.value = '0';}
        fieldvalue = Source.value.replace(',','');
        fieldvalue = fieldvalue.replace('$','');
        if (IsNumeric(fieldvalue))
        {
            Target.value = formatCurrency(roundNumber(parseFloat(fieldvalue)*12,2));
            Source.value = formatCurrency(fieldvalue);
            fieldvalue = Target.value.replace(',','');
            fieldvalue = fieldvalue.replace('$','');            
            
            Target2.innerHTML = Source.value;
            Target3.innerHTML = Target.value;
            var fieldvalue42 = m.value.replace(',','');
            if (IsNumeric(fieldvalue42))
            { 
                Target4.innerHTML = roundNumber(parseFloat(fieldvalue) / parseFloat(fieldvalue42),3);
            }
           
            CalcFixedMonthlyTotal();
            CalcFixedAnnualTotal();
            CalcVariableMonthlyTotal();
            CalcVariableAnnualTotal();
            CalcTotalCosts();
            CalcTotalMonthlyCosts();
        }
    } 
    else
    {
        Target.innerHTML = '0';
    }
} 

function CalcMonthlyIncome(source, target, target2) 
{ 
    var Source = document.getElementById(source); 
    var Target = document.getElementById(target);
    var Target2 = document.getElementById(target2+'b');
    var Target3 = document.getElementById(target2+'c');
    var Target4 = document.getElementById(target2+'a');
    var m = document.getElementById('txtMiles'); 
    var fieldvalue;

    if (Source.value != null) 
    {   if (Source.value.length == 0) {Target.value = '0';}
        fieldvalue = Source.value.replace(',','');
        fieldvalue = fieldvalue.replace('$','');
        if (IsNumeric(fieldvalue))
        {
            Target.value = formatCurrency(roundNumber(parseFloat(fieldvalue)/12,2));
            Source.value = formatCurrency(fieldvalue);
            Target4.innerHTML = Source.value;
            Target2.innerHTML = Target.value;
            
            var fieldvalue42 = m.value.replace(',','');
            if (IsNumeric(fieldvalue42))
            { 
                Target3.innerHTML = roundNumber(parseFloat(fieldvalue) / parseFloat(fieldvalue42),3);
            }
            
            
            CalcTotalMonthlyCosts();
            CalcTotalCosts();
        }
    } 
    else
    {
        Target.value = '0';
        CalcTotalMonthlyCosts();
        CalcTotalCosts();
    }
} 

function CalcAnnualIncome(source, target, target2) 
{ 
    var Source = document.getElementById(source); 
    var Target = document.getElementById(target); 
    var Target2 = document.getElementById(target2+'a');
    var Target3 = document.getElementById(target2+'c');
    var Target4 = document.getElementById(target2+'b');
    var m = document.getElementById('txtMiles');
    var fieldvalue;

    if (Source.value != null) 
    {   if (Source.value.length == 0) {Target.value = '0';}
        fieldvalue = Source.value.replace(',','');
        fieldvalue = fieldvalue.replace('$','');
        if (IsNumeric(fieldvalue))
        {
            Target.value = formatCurrency(roundNumber(parseFloat(fieldvalue)*12,2));
            Source.value = formatCurrency(fieldvalue);
            Target4.innerHTML = Source.value;
            Target2.innerHTML = Target.value;
            
            var fieldvalue42 = m.value.replace(',','');
            if (IsNumeric(fieldvalue42))
            { 
                Target3.innerHTML = roundNumber(parseFloat(fieldvalue) / parseFloat(fieldvalue42),3);
            }
            
            CalcTotalMonthlyCosts();
            CalcTotalCosts();
        }
    } 
    else
    {
        Target.value = '0';
        CalcTotalMonthlyCosts();
        CalcTotalCosts();
    }
} 

function ReCalcMoneys()
{
     var fieldvalue;
     var Total;
     var c;
     var i;
     for (i=1; i<=28; i++)
     {
        var Source = document.getElementById('txt_' + String(i)); 
        var Source2 = document.getElementById('txt_' + String(i) +'a'); 
        if (Source.value != null) 
        {   fieldvalue = Source.value.replace(',','');
            fieldvalue = fieldvalue.replace('$','');
            if (IsNumeric(fieldvalue))
            {    
               CalcMonthly('txt_' + String(i), 'lbl_' + String(i))
            }
        } 
        
        CalcMonthlyIncome('txtAnnualIncome','txtMonthlyIncome', 'lbl_dvr');
     }  
}

function MilesChange()
{
    var Source = document.getElementById('lblMiles'); 
    if (Source != null) 
    {
        Source.innerHTML = document.getElementById('txtMiles').value
        ReCalcMoneys();
        CalcFixedMonthlyTotal();
        CalcFixedAnnualTotal();
        CalcVariableMonthlyTotal();
        CalcVariableAnnualTotal();
        CalcTotalCosts();
        CalcTotalMonthlyCosts();
    }
    
}

function IsNumeric(strString)
   //  check for valid numeric strings	
   {
   var strValidChars = "0123456789.-";
   var strChar;
   var blnResult = true;

   if (strString.length == 0) return false;

   //  test strString consists of valid characters listed above
   for (i = 0; i < strString.length && blnResult == true; i++)
      {
      strChar = strString.charAt(i);
      if (strValidChars.indexOf(strChar) == -1)
         {
         blnResult = false;
         }
      }
   return blnResult;
   }

function roundNumber(num, dec) 
{
    var result = Math.round(num*Math.pow(10,dec))/Math.pow(10,dec);
    return result;
}
    
function formatCurrency(num) 
{
    num = num.toString().replace(/\$|\,/g,'');
    if(isNaN(num))
    num = "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 + '.' + cents);
}

function doFix()
{
    document.getElementById('pnlFix').style.display ='block';
    document.getElementById('pnlVar').style.display ='none';
    document.getElementById('pnlFinish').style.display ='none';
    document.getElementById('Hidden1').value = 'pnlFix';
    document.getElementById('ibtnFixed').src = "images/calc_tab1.gif";
    document.getElementById('ibtnVar').src = "images/calc_tab2x.gif";
    document.getElementById('ibtnResults').src = "images/calc_tab3x.gif";
    return false;
}

function doVar()
{
    document.getElementById('pnlVar').style.display ='block';
    document.getElementById('pnlFix').style.display ='none';
    document.getElementById('pnlFinish').style.display ='none';
    document.getElementById('Hidden1').value = 'pnlVar';
    document.getElementById('ibtnFixed').src = "images/calc_tab1x.gif";
    document.getElementById('ibtnVar').src = "images/calc_tab2.gif";
    document.getElementById('ibtnResults').src = "images/calc_tab3x.gif";
    return false;
}

function doFinish()
{
    document.getElementById('pnlVar').style.display ='none';
    document.getElementById('pnlFix').style.display ='none';
    document.getElementById('pnlFinish').style.display ='block';
    document.getElementById('Hidden1').value = 'pnlFinish';
    document.getElementById('ibtnFixed').src = "images/calc_tab1x.gif";
    document.getElementById('ibtnVar').src = "images/calc_tab2x.gif";
    document.getElementById('ibtnResults').src = "images/calc_tab3.gif";
    MilesChange();

    if (document.getElementById('Hidden2').value == 'show')
    {
        showdetails(document.getElementById('pnlDetail'));
    }
    
    return false;
}

function showhide()
{
    var s = document.getElementById('pnlDetail'); 
    if(s.style.display == 'block') 
    {
        s.style.display='none'; 
        this.src='images/calc_button-view.gif';
        document.getElementById('Hidden2').value = 'hide';        
    } 
    else 
    {
        showdetails(s);     
    }
}

function showdetails(s)
{
    s.style.display='block'; 
    this.src='images/calc_button-hide.gif';
    document.getElementById('Hidden2').value = 'show';
}

window.onload = function StartUpScript()
{
   
    if (document.getElementById('Hidden1').value == 'pnlVar')
    {
        document.getElementById('pnlVar').style.display ='block';
        document.getElementById('pnlFix').style.display ='none';
        document.getElementById('pnlFinish').style.display ='none';
        document.getElementById('ibtnFixed').src = "images/calc_tab1x.gif";
        document.getElementById('ibtnVar').src = "images/calc_tab2.gif";
        document.getElementById('ibtnResults').src = "images/calc_tab3x.gif";
    }
    else if (document.getElementById('Hidden1').value == 'pnlFix')
    {
        document.getElementById('pnlVar').style.display ='none';
        document.getElementById('pnlFix').style.display ='block';
        document.getElementById('pnlFinish').style.display ='none';
        document.getElementById('ibtnFixed').src = "images/calc_tab1.gif";
        document.getElementById('ibtnVar').src = "images/calc_tab2x.gif";
        document.getElementById('ibtnResults').src = "images/calc_tab3x.gif";
    }
    else if (document.getElementById('Hidden1').value == 'pnlFinish')
    {
        document.getElementById('pnlVar').style.display ='none';
        document.getElementById('pnlFix').style.display ='none';
        document.getElementById('pnlFinish').style.display ='block';
        document.getElementById('Hidden1').value = 'pnlFinish';
        document.getElementById('ibtnFixed').src = "images/calc_tab1x.gif";
        document.getElementById('ibtnVar').src = "images/calc_tab2x.gif";
        document.getElementById('ibtnResults').src = "images/calc_tab3.gif";
    }
    else
    {
        document.getElementById('pnlVar').style.display ='none';
        document.getElementById('pnlFix').style.display ='block';
        document.getElementById('pnlFinish').style.display ='none';
        document.getElementById('ibtnFixed').src = "images/calc_tab1.gif";
        document.getElementById('ibtnVar').src = "images/calc_tab2x.gif";
        document.getElementById('ibtnResults').src = "images/calc_tab3x.gif";
    }
}

function isValidEmail(str) {
   return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
}

