
var SMALL_FLEET_BRACKET = 3;
var MEDIUM_FLEET_BRACKET = 25;

var LEVEL_2_EMISSION_FACTOR_METRIC = 16.0;
var LEVEL_2_EMISSION_FACTOR_IMPERIAL = 12.0 ;
var LEVEL_2_EMISSION_FACTOR = LEVEL_2_EMISSION_FACTOR_METRIC;
var LEVEL_3_EMISSION_FACTOR_METRIC = 16.0;
var LEVEL_3_EMISSION_FACTOR_IMPERIAL = 12.0 ;
var LEVEL_3_EMISSION_FACTOR = LEVEL_3_EMISSION_FACTOR_METRIC;
var LEVEL_4_EMISSION_FACTOR_METRIC = 4.0;
var LEVEL_4_EMISSION_FACTOR_IMPERIAL = 3.0;
var LEVEL_4_EMISSION_FACTOR = LEVEL_4_EMISSION_FACTOR_METRIC;
var LEVEL_5_EMISSION_FACTOR_METRIC = 4.0;
var LEVEL_5_EMISSION_FACTOR_IMPERIAL = 3.0;
var LEVEL_5_EMISSION_FACTOR = LEVEL_5_EMISSION_FACTOR_METRIC;
var LEVEL_6_EMISSION_FACTOR_METRIC = 2.7;
var LEVEL_6_EMISSION_FACTOR_IMPERIAL = 2.0;
var LEVEL_6_EMISSION_FACTOR = LEVEL_6_EMISSION_FACTOR_METRIC;
var LEVEL_7_EMISSION_FACTOR_METRIC = 0.0;
var LEVEL_7_EMISSION_FACTOR_IMPERIAL = 0.0;
var LEVEL_7_EMISSION_FACTOR = LEVEL_7_EMISSION_FACTOR_METRIC;
var LEVEL_8_EMISSION_FACTOR_METRIC = 0.8;
var LEVEL_8_EMISSION_FACTOR_IMPERIAL = 0.6;
var LEVEL_8_EMISSION_FACTOR = LEVEL_8_EMISSION_FACTOR_METRIC;
var LEVEL_9_EMISSION_FACTOR_METRIC = 1.0;
var LEVEL_9_EMISSION_FACTOR_IMPERIAL = 0.8;
var LEVEL_9_EMISSION_FACTOR = LEVEL_9_EMISSION_FACTOR_METRIC;
var LEVEL_10_EMISSION_FACTOR_METRIC = 1.1;
var LEVEL_10_EMISSION_FACTOR_IMPERIAL = 0.8;
var LEVEL_10_EMISSION_FACTOR = LEVEL_10_EMISSION_FACTOR_METRIC;
var LEVEL_11_EMISSION_FACTOR_METRIC = 1.3;
var LEVEL_11_EMISSION_FACTOR_IMPERIAL = 1.0;
var LEVEL_11_EMISSION_FACTOR = LEVEL_11_EMISSION_FACTOR_METRIC;
var LEVEL_12_EMISSION_FACTOR_METRIC = 1.5;
var LEVEL_12_EMISSION_FACTOR_IMPERIAL = 1.1;
var LEVEL_12_EMISSION_FACTOR = LEVEL_12_EMISSION_FACTOR_METRIC;
var LEVEL_13_EMISSION_FACTOR_METRIC = 2.0;
var LEVEL_13_EMISSION_FACTOR_IMPERIAL = 1.5;
var LEVEL_13_EMISSION_FACTOR = LEVEL_13_EMISSION_FACTOR_METRIC;

var BLUECAT_200_EMISSION_FACTOR_METRIC = 2.0;
var BLUECAT_200_EMISSION_FACTOR_IMPERIAL = 1.5;
var BLUECAT_200_EMISSION_FACTOR = BLUECAT_200_EMISSION_FACTOR_METRIC;
var BLUECAT_300S_EMISSION_FACTOR_METRIC = 1.3;
var BLUECAT_300S_EMISSION_FACTOR_IMPERIAL = 1.0;
var BLUECAT_300S_EMISSION_FACTOR = BLUECAT_300S_EMISSION_FACTOR_METRIC;
var BLUECAT_300L_EMISSION_FACTOR_METRIC = 2.7;
var BLUECAT_300L_EMISSION_FACTOR_IMPERIAL = 2.0;
var BLUECAT_300L_EMISSION_FACTOR = BLUECAT_300L_EMISSION_FACTOR_METRIC;

// certification levels for 2009
var TIER1_FORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT_METRIC = 16.0;  //fake
var TIER1_FORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT_IMPERIAL = 12.0; //fake
var TIER1_FORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT = TIER1_FORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT_METRIC;
var TIER1_FORKLIFT_MEDIUM_FLEET_EMISSIONS_LIMIT_METRIC = 3.5;
var TIER1_FORKLIFT_MEDIUM_FLEET_EMISSIONS_LIMIT_IMPERIAL = 2.6;
var TIER1_FORKLIFT_MEDIUM_FLEET_EMISSIONS_LIMIT = TIER1_FORKLIFT_MEDIUM_FLEET_EMISSIONS_LIMIT_METRIC;
var TIER1_FORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT_METRIC = 3.2;
var TIER1_FORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT_IMPERIAL = 2.4;
var TIER1_FORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT = TIER1_FORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT_METRIC;

// certification levels for 2011
var TIER2_FORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT_METRIC = 16.0; //fake
var TIER2_FORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT_IMPERIAL = 12.0;
var TIER2_FORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT = TIER2_FORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT_METRIC;
var TIER2_FORKLIFT_MEDIUM_FLEET_EMISSIONS_LIMIT_METRIC = 2.7;
var TIER2_FORKLIFT_MEDIUM_FLEET_EMISSIONS_LIMIT_IMPERIAL = 2.0;
var TIER2_FORKLIFT_MEDIUM_FLEET_EMISSIONS_LIMIT = TIER2_FORKLIFT_MEDIUM_FLEET_EMISSIONS_LIMIT_METRIC;
var TIER2_FORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT_METRIC = 2.3;
var TIER2_FORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT_IMPERIAL = 1.7;
var TIER2_FORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT = TIER2_FORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT_METRIC;

// certification levels for 2013-
var TIER3_FORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT_METRIC = 16.0; //fake
var TIER3_FORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT_IMPERIAL = 12.0;
var TIER3_FORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT = TIER3_FORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT_METRIC;
var TIER3_FORKLIFT_MEDIUM_FLEET_EMISSIONS_LIMIT_METRIC = 1.9;
var TIER3_FORKLIFT_MEDIUM_FLEET_EMISSIONS_LIMIT_IMPERIAL = 1.4;
var TIER3_FORKLIFT_MEDIUM_FLEET_EMISSIONS_LIMIT = TIER3_FORKLIFT_MEDIUM_FLEET_EMISSIONS_LIMIT_METRIC;
var TIER3_FORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT_METRIC = 1.5;
var TIER3_FORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT_IMPERIAL = 1.1;
var TIER3_FORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT = TIER3_FORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT_METRIC;

// non-forklift certification levels for 2009
var TIER1_NFORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT_METRIC = 16.0; //fake
var TIER1_NFORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT_IMPERIAL = 12.0;
var TIER1_NFORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT = TIER1_NFORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT_METRIC;
var TIER1_NFORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT_METRIC = 4.0;
var TIER1_NFORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT_IMPERIAL = 3.0;
var TIER1_NFORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT = TIER1_NFORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT_METRIC;

// non-forklift certification levels for 2011
var TIER2_NFORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT_METRIC = 16.0; //fake
var TIER2_NFORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT_IMPERIAL = 12.0;
var TIER2_NFORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT = TIER2_NFORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT_METRIC;
var TIER2_NFORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT_METRIC = 3.6;
var TIER2_NFORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT_IMPERIAL = 2.7;
var TIER2_NFORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT = TIER2_NFORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT_METRIC;

// non-forklift certification levels for 2013-
var TIER3_NFORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT_METRIC = 16.0; //fake
var TIER3_NFORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT_IMPERIAL = 12.0;
var TIER3_NFORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT = TIER3_NFORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT_METRIC;
var TIER3_NFORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT_METRIC = 3.4;
var TIER3_NFORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT_IMPERIAL = 2.5;
var TIER3_NFORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT = TIER3_NFORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT_METRIC;

var DISPLAY_SCALING_FACTOR_METRIC = 24;
var DISPLAY_SCALING_FACTOR_IMPERIAL = 30;
var DISPLAY_SCALING_FACTOR = DISPLAY_SCALING_FACTOR_METRIC;
var TOTAL_GAUGE_WIDTH_METRIC = 16;
var TOTAL_GAUGE_WIDTH_IMPERIAL = 12;
var TOTAL_GAUGE_WIDTH = TOTAL_GAUGE_WIDTH_METRIC;

var units_set = 'metric';
var units_set_label_metric = 'g/kWh';
var units_set_label_imperial = 'g/BHP-H';
var units_set_label = units_set_label_metric;
var units_set_long_label_metric = ' grams of NO<sub>x</sub> + HC per kWh';
var units_set_long_label_imperial = ' grams of NO<sub>x</sub> + HC per BHP-H';
var units_set_long_label = units_set_long_label_metric;

var request_quotation_by_email_checked = 'true';
var request_emissions_summary_by_pdf_checked = 'true';
var request_contact_by_phone_checked = 'false';


var total_emissions_before_retrofitting, fleet_average_emissions_before_retrofitting;
var nf_total_emissions_before_retrofitting, nf_fleet_average_emissions_before_retrofitting;

var tabberOptions = {

  /* Optional: code to run when the user clicks a tab. If this
     function returns boolean false then the tab will not be changed
     (the click is canceled). If you do not return a value or return
     something that is not boolean false, */

  'onClick': function(argsObj) {
    if (argsObj.index == 2) {
      show_contact();
    }
    return true;
  },

  /* Optional: set an ID for each tab navigation link */
  'addLinkId': true

};

function contact_refresh_boxes(x) {

  var clean = true;

  parse_email(document.getElementById('email'));

  var email_ = document.getElementById('email');
  var email1_ = document.getElementById('email1');

  if (trim(email_.value.toLowerCase()) != trim(email1_.value.toLowerCase())) {
      email_.style.background ='#f00000';
      email1_.style.background ='#f00000';
      clean = false;
  }

  // LIST OF VERIFIED FIELDS
  var contact_input_boxes_array = new Array();
      contact_input_boxes_array[0] = document.getElementById("email");

  // MAKE SURE VERIFIED FIELDS ON CONTACT TAB ARE OK (NO RED BACKGROUNDS)
  for (var key in contact_input_boxes_array) {
        x=contact_input_boxes_array[key];
        if(x.style.background=='#f00000'||x.style.backgroundColor=='rgb(240, 0, 0)') {  //FF & IE hack
            clean = false
        }
  }  
  return clean;
}

function form_valid() {
  fleet_size = parseInt(document.getElementById("fleet_size_class_number").innerHTML);
  if ((fleet_size>0) && (!refresh_boxes(null)))
  {
      alert('Please correct invalid entries before submitting!');
      document.getElementById("tabber1").tabber.tabShow(0);
      return false;
  }
  nf_fleet_size = parseInt(document.getElementById("nf_fleet_size_class_number").innerHTML);
  if ((nf_fleet_size>0) && (!nf_refresh_boxes(null)))
  {
      alert('Please correct invalid entries before submitting!');
      document.getElementById("tabber1").tabber.tabShow(1);
      return false;
  }
  if (!contact_refresh_boxes(null))
  {
      alert('Please correct invalid entries before submitting!');
      return false;
  }
  return true;
}

function parse_email(x) {
        var re = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
        with(x) {
                if(!re.test(value)) {
                        style.background ='#f00000';
                        return false;
                } else {
                        style.background ='';
                        return true;
                }
        }

}

function parse_text_box(x) {
	var re = /^\d*$/;
	with(x) {
		if(!re.test(value)) {
			style.background ='#f00000';
			return false;
		} else {
			style.background ='#ffff00';
			return true;
		}
	}

}

