

addEvent(window, "load", apu_loader);
var isMetric = false;

/*function set_apu_value ()
{
    if ( $('3APU').checked=='true' )
    {
        $('apu_gpu').value = '0.18';
        $('quote_price').value = '$7,800';

    }
    else if ( $('7APU').checked=='true' )
    {
         $('apu_gpu').value = '0.3';
         $('quote_price').value = '$10,500';
    }

    calculate();
}
        */
function apu_loader() {
	//set_apu_value();
    var cbxs=document.getElementsByTagName('input');
   for (var i=0; i<cbxs.length; i++) {
       if(cbxs[i].type=='radio') {
         cbxs[i].style.border='none';
       }
    }
    if ($('idling_gpu')) {
		// add events to the input fields
		input_fields_apu = document.getElementsByClassName('textinput');
		for(var i = 0; i < input_fields_apu.length; i++) {
			input_fields_apu[i].onkeyup = function () { calculate();}
		}
		
		$('idling_gpu').onblur = function () {$('idling_gpu').value = displayNum('idling_gpu'); calculate();}
        $('apu_gpu').onblur = function () {$('apu_gpu').value = displayNum('apu_gpu'); calculate();}
        $('hours_per_week').onblur = function () {$('hours_per_week').value = displayNum('hours_per_week');calculate();}
		$('price_per_gallon').onblur = function () {$('price_per_gallon').value = displayMoney('price_per_gallon');calculate();}	
		$('avg_fuel_ecom').onblur = function () {$('avg_fuel_ecom').value = displayNum('avg_fuel_ecom'); calculate();}
		$('oil_chng_cost').onblur = function () {$('oil_chng_cost').value = displayMoney('oil_chng_cost');calculate();}
		$('miles_btwn_oc').onblur = function () {$('miles_btwn_oc').value = displayNum('miles_btwn_oc'); calculate();}
		$('miles_btwn_oh').onblur = function () {$('miles_btwn_oh').value = displayNum('miles_btwn_oh'); calculate();}
		$('overhaul_cost').onblur = function () {$('overhaul_cost').value = displayMoney('overhaul_cost');calculate();}
		$('quote_price').onblur = function () {$('quote_price').value = displayMoney('quote_price');calculate();}
		$('apu_year_cost').onblur = function () {$('apu_year_cost').value = displayMoney('apu_year_cost');calculate();}
	    $('3APU').onclick = function () {
            if (!isMetric) {
                $('apu_gpu').value = '0.18';
            } else {
                $('apu_gpu').value = '0.68';
            }
            $('quote_price').value = '$7,800';
            $('apu_year_cost').value = '$100'
            calculate();
        }
        $('7APU').onclick = function () {
            if (!isMetric) {
                $('apu_gpu').value = '0.3';
            } else {
                $('apu_gpu').value = '1.13';
            }
            $('quote_price').value = '$10,500';
            $('apu_year_cost').value = '$100'
            calculate();
        }
        $('HPS').onclick = function () {
            if (!isMetric) {
                $('apu_gpu').value = '0.1';
            } else {
                $('apu_gpu').value = '.38';
            }
            $('quote_price').value = '$10,900';
            $('apu_year_cost').value = '$25'
            calculate();
        }
        $('metric').onclick = function () { if (!isMetric) {convertToMetric();calculate();} }
        $('nonmetric').onclick = function () {if (isMetric) {convertToNonMetric();calculate();} }
        calculate(); //show default calculations
	}
}

function convertToMetric() {
    isMetric = true;
    $('idling_gpu').value = (parseFloat($('idling_gpu').value) * 3.78541178).toFixed(2);
    $('idling_gpu_measure').innerHTML = 'liters / hour';
    $('apu_gpu').value = (parseFloat($('apu_gpu').value) * 3.78541178).toFixed(2);
    $('apu_gpu_measure').innerHTML = 'liters / hour';
    var pricePerGallon = cleanNum('price_per_gallon');
    $('price_per_gallon').value = (parseFloat(pricePerGallon) / 3.78541178).toFixed(2);
    $('price_per_gallon').value = displayMoney('price_per_gallon');
    $('price_per_gallon_measure').innerHTML = 'liter';
    $('avg_fuel_ecom').value = (parseFloat($('avg_fuel_ecom').value) * 0.425143707).toFixed(2);
    $('avg_fuel_ecom_measure').innerHTML = 'kilometers / liter';
    var cleanMilesBtwnOC = cleanNum('miles_btwn_oc');
    $('miles_btwn_oc').value = (parseFloat(cleanMilesBtwnOC) * 1.609344).toFixed(2);
    $('miles_btwn_oc_measure').innerHTML = 'kilometers';
    var cleanMilesBtwnOH = cleanNum('miles_btwn_oh');
    $('miles_btwn_oh').value = (parseFloat(cleanMilesBtwnOH) * 1.609344).toFixed(2);
    $('miles_btwn_oh_measure').innerHTML = 'kilometers';
}

function convertToNonMetric() {
    isMetric = false;
    $('idling_gpu').value = (parseFloat($('idling_gpu').value) * 0.264172052).toFixed(2);
    $('idling_gpu_measure').innerHTML = 'gallons / hour';
    $('apu_gpu').value = (parseFloat($('apu_gpu').value) * 0.264172052).toFixed(2);
    $('apu_gpu_measure').innerHTML = 'gallons / hour';
    var pricePerGallon = cleanNum('price_per_gallon');
    $('price_per_gallon').value = (parseFloat(pricePerGallon) * 3.78541178).toFixed(2);
    $('price_per_gallon').value = displayMoney('price_per_gallon');
    $('price_per_gallon_measure').innerHTML = 'gallon';
    $('avg_fuel_ecom').value = (parseFloat($('avg_fuel_ecom').value) * 2.35214583).toFixed(2);
    $('avg_fuel_ecom_measure').innerHTML = 'miles / gallon';
    var cleanMilesBtwnOC = cleanNum('miles_btwn_oc');
    $('miles_btwn_oc').value = (parseFloat(cleanMilesBtwnOC) * 0.621371192).toFixed(2);
    $('miles_btwn_oc_measure').innerHTML = 'miles';
    var cleanMilesBtwnOH = cleanNum('miles_btwn_oh');
    $('miles_btwn_oh').value = (parseFloat(cleanMilesBtwnOH) * 0.621371192).toFixed(2);
    $('miles_btwn_oh_measure').innerHTML = 'miles';
}

function calculate() {

    // fuel cost savings
	if(goodfield('idling_gpu') && goodfield('apu_gpu') && goodfield('price_per_gallon')&& goodfield('hours_per_week') ) {
		$('fuel_save').value = (parseFloat(cleanNum('idling_gpu')) - parseFloat(cleanNum('apu_gpu'))) * parseFloat(cleanNum('price_per_gallon'))* parseFloat(cleanNum('hours_per_week') * 50) ;
		$('fuel_save').value = displayMoney('fuel_save');
	}
	else {
		$('fuel_save').value = ""
	}
		$('fuel_save_span').innerHTML = $F('fuel_save');
	
	// Truck Preventive Maintenance & Overhaul Costs
	if(goodfield('idling_gpu')&& goodfield('avg_fuel_ecom')&& goodfield('hours_per_week')&& goodfield('oil_chng_cost')&& goodfield('miles_btwn_oc')&& goodfield('miles_btwn_oh')&& goodfield('overhaul_cost') ) {
		miles_idling = (parseFloat(cleanNum('idling_gpu'))) * parseFloat(cleanNum('avg_fuel_ecom'))* parseFloat(cleanNum('hours_per_week') * 50 ) ;
		oc_cost = (parseFloat(cleanNum('oil_chng_cost')) / parseFloat(cleanNum('miles_btwn_oc')) ) * miles_idling;
		oh_cost = (parseFloat(cleanNum('overhaul_cost')) / parseFloat(cleanNum('miles_btwn_oh')) ) * miles_idling;
		$('truck_cost').value = oc_cost + oh_cost;
		$('truck_cost').value = displayMoney('truck_cost');
		
	}
	else {
		$('truck_cost').value = ""
	}
		$('truck_cost_span').innerHTML = $F('truck_cost');
	
	if(goodfield('truck_cost')&& goodfield('fuel_save')) {
		$('total_save').value = (parseFloat(cleanNum('truck_cost'))) + (parseFloat(cleanNum('fuel_save')))
		$('total_save').value = displayMoney('total_save');
	}
		$('total_save_span').innerHTML = $F('total_save');
	
	// calculate return
	if(goodfield('total_save')&& goodfield('apu_year_cost')&& goodfield('quote_price') ) {
		savings = (parseFloat(cleanNum('total_save')) - parseFloat(cleanNum('apu_year_cost')) ) ;
		$('save_per_yr').value = savings;
		$('save_per_yr').value = displayMoney('save_per_yr');
		
		$('payback').value = parseFloat(cleanNum('quote_price'))  / savings;
		$('payback').value = displayNum('payback');
		if($('payback').value.indexOf(".") != -1) {
			$('payback').value = (Math.round(parseFloat("0"+$('payback').value) * 100) / 100).toFixed(2);
		} 
	}
	else {
		$('payback_span').value = ""
		flag = 0;
	}
		$('payback_span').innerHTML = $F('payback');
		$('save_per_yr_span').innerHTML = $F('save_per_yr');
}

function cleanNum(el) {
	var cleaned = displayNum(el).replace(/[\$,]/g, "");
	return cleaned;
}

function displayMoney(el) {
	var cleaned =   $F(el).replace(/[^0-9\.]/g, "");
	
	if(cleaned.indexOf(".") != -1) {
		cleaned = (Math.round(parseFloat("0"+cleaned) * 100 ) / 100).toFixed(2);
	}
	cleaned = "$" + cleaned;
	
	return addCommas(cleaned);
}

function displayNum(el) {
	var cleaned =   $F(el).replace(/[^0-9\.]/g, "");
	return addCommas(cleaned);
}

function addCommas(nStr)
{
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}


function goodfield(el) {
	clean = cleanNum(el);
	//try {console.log(clean)}catch(e){}
	return !isNaN(parseFloat(clean));
}

function move() {
	if($('panel').style.display=='none') {
		Effect.SlideDown($('panel'));$('expand').innerHTML='Minimize<img src="/common/images/arrow-up.gif" width="10" height="5" alt="" border="0" align="absmiddle" id="arrow-up" style="margin-left:2px;">'
	}
	else {
		Effect.SlideUp($('panel'));$('expand').innerHTML='Expand<img src="/common/images/arrow-down.gif" width="10" height="5" alt="" border="0" align="absmiddle" id="arrow-down" style="margin-left:2px;">'
	}
}