Properly remove carbon calculator

This commit is contained in:
mDuo13
2023-03-08 17:19:15 -08:00
parent 63f8225190
commit 5630a2808c
21 changed files with 18 additions and 1050 deletions

View File

@@ -1,237 +0,0 @@
let calculator_data = {
'btc': {
'kWh': 951.58,
'tons': 0.000000466,
'gas': 75.7
},
'eth': {
'kWh': 42.86334969,
'tons': 0.0000000273454,
'gas': 2.38677
},
'pap': {
'kWh': 0.044,
'tons': 0.0000000000232,
'gas': 0.0035
},
'xrp': {
'kWh': 0.0079,
'tons': 0.0000000000045,
'gas': 0.00063
},
'vsa': {
'kWh': 0.0008,
'tons': 0.00000000000046,
'gas': 0.00006
},
'mst': {
'kWh': 0.0006,
'tons': 0.00000000000051,
'gas': 0.00005
},
}
function commarize() {
// Alter numbers larger than 1k
if (this >= 1e6) {
var units = ["Thousand", "Million", "Billion", "Trillion"];
// Divide to get SI Unit engineering style numbers (1e3,1e6,1e9, etc)
let unit = Math.floor(((this).toFixed(0).length - 1) / 3) * 3
// Calculate the remainder
var num = (this / ('1e'+unit)).toFixed(2)
var unitname = units[Math.floor(unit / 3) - 1]
// output number remainder + unitname
return num + ' ' + unitname
}
// return formatted original number
return this.toLocaleString()
}
// Add method to prototype. this allows you to use this function on numbers and strings directly
Number.prototype.commarize = commarize
String.prototype.commarize = commarize
let slider = document.getElementById( 'myRange' ),
txns = document.querySelectorAll( '.slider-amt' ),
dataTypes = document.querySelectorAll( '.d-output' ),
dataTxns = document.querySelectorAll( '.dash' ),
dataViz = document.querySelectorAll( '.viz-output' );
// Update the current slider value (each time you drag the slider handle)
function doCalculations(val){
// This loops through all the dataTypes returning the calculations for the selected one
[].slice.call(dataTypes).forEach( function( dataType ){
// if 'active', do calculations
if (dataType.classList.contains('active')){
// looping through the calculator data
let data_type = dataType.getAttribute( 'data-type' ),
data_comp = dataType.getAttribute( 'data-comp' ),
total = val * 1000000 * calculator_data[ data_type ][ data_comp ],
num = document.getElementById( data_comp + '-' + data_type ),
// kWhcomp = the number of kWh Portugal used in 2019
kWhComp = ( total / 50340000000 ).toFixed( 2 );
if (data_comp === 'tons') {
total = total * 1000000;
}
num.innerHTML = total.commarize();
num.style.transition = "all .2s ease-in-out";
// This is for the kWh comparison, it animates the transition/selection
if (data_comp === 'kWh' && kWhComp > .02){
if ( kWhComp > 1.1 ) { kWhComp = 1.03 };
let dot = document.getElementById(data_comp + '-' + data_type + '-dot');
dot.style.transition = "all .2s ease-in-out";
dot.style.transform = "scale(" + kWhComp * 100 + ")";
dot.style.webkitTransform = "scale(" + kWhComp * 100 + ")";
dot.style.msTransform = "scale(" + kWhComp * 100 + ")";
}
}
})
}
// This function is for the slider to highlight the selected number
function highlightNum(val){
[].slice.call(dataTxns).forEach(function(dataTxn){
dataTxn.classList.remove('active');
if (dataTxn.dataset.num === val){
dataTxn.classList.add('active')
}
});
}
// Run animations if crypto is selected
function cryptoSelected(){
gasCryptoAnimation();
co2CryptoAnimation();
}
// Run animations if cash is selected
function cashSelected(){
gasCashAnimation();
co2CashAnimation();
}
// Run animations if credit is selected
function creditSelected(){
gasCreditAnimation();
co2CreditAnimation();
}
// This is function to select the data type
function changeDataType( type ){
[].slice.call(dataTypes).forEach( function(dataType){
if (dataType.classList.contains(type)){
let dType = type.substring(2);
dataType.classList.add('active');
document.getElementById('gasAnimation').innerHTML = '';
document.getElementById('co2Animation').innerHTML = '';
if (dType === 'cash'){
cashSelected();
} else if (dType === 'credit'){
creditSelected()
} else {
cryptoSelected();
}
} else {
dataType.classList.remove('active');
}
});
// based on toggle, then to calculations + slider value
doCalculations(slider.value);
}
$('.tab-link').on('click', function(e){
e.preventDefault();
$('#data-selector li').removeClass('active');
$(this).parent('li').addClass('active');
// Pass the type to the Change Data function
let type = $(this).data("currencytype");
changeDataType(type);
ga( 'send', 'event', 'Carbon Calculator', 'Toggle Data Type', type );
})
// This is main section that will run the functions once the page is ready
$(document).ready(function(){
// gets the slider value
[].slice.call(txns).forEach(function(txn){
txn.innerHTML = slider.value;
})
// On the slider change, run the Calculator functions
slider.oninput = function() {
var val = this.value;
[].slice.call(txns).forEach(function(txn){
txn.innerHTML = val;
});
highlightNum(val);
doCalculations(val);
ga( 'send', 'event', 'Carbon Calculator', 'Slider Data Amount', val );
}
// On page load, run default functions
doCalculations(slider.value);
cryptoSelected();
// For mobile, show or hide the button
$(window).on('load resize scroll', function() {
if ($(window).width() < 993) {
let distance = $('#calculator-outputs').offset().top,
$window = $(window).scrollTop(),
data_toggle = $('#calculator-mobile-toggle'),
inputs = $('#calculator-inputs'),
inputs_offset = $('#calculator-inputs-offset');
if (distance < $window){
data_toggle.addClass('show').removeClass('hide');
} else {
inputs.removeClass('sticky');
data_toggle.addClass('hide').removeClass('show');
inputs_offset.removeClass('offset' );
$('#data-toggle').text('Change Inputs');
}
}
});
// This is the mobile button
$('#calculator-mobile-toggle').on( 'click', function(e){
e.preventDefault();
let inputs = $('#calculator-inputs'),
inputs_offset = $('#calculator-inputs-offset');
$('#calculator-inputs' ).toggleClass('show');
if (inputs.hasClass('sticky')) {
inputs.removeClass('sticky');
inputs_offset.removeClass('offset');
$(this).text('Change Inputs');
ga( 'send', 'event', 'Carbon Calculator', 'Mobile Toggle', 'Change Inputs' );
} else {
inputs.addClass('sticky show');
inputs_offset.addClass('offset');
$(this).text('Hide Inputs');
ga( 'send', 'event', 'Carbon Calculator', 'Mobile Toggle', 'Hide Inputs' );
}
});
$(document).on('click', 'a[href^="#calculator"]', function(event) {
event.preventDefault();
$('html, body').animate({
scrollTop: $($.attr(this, 'href')).offset().top - 80
}, 800);
});
});

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long