function parse_text_box_float(x) {
	var re =/^((\d+(\.\d*)?)|((\d*\.)?\d+))$/;
	with(x) {
		if(!re.test(value) && value!="") {
			style.background ='#f00000';
			return false;
		} else {
			style.background ='';
			return true;
		}
	}

}
function myonfocus(x) {
	x.select();
	return true;
}

function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}
function emission_gauge(level,limit,gauge_canvas) {
	if (level>=limit) {
		green_width 	= limit;
		green_position 	= 0;
		yellow_width 	= 0;
		yellow_position 	= 0;
		red_width 		= level - limit;
		red_position 	= limit;
	} else {
		green_width 	= level;
		green_position 	= 0;
		yellow_width 	= limit - level;
		yellow_position 	= green_width;
		red_width 		= 0;
		red_position 	= limit;
	}
	green_position 	= DISPLAY_SCALING_FACTOR * green_position;
	green_width 	= DISPLAY_SCALING_FACTOR * green_width;
	yellow_position 	= DISPLAY_SCALING_FACTOR * yellow_position;
	yellow_width 	= DISPLAY_SCALING_FACTOR * yellow_width;
	red_position 	= DISPLAY_SCALING_FACTOR * red_position;
	red_width 		= DISPLAY_SCALING_FACTOR * red_width;

	// paint the hidden canvas first and show it
	gauge_canvas.clear();
	gauge_canvas.setColor("#00ff00");
	gauge_canvas.fillRect(0, 6, DISPLAY_SCALING_FACTOR * limit, 4);
	gauge_canvas.setColor("#ff0000");
	gauge_canvas.fillRect(DISPLAY_SCALING_FACTOR * limit, 6, DISPLAY_SCALING_FACTOR * (TOTAL_GAUGE_WIDTH - limit), 4);
	gauge_canvas.setColor("#000000");

	gauge_canvas.drawLine(0, 10, DISPLAY_SCALING_FACTOR * TOTAL_GAUGE_WIDTH , 10);
	gauge_canvas.setFont("arial","12px",Font.PLAIN);
        var units_label;
        if(units_set=="metric") {
            units_label = "[g/kWh]";
            units_label_no_brackets = "g/kWh";
        } else if (units_set=="imperial") {
            units_label = "[g/BHP-H]";
            units_label_no_brackets = "g/BHP-H";
        } else {
            alert("Fatal error: drop your calculcations!");
            return false;
        }
        gauge_canvas.drawString(units_label,DISPLAY_SCALING_FACTOR * (TOTAL_GAUGE_WIDTH + 1) ,12);
	for (i=0;i*2<=(TOTAL_GAUGE_WIDTH);i++) {
		gauge_canvas.drawLine(DISPLAY_SCALING_FACTOR * i * 2, 10, DISPLAY_SCALING_FACTOR * i * 2, 13);
		gauge_canvas.drawString(i*2,DISPLAY_SCALING_FACTOR * i * 2 ,12);
	}

        // Slider
	var Xpoints = new Array(DISPLAY_SCALING_FACTOR*level,DISPLAY_SCALING_FACTOR*(level+0.13),DISPLAY_SCALING_FACTOR*(level-0.13));
	var Ypoints = new Array(5,0,0);
	gauge_canvas.fillPolygon(Xpoints,Ypoints);
        gauge_canvas.drawLine(DISPLAY_SCALING_FACTOR*level, -10, DISPLAY_SCALING_FACTOR*level, 2);
        gauge_canvas.drawString("Your fleet:",DISPLAY_SCALING_FACTOR*level-28 ,-38);
        gauge_canvas.drawString(level.toFixed(1)+" "+units_label_no_brackets,DISPLAY_SCALING_FACTOR*level-23 ,-24);
	gauge_canvas.paint();
}

