"Fuel Cost Calculator"
Bootstrap 3.1.0 Snippet by jbjohn942

<link href="//netdna.bootstrapcdn.com/bootstrap/3.1.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css"> <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.0/js/bootstrap.min.js"></script> <script src="//code.jquery.com/jquery-1.11.1.min.js"></script> <!------ Include the above in your HEAD tag ----------> <div class="container"> <div class="price-box"> <div class="row"> <div class="col-sm-6"> <form class="form-horizontal form-pricing" role="form"> <div class="price-slider"> <h4 class="great">Average Miles Per Year</h4> <div class="col-sm-12"> <div id="slider_mpy"></div> </div> </div> <div class="price-slider"> <h4 class="great">Average Diesel MPG</h4> <div class="col-sm-12"> <div id="slider_mpg"></div> </div> </div> <div class="price-slider"> <h4 class="great">Diesel Pump Cost</h4> <div class="col-sm-12"> <div id="slider_diesel"></div> </div> </div> <div class="price-slider"> <h4 class="great">Natural Gas Cost</h4> <div class="col-sm-12"> <div id="slider_natgas"></div> </div> </div> </div> <div class="col-sm-6"> <div class="price-form"> <div class="form-group"> <div class="row"> <div class="col-sm-6"> <label class="control-label">Total Diesel Gallons Consumed</label> </div> <div class="col-sm-6"> <input type="hidden" id="amount_amirol" class="form-control"> <input class="price lead" name="dieselGallons" type="text" id="dieselGallons" disabled="disabled" style="" /> </div> </div> </div> <div class="form-group"> <div class="row"> <div class="col-sm-6"> <label class="control-label">Diesel Cost</label> </div> <div class="col-sm-6"> <input type="hidden" id="amount_amirol" class="form-control"> <input class="price lead" name="dieselCost" type="text" id="dieselCost" disabled="disabled" style="" /> </div> </div> </div> <div class="form-group"> <div class="row"> <div class="col-sm-6"> <label class="control-label">CNG cost</label> </div> <div class="col-sm-6"> <input type="hidden" id="amount_amirol" class="form-control"> <input class="price lead" name="cngCost" type="text" id="cngCost" disabled="disabled" style="" /> </div> </div> </div> <div class="form-group"> <div class="row"> <div class="col-sm-6"> <label class="control-label">Savings</label> </div> <div class="col-sm-6"> <input type="hidden" id="amount_amirol" class="form-control"> <input class="price lead" name="savings" type="text" id="savings" disabled="disabled" style="" /> </div> </div> </div> </div> </form> </div> </div> </div> </div> <script src="https://code.jquery.com/ui/1.10.4/jquery-ui.min.js"></script>
body { padding-top: 60px; } .price-box { margin: 0 auto; background: #E9E9E9; border-radius: 10px; padding: 40px 15px; /*width: 500px;*/ } .ui-widget-content { border: 1px solid #bdc3c7; background: #e1e1e1; color: #222222; margin-top: 4px; } .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 7.2em; height: 2.7em; cursor: default; margin: 0 -40px auto !important; text-align: center; line-height: 30px; color: #FFFFFF; font-size: 12px; } .ui-slider .ui-slider-handle .glyphicon { color: #FFFFFF; margin: 0 1px; font-size: 11px; opacity: 0.7; } .ui-corner-all { border-radius: 20px; } .ui-slider-horizontal .ui-slider-handle { top: -.9em; } .ui-state-default, .ui-widget-content .ui-state-default { border: 1px solid #f9f9f9; background: #3498db; } .ui-slider-horizontal .ui-slider-handle { margin-left: -0.5em; } .ui-slider .ui-slider-handle { cursor: pointer; } .ui-slider a, .ui-slider a:focus { cursor: pointer; outline: none; } .price, .lead p { font-weight: 600; font-size: 32px; display: inline-block; line-height: 60px; border:0; width: 245px; } h4.great { margin: 0 0 25px 0; padding: 7px 15px; font-size: 18px; font-weight: 600; } .total { border-bottom: 1px solid #7f8c8d; /*display: inline; padding: 10px 5px;*/ position: relative; padding-bottom: 20px; } .total:before { content: ""; display: inline; position: absolute; left: 0; bottom: 5px; width: 100%; height: 3px; background: #7f8c8d; opacity: 0.5; } .price-slider { margin-bottom: 70px; } .price-slider span { font-weight: 200; display: inline-block; color: #7f8c8d; font-size: 13px; } .form-pricing { background: #ffffff; padding: 20px; border-radius: 4px; } .price-form { background: #ffffff; margin-bottom: 10px; padding: 20px; border: 1px solid #eeeeee; border-radius: 4px; /*-moz-box-shadow: 0 5px 5px 0 #ccc; -webkit-box-shadow: 0 5px 5px 0 #ccc; box-shadow: 0 5px 5px 0 #ccc;*/ } .form-group { margin-bottom: 0; } .form-group span.price { font-weight: 200; display: inline-block; color: #7f8c8d; font-size: 14px; } .help-text { display: block; margin-top: -10px; margin-bottom: 10px; color: #737373; /*position: absolute;*/ /*margin-left: 20px;*/ font-weight: 200; /*text-align: right;*/ width: 188px; } .price-form label { font-weight: 200; font-size: 21px; } img.payment { display: block; margin-left: auto; margin-right: auto } .ui-slider-range-min { background: #2980b9; } .active-month, .active-term { background: #3276b1; } /* HR */ hr.style { margin-top: 0; border: 0; border-bottom: 1px dashed #ccc; background: #999; }
// JavaScript Document var ngCost = 1, gge = (1.136), avgMiles, avgMpg, dCost, ngCost; $(document).ready(function() { $("#total").val("10000"); $("#slider_mpy").slider({ range: "min", animate: true, min: 10000, max: 250000, step: 5000, value: 100000, slide: function(event, ui) { update("#slider_mpy",ui.value); //changed avgMiles = ui.value; calcualtePrice(ui.value); } }); $("#slider_mpg").slider({ range: "min", animate: true, min: 1, max: 15, step: .25, value: 7, slide: function(event, ui) { update("#slider_mpg",ui.value); //changed avgMpg = ui.value; calcualtePrice(ui.value); } }); $("#slider_diesel").slider({ range: "min", animate: true, min: 2.00, max: 5.00, step: .01, value: 4, slide: function(event, ui) { update("#slider_diesel",ui.value); //changed dCost = ui.value; calcualtePrice(ui.value); } }); $("#slider_natgas").slider({ range: "min", animate: true, min: 1.00, max: 5.00, step: .01, value: 1.75, slide: function(event, ui) { update("#slider_natgas",ui.value); //changed ngCost = ui.value; calcualtePrice(ui.value); } }); $('#slider_mpy a').html('<label><span class="glyphicon glyphicon-chevron-left"></span> '+$("#slider_mpy").slider("value")+' <span class="glyphicon glyphicon-chevron-right"></span></label>'); $('#slider_mpg a').html('<label><span class="glyphicon glyphicon-chevron-left"></span> '+$("#slider_mpg").slider("value")+' <span class="glyphicon glyphicon-chevron-right"></span></label>'); $('#slider_diesel a').html('<label><span class="glyphicon glyphicon-chevron-left"></span> '+$("#slider_diesel").slider("value")+' <span class="glyphicon glyphicon-chevron-right"></span></label>'); $('#slider_natgas a').html('<label><span class="glyphicon glyphicon-chevron-left"></span> '+$("#slider_natgas").slider("value")+' <span class="glyphicon glyphicon-chevron-right"></span></label>'); avgMiles = $("#slider_mpy").slider("value"); avgMpg = $("#slider_mpg").slider("value"); dCost = $("#slider_diesel").slider("value"); ngCost = $("#slider_natgas").slider("value"); calcualtePrice(); }); function update(slider,val) { if(undefined === val) val = "0"; $('#sliderVal').val(val); $('a', slider).html('<label><span class="glyphicon glyphicon-chevron-left"></span> '+val+' <span class="glyphicon glyphicon-chevron-right"></span></label>'); } function calcualtePrice(val){ //alert(val + " " + $("#slider_natgas").slider("value")); var totalDieselConsumed = (avgMiles / avgMpg), totalDieselCost = ((avgMiles / avgMpg) * dCost), cneCostTotal = (totalDieselConsumed * (ngCost * gge)); if(undefined === val) val = $('#sliderVal').val(); $("#dieselGallons").val(totalDieselConsumed).formatCurrency({ symbol: '', roundToDecimalPlace: 0 }); $("#dieselCost").val(Math.round(totalDieselCost)).formatCurrency({ symbol: '$', roundToDecimalPlace: 0 }); $("#cngCost").val(Math.round(cneCostTotal)).formatCurrency({ symbol: '$', roundToDecimalPlace: 0 }); $("#savings").val(totalDieselCost - cneCostTotal).formatCurrency({ symbol: '$', roundToDecimalPlace: 0 }); } (function($){$.formatCurrency={};$.formatCurrency.regions=[];$.formatCurrency.regions[""]={symbol:"$",positiveFormat:"%s%n",negativeFormat:"(%s%n)",decimalSymbol:".",digitGroupSymbol:",",groupDigits:true}; $.fn.formatCurrency=function(destination,settings){if(arguments.length==1&&typeof destination!=="string"){settings=destination;destination=false }var defaults={name:"formatCurrency",colorize:false,region:"",global:true,roundToDecimalPlace:2,eventOnDecimalsEntered:false};defaults=$.extend(defaults,$.formatCurrency.regions[""]); settings=$.extend(defaults,settings);if(settings.region.length>0){settings=$.extend(settings,getRegionOrCulture(settings.region))}settings.regex=generateRegex(settings); return this.each(function(){$this=$(this);var num="0";num=$this[$this.is("input, select, textarea")?"val":"html"]();if(num.search("\\(")>=0){num="-"+num }if(num===""||(num==="-"&&settings.roundToDecimalPlace===-1)){return}if(isNaN(num)){num=num.replace(settings.regex,"");if(num===""||(num==="-"&&settings.roundToDecimalPlace===-1)){return }if(settings.decimalSymbol!="."){num=num.replace(settings.decimalSymbol,".")}if(isNaN(num)){num="0"}}var numParts=String(num).split(".");var isPositive=(num==Math.abs(num)); var hasDecimals=(numParts.length>1);var decimals=(hasDecimals?numParts[1].toString():"0");var originalDecimals=decimals;num=Math.abs(numParts[0]); num=isNaN(num)?0:num;if(settings.roundToDecimalPlace>=0){decimals=parseFloat("1."+decimals);decimals=decimals.toFixed(settings.roundToDecimalPlace); if(decimals.substring(0,1)=="2"){num=Number(num)+1}decimals=decimals.substring(2)}num=String(num);if(settings.groupDigits){for(var i=0;i<Math.floor((num.length-(1+i))/3); i++){num=num.substring(0,num.length-(4*i+3))+settings.digitGroupSymbol+num.substring(num.length-(4*i+3))}}if((hasDecimals&&settings.roundToDecimalPlace==-1)||settings.roundToDecimalPlace>0){num+=settings.decimalSymbol+decimals }var format=isPositive?settings.positiveFormat:settings.negativeFormat;var money=format.replace(/%s/g,settings.symbol);money=money.replace(/%n/g,num); var $destination=$([]);if(!destination){$destination=$this}else{$destination=$(destination)}$destination[$destination.is("input, select, textarea")?"val":"html"](money); if(hasDecimals&&settings.eventOnDecimalsEntered&&originalDecimals.length>settings.roundToDecimalPlace){$destination.trigger("decimalsEntered",originalDecimals) }if(settings.colorize){$destination.css("color",isPositive?"black":"red")}})};$.fn.toNumber=function(settings){var defaults=$.extend({name:"toNumber",region:"",global:true},$.formatCurrency.regions[""]); settings=jQuery.extend(defaults,settings);if(settings.region.length>0){settings=$.extend(settings,getRegionOrCulture(settings.region))}settings.regex=generateRegex(settings); return this.each(function(){var method=$(this).is("input, select, textarea")?"val":"html";$(this)[method]($(this)[method]().replace("(","(-").replace(settings.regex,"")) })};$.fn.asNumber=function(settings){var defaults=$.extend({name:"asNumber",region:"",parse:true,parseType:"Float",global:true},$.formatCurrency.regions[""]); settings=jQuery.extend(defaults,settings);if(settings.region.length>0){settings=$.extend(settings,getRegionOrCulture(settings.region))}settings.regex=generateRegex(settings); settings.parseType=validateParseType(settings.parseType);var method=$(this).is("input, select, textarea")?"val":"html";var num=$(this)[method](); num=num?num:"";num=num.replace("(","(-");num=num.replace(settings.regex,"");if(!settings.parse){return num}if(num.length==0){num="0"}if(settings.decimalSymbol!="."){num=num.replace(settings.decimalSymbol,".") }return window["parse"+settings.parseType](num)};function getRegionOrCulture(region){var regionInfo=$.formatCurrency.regions[region];if(regionInfo){return regionInfo }else{if(/(\w+)-(\w+)/g.test(region)){var culture=region.replace(/(\w+)-(\w+)/g,"$1");return $.formatCurrency.regions[culture]}}return null}function validateParseType(parseType){switch(parseType.toLowerCase()){case"int":return"Int"; case"float":return"Float";default:throw"invalid parseType"}}function generateRegex(settings){if(settings.symbol===""){return new RegExp("[^\\d"+settings.decimalSymbol+"-]","g") }else{var symbol=settings.symbol.replace("$","\\$").replace(".","\\.");return new RegExp(symbol+"|[^\\d"+settings.decimalSymbol+"-]","g")}}})(jQuery);

Related: See More


Questions / Comments: