

// --------------------------------------------------------------------------
// COST RUNNING CALC
// --------------------------------------------------------------------------

function strRound( number, places ) {
    if ( number < 1 ) {
        result = "0" + Math.round( number * Math.pow(10, places) );
    }
    else {
        result = "" + Math.round( number * Math.pow(10, places) );
    }

    var dp = result.length - places;
    result = result.substring(0, dp) + "." + 
             result.substring(dp, result.length);
        
    if ( number < 0 ) {
        result = "-" + result;
    }

    return result;
}


function commaFormat(num , sep) 
{ 
	var n = '' + num;
	var numl  = n.length;
	var i = n.indexOf('.');
	var fract = '';

	if (i > -1){
		numl -= n.length-i;
		fract = n.substring(i);
	}
	if (numl > 3){
		var s, dl = numl%3;
		var str = (dl > 0) ? n.substring(0,dl):'';
		var max = Math.floor(numl/3);
		for (i=0 ; i < max ; i++){
			s = n.substring(dl+i*3,dl+i*3+3);
			str += (dl==0 && i==0) ? s : sep+s;
 		}
		return str+fract;
	}else return n;
}


function calcCarCost() {
 
  var loan      = document.forms[0].loan.value;
  var insurance = document.forms[0].insurance.value;
  var car       = document.forms[0].car.value;
  var engine    = document.forms[0].engine.value;
  var mileage   = document.forms[0].mileage.value;
  var tax       = document.forms[0].tax.value;

  var error = '';

  if (loan == '')      error += '* Loan field is empty\n';
  if (insurance == '') error += '* Insurance field is empty\n';
  if (car == '')       error += '* Please select a car\n';
  if (engine == '')    error += '* Please select an engine\n';
  if (mileage == '')   error += '* Please select a mileage\n';
  if (tax == '')       error += '* Please select a tax\n';

  if (error != '') alert (error);
  else {
  // ----------------  Constant values -----------------------
        var cover_figure    = 3.14;
	var tax_figure      = [60.50,110.00,90.75,165.00];
	var pence_per_mile  = [0.0795,0.0875,0.1115,0.1300,0.1500];
	var service_figures = [16.00,18.50,24.00,30.00,38.00];
  // ---------------------------------------------------------
	
	var which_tax    = (Number(engine) < 2 ? 0 : 2) + Number(tax);
	var tax_months   = Number(tax) == 0 ? 6.00 : 12.00;
	var pence        = pence_per_mile[Number(engine)];
	var figure       = service_figures[Number(engine)];
	var fig_per_mile = parseFloat(mileage) + 1.00;
	
	var m_tax        = tax_figure[which_tax] / tax_months;
	var m_insurance  = parseFloat(insurance) / 12;
	var m_petrol     = pence  * fig_per_mile * 5000.00 / 12;
	var m_service    = figure * fig_per_mile;
	
	var m_total      = parseFloat(loan) + m_tax + m_insurance + cover_figure + m_petrol + m_service;
	
	document.getElementById('m_loan').innerHTML      = '&pound;' + commaFormat(strRound(loan, 2), ",");
      document.getElementById('m_tax').innerHTML       = '&pound;' + commaFormat(strRound(m_tax, 2), ",");
 	document.getElementById('m_insurance').innerHTML = '&pound;' + commaFormat(strRound(m_insurance, 2), ",");
	document.getElementById('m_cover').innerHTML     = '&pound;' + commaFormat(strRound(cover_figure, 2), ",");
	document.getElementById('m_petrol').innerHTML    = '&pound;' + commaFormat(strRound(m_petrol, 2), ",");
	document.getElementById('m_service').innerHTML   = '&pound;' + commaFormat(strRound(m_service, 2), ",");

      document.getElementById('m_total').innerHTML     = '&pound;' + commaFormat(strRound(m_total, 2), ",");
  }

}
// --------------------------------------------------------------------------
// END COST RUNNING CALC
// --------------------------------------------------------------------------