function quote_request_click() {
    show_contact();
    document.getElementById("tabber1").tabber.tabShow(2);
}
function request_quotation_by_email_clicked(obj) {
    check = document.getElementById("request_quotation_by_email");
    nf_check = document.getElementById("nf_request_quotation_by_email");
    if(obj == check) {
        nf_check.checked = check.checked;        
    } else if (obj == nf_check) {
        check.checked = nf_check.checked;        
    }
    if(obj.checked == true ) {
        request_quotation_by_email_checked = 'true';
    } else {
        request_quotation_by_email_checked = 'false';
    }
}
function request_emissions_summary_by_pdf_clicked (obj) {
    check = document.getElementById("request_emissions_summary_by_pdf");
    nf_check = document.getElementById("nf_request_emissions_summary_by_pdf");
    if(obj == check) {
        nf_check.checked = check.checked;
    } else if (obj == nf_check) {
        check.checked = nf_check.checked;
    }
    if(obj.checked == true) {
        request_emissions_summary_by_pdf_checked = 'true';
    } else {
        request_emissions_summary_by_pdf_checked = 'false';
    }
}

function request_contact_by_phone_clicked (obj) {
    check = document.getElementById("request_contact_by_phone");
    nf_check = document.getElementById("nf_request_contact_by_phone");
    if(obj == check) {
        nf_check.checked = check.checked;
    } else if (obj == nf_check) {
        check.checked = nf_check.checked;
    }
    if(obj.checked == true) {
        request_contact_by_phone_checked = 'true';
    } else {
        request_contact_by_phone_checked = 'false';
    }
}
function hide_contact() {
    document.getElementById("contact_form_div").style.display = 'none';
    document.getElementById("thank_you_div").style.display = 'block';
}
function show_contact() {
    document.getElementById("contact_form_div").style.display = 'block';
    document.getElementById("thank_you_div").style.display = 'none';
}
function reset_form() {
    show_contact();
    document.getElementById("tabber1").tabber.tabShow(0);

    for (var key in integer_input_boxes_array) {
        x=integer_input_boxes_array[key];
	x.value="0";
    }
    refresh_boxes(null);

    for (key in nf_integer_input_boxes_array) {
        x=nf_integer_input_boxes_array[key];
	x.value="0";
    }
    nf_refresh_boxes(null);

}


function set_metric() {

        document.getElementById("units_button").value="Switch to U.S. units";
        document.getElementById("nf_units_button").value="Switch to U.S units";
        
        units_set = 'metric';
        units_set_label = units_set_label_metric;
        units_set_long_label = units_set_long_label_metric;

        LEVEL_2_EMISSION_FACTOR = LEVEL_2_EMISSION_FACTOR_METRIC;
        LEVEL_3_EMISSION_FACTOR = LEVEL_3_EMISSION_FACTOR_METRIC;
        LEVEL_4_EMISSION_FACTOR = LEVEL_4_EMISSION_FACTOR_METRIC;
        LEVEL_5_EMISSION_FACTOR = LEVEL_5_EMISSION_FACTOR_METRIC;
        LEVEL_6_EMISSION_FACTOR = LEVEL_6_EMISSION_FACTOR_METRIC;
        LEVEL_7_EMISSION_FACTOR = LEVEL_7_EMISSION_FACTOR_METRIC;
        LEVEL_8_EMISSION_FACTOR = LEVEL_8_EMISSION_FACTOR_METRIC;
        LEVEL_9_EMISSION_FACTOR = LEVEL_9_EMISSION_FACTOR_METRIC;
        LEVEL_10_EMISSION_FACTOR = LEVEL_10_EMISSION_FACTOR_METRIC;
        LEVEL_11_EMISSION_FACTOR = LEVEL_11_EMISSION_FACTOR_METRIC;
        LEVEL_12_EMISSION_FACTOR = LEVEL_12_EMISSION_FACTOR_METRIC;
        LEVEL_13_EMISSION_FACTOR = LEVEL_13_EMISSION_FACTOR_METRIC;

        BLUECAT_200_EMISSION_FACTOR = BLUECAT_200_EMISSION_FACTOR_METRIC;
        BLUECAT_300S_EMISSION_FACTOR = BLUECAT_300S_EMISSION_FACTOR_METRIC;
        BLUECAT_300L_EMISSION_FACTOR = BLUECAT_300L_EMISSION_FACTOR_METRIC;

        TIER1_FORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT = TIER1_FORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT_METRIC;
        TIER1_FORKLIFT_MEDIUM_FLEET_EMISSIONS_LIMIT = TIER1_FORKLIFT_MEDIUM_FLEET_EMISSIONS_LIMIT_METRIC;
        TIER1_FORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT = TIER1_FORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT_METRIC;

        TIER2_FORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT = TIER2_FORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT_METRIC;
        TIER2_FORKLIFT_MEDIUM_FLEET_EMISSIONS_LIMIT = TIER2_FORKLIFT_MEDIUM_FLEET_EMISSIONS_LIMIT_METRIC;
        TIER2_FORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT = TIER2_FORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT_METRIC;

        TIER3_FORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT = TIER3_FORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT_METRIC;
        TIER3_FORKLIFT_MEDIUM_FLEET_EMISSIONS_LIMIT = TIER3_FORKLIFT_MEDIUM_FLEET_EMISSIONS_LIMIT_METRIC;
        TIER3_FORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT = TIER3_FORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT_METRIC;

        TIER1_NFORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT = TIER1_NFORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT_METRIC;
        TIER1_NFORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT = TIER1_NFORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT_METRIC;

        TIER2_NFORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT = TIER2_NFORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT_METRIC;
        TIER2_NFORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT = TIER2_NFORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT_METRIC;

        TIER3_NFORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT = TIER3_NFORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT_METRIC;
        TIER3_NFORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT = TIER3_NFORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT_METRIC;

        DISPLAY_SCALING_FACTOR = DISPLAY_SCALING_FACTOR_METRIC;
        TOTAL_GAUGE_WIDTH = TOTAL_GAUGE_WIDTH_METRIC;

}

function set_imperial() {

        document.getElementById("units_button").value="Switch to metric units";
        document.getElementById("nf_units_button").value="Switch to metric units";

        units_set = 'imperial';
        units_set_label = units_set_label_imperial;
        units_set_long_label = units_set_long_label_imperial;

        LEVEL_2_EMISSION_FACTOR = LEVEL_2_EMISSION_FACTOR_IMPERIAL;
        LEVEL_3_EMISSION_FACTOR = LEVEL_3_EMISSION_FACTOR_IMPERIAL;
        LEVEL_4_EMISSION_FACTOR = LEVEL_4_EMISSION_FACTOR_IMPERIAL;
        LEVEL_5_EMISSION_FACTOR = LEVEL_5_EMISSION_FACTOR_IMPERIAL;
        LEVEL_6_EMISSION_FACTOR = LEVEL_6_EMISSION_FACTOR_IMPERIAL;
        LEVEL_7_EMISSION_FACTOR = LEVEL_7_EMISSION_FACTOR_IMPERIAL;
        LEVEL_8_EMISSION_FACTOR = LEVEL_8_EMISSION_FACTOR_IMPERIAL;
        LEVEL_9_EMISSION_FACTOR = LEVEL_9_EMISSION_FACTOR_IMPERIAL;
        LEVEL_10_EMISSION_FACTOR = LEVEL_10_EMISSION_FACTOR_IMPERIAL;
        LEVEL_11_EMISSION_FACTOR = LEVEL_11_EMISSION_FACTOR_IMPERIAL;
        LEVEL_12_EMISSION_FACTOR = LEVEL_12_EMISSION_FACTOR_IMPERIAL;
        LEVEL_13_EMISSION_FACTOR = LEVEL_13_EMISSION_FACTOR_IMPERIAL;

        BLUECAT_200_EMISSION_FACTOR = BLUECAT_200_EMISSION_FACTOR_IMPERIAL;
        BLUECAT_300S_EMISSION_FACTOR = BLUECAT_300S_EMISSION_FACTOR_IMPERIAL;
        BLUECAT_300L_EMISSION_FACTOR = BLUECAT_300L_EMISSION_FACTOR_IMPERIAL;

        TIER1_FORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT = TIER1_FORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT_IMPERIAL;
        TIER1_FORKLIFT_MEDIUM_FLEET_EMISSIONS_LIMIT = TIER1_FORKLIFT_MEDIUM_FLEET_EMISSIONS_LIMIT_IMPERIAL;
        TIER1_FORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT = TIER1_FORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT_IMPERIAL;

        TIER2_FORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT = TIER2_FORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT_IMPERIAL;
        TIER2_FORKLIFT_MEDIUM_FLEET_EMISSIONS_LIMIT = TIER2_FORKLIFT_MEDIUM_FLEET_EMISSIONS_LIMIT_IMPERIAL;
        TIER2_FORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT = TIER2_FORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT_IMPERIAL;

        TIER3_FORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT = TIER3_FORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT_IMPERIAL;
        TIER3_FORKLIFT_MEDIUM_FLEET_EMISSIONS_LIMIT = TIER3_FORKLIFT_MEDIUM_FLEET_EMISSIONS_LIMIT_IMPERIAL;
        TIER3_FORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT = TIER3_FORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT_IMPERIAL;

        TIER1_NFORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT = TIER1_NFORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT_IMPERIAL;
        TIER1_NFORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT = TIER1_NFORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT_IMPERIAL;

        TIER2_NFORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT = TIER2_NFORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT_IMPERIAL;
        TIER2_NFORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT = TIER2_NFORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT_IMPERIAL;

        TIER3_NFORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT = TIER3_NFORKLIFT_SMALL_FLEET_EMISSIONS_LIMIT_IMPERIAL;
        TIER3_NFORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT = TIER3_NFORKLIFT_LARGE_FLEET_EMISSIONS_LIMIT_IMPERIAL;

        DISPLAY_SCALING_FACTOR = DISPLAY_SCALING_FACTOR_IMPERIAL;
        TOTAL_GAUGE_WIDTH = TOTAL_GAUGE_WIDTH_IMPERIAL;

}

function toggle_units() {
    if (units_set == 'metric') {
        set_imperial();
    } else if(units_set == 'imperial') {
        set_metric();
    } else {
        alert('Fatal error: drop your calculations!')
    }

    document.getElementById("type2_unit").innerHTML = "("+LEVEL_2_EMISSION_FACTOR+units_set_label+")";
    document.getElementById("type3_unit").innerHTML = "("+LEVEL_3_EMISSION_FACTOR+units_set_label+")";
    document.getElementById("type4_unit").innerHTML = "("+LEVEL_4_EMISSION_FACTOR+units_set_label+")";
    document.getElementById("type5_unit").innerHTML = "("+LEVEL_5_EMISSION_FACTOR+units_set_label+")";
    document.getElementById("type6_unit").innerHTML = "("+LEVEL_6_EMISSION_FACTOR+units_set_label+")";
    document.getElementById("type7_unit").innerHTML = "("+LEVEL_7_EMISSION_FACTOR+units_set_label+")";
    document.getElementById("type8_unit").innerHTML = "("+LEVEL_8_EMISSION_FACTOR+units_set_label+")";
    document.getElementById("type9_unit").innerHTML = "("+LEVEL_9_EMISSION_FACTOR+units_set_label+")";
    document.getElementById("type10_unit").innerHTML = "("+LEVEL_10_EMISSION_FACTOR+units_set_label+")";
    document.getElementById("type11_unit").innerHTML = "("+LEVEL_11_EMISSION_FACTOR+units_set_label+")";
    document.getElementById("type12_unit").innerHTML = "("+LEVEL_12_EMISSION_FACTOR+units_set_label+")";
    document.getElementById("type13_unit").innerHTML = "("+LEVEL_13_EMISSION_FACTOR+units_set_label+")";
    document.getElementById("other_unit").innerHTML = " "+units_set_label;

    document.getElementById("nf_type2_unit").innerHTML = "("+LEVEL_2_EMISSION_FACTOR+units_set_label+")";
    document.getElementById("nf_type3_unit").innerHTML = "("+LEVEL_3_EMISSION_FACTOR+units_set_label+")";
    document.getElementById("nf_type4_unit").innerHTML = "("+LEVEL_4_EMISSION_FACTOR+units_set_label+")";
    document.getElementById("nf_type5_unit").innerHTML = "("+LEVEL_5_EMISSION_FACTOR+units_set_label+")";
    document.getElementById("nf_type6_unit").innerHTML = "("+LEVEL_6_EMISSION_FACTOR+units_set_label+")";
    document.getElementById("nf_type7_unit").innerHTML = "("+LEVEL_7_EMISSION_FACTOR+units_set_label+")";
    document.getElementById("nf_type8_unit").innerHTML = "("+LEVEL_8_EMISSION_FACTOR+units_set_label+")";
    document.getElementById("nf_type9_unit").innerHTML = "("+LEVEL_9_EMISSION_FACTOR+units_set_label+")";
    document.getElementById("nf_type10_unit").innerHTML = "("+LEVEL_10_EMISSION_FACTOR+units_set_label+")";
    document.getElementById("nf_type11_unit").innerHTML = "("+LEVEL_11_EMISSION_FACTOR+units_set_label+")";
    document.getElementById("nf_type12_unit").innerHTML = "("+LEVEL_12_EMISSION_FACTOR+units_set_label+")";
    document.getElementById("nf_type13_unit").innerHTML = "("+LEVEL_13_EMISSION_FACTOR+units_set_label+")";
    document.getElementById("nf_other_unit").innerHTML = " "+units_set_label;

    document.getElementById("bc2_emission_levels_label").innerHTML = BLUECAT_200_EMISSION_FACTOR+" "+units_set_label;
    document.getElementById("bc3S_emission_levels_label").innerHTML = BLUECAT_300S_EMISSION_FACTOR+" "+units_set_label;
    document.getElementById("bc3L_emission_levels_label").innerHTML = BLUECAT_300L_EMISSION_FACTOR+" "+units_set_label;

    document.getElementById("nf_bc2_emission_levels_label").innerHTML = BLUECAT_200_EMISSION_FACTOR+" "+units_set_label;
    document.getElementById("nf_bc3S_emission_levels_label").innerHTML = BLUECAT_300S_EMISSION_FACTOR+" "+units_set_label;
    document.getElementById("nf_bc3L_emission_levels_label").innerHTML = BLUECAT_300L_EMISSION_FACTOR+" "+units_set_label;

    document.getElementById("units_label1").innerHTML = units_set_long_label;
    document.getElementById("units_label2").innerHTML = units_set_label;

    document.getElementById("nf_units_label1").innerHTML = units_set_long_label;
    document.getElementById("nf_units_label2").innerHTML = units_set_label;

    refresh_boxes(null);
    nf_refresh_boxes(null);

}

function URLEncode(url) //Function to encode URL.
{
if((url=='') || (typeof url == 'undefined'))  {
    return '';
}

// The Javascript escape and unescape functions do not correspond
// with what browsers actually do...
var SAFECHARS = "0123456789" + // Numeric
"ABCDEFGHIJKLMNOPQRSTUVWXYZ" + // Alphabetic
"abcdefghijklmnopqrstuvwxyz" +
"-_.!~*'()"; // RFC2396 Mark characters
var HEX = "0123456789ABCDEF";

var plaintext = url;
var encoded = "";
for (var i = 0; i < plaintext.length; i++ ) {
var ch = plaintext.charAt(i);
if (ch == " ") {
encoded += "+"; // x-www-urlencoded, rather than %20
} else if (SAFECHARS.indexOf(ch) != -1) {
encoded += ch;
} else {
var charCode = ch.charCodeAt(0);
encoded += "%";
encoded += HEX.charAt((charCode >> 4) & 0xF);
encoded += HEX.charAt(charCode & 0xF);
}
}
return encoded;
};




function URLDecode(url) //function decode URL
{
// Replace + with ' '
// Replace %xx with equivalent character
// Put [ERROR] in output if %xx is invalid.
var HEXCHARS = "0123456789ABCDEFabcdef";
var encoded = url;
var plaintext = "";
var i = 0;
while (i < encoded.length) {
var ch = encoded.charAt(i);
if (ch == "+") {
plaintext += " ";
i++;
} else if (ch == "%") {
if (i < (encoded.length-2)
&& HEXCHARS.indexOf(encoded.charAt(i+1)) != -1
&& HEXCHARS.indexOf(encoded.charAt(i+2)) != -1 ) {
plaintext += unescape( encoded.substr(i,3) );
i += 3;
} else {
alert( 'Bad escape combination near ...' + encoded.substr(i) );
plaintext += "%[ERROR]";
i++;
}
} else {
plaintext += ch;
i++;
}
} // while

return plaintext;
};
