function preloadImages(){
	ResetCalculator();
}

function getSelectedRadio(buttonGroup) {
   // returns the array number of the selected radio button or -1 if no button is selected
   if (buttonGroup[0]) { // if the button group is an array (one button is not an array)
      for (var i=0; i<buttonGroup.length; i++) {
         if (buttonGroup[i].checked) {
            return i
         }
      }
   } else {
      if (buttonGroup.checked) { return 0; } // if the one button is checked, return zero
   }
   // if we get to this point, no radio button is selected
   return -1;
} // Ends the "getSelectedRadio" function

function getSelectedRadioValue(buttonGroup) {
   // returns the value of the selected radio button or "" if no button is selected
   var i = getSelectedRadio(buttonGroup);
   if (i == -1) {
      return "";
   } else {
      if (buttonGroup[i]) { // Make sure the button group is an array (not just one button)
         return buttonGroup[i].value;
      } else { // The button group is just the one button, and it is checked
         return buttonGroup.value;
      }
   }
} // Ends the "getSelectedRadioValue" function


// "Environmental by Choice" Eco Calculator for Cascades Fine Papers Web site
// Copyright 2007 Integral Systems
function EcoCalculator() {
	var Lang = document.documentElement.lang;
	var Weight = document.getElementById('Weight').value
	var WeightUnit = '';
	switch (document.getElementById('WeightUnits').value) {
		default:
		case 'lbs':
			WeightUnit = 'lb' + (Weight>1?'s':'');
			break;
		case 'tons':
			WeightUnit = (Lang == 'fr' ? 'tonne' : 'ton') + (Weight>1?'s':'');
			break;
	}
	document.getElementById('Weight_Text').innerHTML = Weight+' '+WeightUnit;
	
	document.getElementById('Units_Text_metric').style.display = 'none';
	document.getElementById('Units_Text_imperial').style.display = 'none';
	document.getElementById('Units_Text_'+document.getElementById('Units').value).style.display = 'inline';
		
	
	var Weight_ori = Weight;
	if (isNaN(Weight) || Weight < 0) {
		if (Lang == 'fr')
			alert("Poids non-valide");
		else
			alert("Invalid weight");
		return;
	}
	if (document.getElementById('WeightUnits').value == 'tons')
		var Weight = Weight * 2000; // Convert to lbs
	if (getSelectedRadioValue(document.forms[0].RecycledContent) == 100) { // show 100% products else 30% products
		var RecycledContent = 100;
		document.getElementById('Product_Text').innerHTML = document.getElementById('Product100').value;
		document.getElementById('Product100').style.display = "inline";
		document.getElementById('Product50').style.display = "none";
		document.getElementById('Product30').style.display = "none";
	} else if (getSelectedRadioValue(document.forms[0].RecycledContent) == 50) {
		var RecycledContent = 50;
		document.getElementById('Product_Text').innerHTML = document.getElementById('Product50').value;
		document.getElementById('Product30').style.display = "none";
		document.getElementById('Product100').style.display = "none";
		document.getElementById('Product50').style.display = "inline";
	} else {
		var RecycledContent = 30;
		document.getElementById('Product_Text').innerHTML = document.getElementById('Product30').value;
		document.getElementById('Product30').style.display = "inline";
		document.getElementById('Product100').style.display = "none";
		document.getElementById('Product50').style.display = "none";
	}
	document.getElementById('RecycledContent_100').style.display = 'none';
	document.getElementById('RecycledContent_50').style.display = 'none';
	document.getElementById('RecycledContent_30').style.display = 'none';
	if (document.getElementById('RecycledContent_'+RecycledContent)) {
		document.getElementById('RecycledContent_'+RecycledContent).style.display = 'inline';
	}

	if (RecycledContent == 100) { 	
	// Perform Calculations
	// 1 lb = 0.45359237 kg
	// 1 gal(UK) = 4.54609 L
	// 1 m3 = 35.314667 ft3
		var ReducedSolidWasteKgs = Weight * 0.474684415;		// 2093lbs : 2000
		var ReducedSolidWasteLbs = ReducedSolidWasteKgs / 0.45359237;		
		var ReducedWaterUsageL = Weight * 37.60980257;		// 16546gal : 2000
		var ReducedWaterUsageG = ReducedWaterUsageL / 4.54609;			
		var ReducedSuspendedParticlesKgs = Weight * 0.00155;			// 3.1 : 2000
		var ReducedSuspendedParticlesLbs = ReducedSuspendedParticlesKgs / 0.45359237;			
		var ReducedAirEmissionsKgs = Weight * 1.233090858;			// 5437 : 2000
		var ReducedAirEmissionsLbs = ReducedAirEmissionsKgs / 0.45359237;	
		var ReducedNaturalGasConsumptionM3 = Weight * 0.035;			// 70 : 2000
		var ReducedNaturalGasConsumptionF3 = ReducedNaturalGasConsumptionM3 * 35.314667;	
		var TreesSaved = Math.round(Weight * 0.012);		// 17 : 2000
		// Display certifications
		if (document.getElementById('Product100').selectedIndex == 0) {
			 
			 //document.getElementById('img_certs').src = "images/certs5_"+Lang+".gif";
			 document.getElementById('logo_pl3').src = "images/logo_fsc_rec2.gif";
			 document.getElementById('logo_pl4').src = "images/logo_ecologo.gif";
			 document.getElementById('logo_pl5').src = "images/logo_sanschlore.gif";
			 document.getElementById('logo_pl3').alt = "Certifié FSC recyclé";
			 document.getElementById('logo_pl4').alt = "Certification ÉcoLogo";
			 document.getElementById('logo_pl5').alt = "Certification Procédé sans chlore";
			 
		} else {
			//document.getElementById('img_certs').src = "images/certs4_"+Lang+".gif";
			 document.getElementById('logo_pl3').src = "images/logo_ecologo.gif";
			 document.getElementById('logo_pl3').alt = "Certification ÉcoLogo";
			 document.getElementById('logo_pl4').src = "images/logo_sanschlore.gif";
			 document.getElementById('logo_pl4').alt = "Certification Procédé sans chlore";
			 document.getElementById('logo_pl5').src = "images/spacer.gif";
			 document.getElementById('logo_pl5').alt = "";
		}
		var ProductName = document.getElementById('Product100').options[document.getElementById('Product100').selectedIndex].value;
	}

	if (RecycledContent == 50) { 		// Perform Calculations
		var ReducedSolidWasteKgs = Weight * 0.237324409; // xx
		var ReducedSolidWasteLbs = ReducedSolidWasteKgs / 0.45359237;		// 1 lb = 0.45359237 kg
		var ReducedWaterUsageL = Weight * 18.80507655; // xx
		var ReducedWaterUsageG = ReducedWaterUsageL / 4.54609;		// 1 gal(UK) = 4.54609 L
		var ReducedSuspendedParticlesKgs = Weight * 0.00155 * 0.5;		// (3.1 : 2000) 30%
		var ReducedSuspendedParticlesLbs = ReducedSuspendedParticlesKgs / 0.45359237;			// 1 lb = 0.45359237 kg
		var ReducedAirEmissionsKgs = Weight * 0.61653769;
		var ReducedAirEmissionsLbs = ReducedAirEmissionsKgs / 0.45359237;	// 1 lb = 0.45359237 kg
		var ReducedNaturalGasConsumptionM3 = Weight * 0.035;		// 70 : 2000
		var ReducedNaturalGasConsumptionF3 = ReducedNaturalGasConsumptionM3 * 35.314667;	// 1 m3 = 35.314667 ft3
		var TreesSaved = Math.round(Weight * 0.006); // xx
		
		document.getElementById('logo_pl3').src = "images/logo_ecologo.gif";
		document.getElementById('logo_pl3').alt = "Certification ÉcoLogo";
		document.getElementById('logo_pl4').src = "images/logo_sanschlore.gif";
		document.getElementById('logo_pl4').alt = "Certification Procédé sans chlore";
		document.getElementById('logo_pl5').src = "images/spacer.gif";
		document.getElementById('logo_pl5').alt = "";
		var ProductName = document.getElementById('Product50').options[document.getElementById('Product50').selectedIndex].value;
	}
	
	if (RecycledContent == 30) { 		// Perform Calculations
		var ReducedSolidWasteKgs = Weight * 0.142394645; // xx
		var ReducedSolidWasteLbs = ReducedSolidWasteKgs / 0.45359237;		
		var ReducedWaterUsageL = Weight * 11.28304593; // xx
		var ReducedWaterUsageG = ReducedWaterUsageL / 4.54609;		
		var ReducedSuspendedParticlesKgs = Weight * 0.00155 * 0.3;		// (3.1 : 2000) 30%
		var ReducedSuspendedParticlesLbs = ReducedSuspendedParticlesKgs / 0.45359237;			
		var ReducedAirEmissionsKgs = Weight * 0.369922614; // xx
		var ReducedAirEmissionsLbs = ReducedAirEmissionsKgs / 0.45359237;	
		var ReducedNaturalGasConsumptionM3 = Weight * 0.035;		// 70 : 2000
		var ReducedNaturalGasConsumptionF3 = ReducedNaturalGasConsumptionM3 * 35.314667;	
		var TreesSaved = Math.round(Weight * 0.0036); // xx
		
		document.getElementById('logo_pl3').src = "images/logo_ecologo.gif";
		document.getElementById('logo_pl3').alt = "Certification ÉcoLogo";
		//document.getElementById('logo_pl4').src = "../images/spacer.gif";
		//document.getElementById('logo_pl4').alt = "";
		document.getElementById('logo_pl5').src = "images/spacer.gif";
		document.getElementById('logo_pl5').alt = "";
		var ProductName = document.getElementById('Product30').options[document.getElementById('Product30').selectedIndex].value;
	}

	var FootballSaved = TreesSaved / 49;		// 1 : 49 arbres
	
	var ShowerSaved = ReducedWaterUsageL / 21600;	// 1 : 21600 L

	var CarSaved = ReducedAirEmissionsKgs / 5000;	// 1 : 5000 KG

	// Show Results
	/*
	document.getElementById('ReducedSolidWasteKgs').innerHTML = FormatNumber(ReducedSolidWasteKgs, Lang);
	document.getElementById('ReducedSolidWasteLbs').innerHTML = FormatNumber(ReducedSolidWasteLbs, Lang);
	document.getElementById('ReducedWaterUsageL').innerHTML = FormatNumber(ReducedWaterUsageL, Lang);
	document.getElementById('ReducedWaterUsageG').innerHTML = FormatNumber(ReducedWaterUsageG, Lang);
	document.getElementById('ReducedSuspendedParticlesKgs').innerHTML = FormatNumber(ReducedSuspendedParticlesKgs, Lang);
	document.getElementById('ReducedSuspendedParticlesLbs').innerHTML = FormatNumber(ReducedSuspendedParticlesLbs, Lang);
	document.getElementById('ReducedAirEmissionsKgs').innerHTML = FormatNumber(ReducedAirEmissionsKgs, Lang);
	document.getElementById('ReducedAirEmissionsLbs').innerHTML = FormatNumber(ReducedAirEmissionsLbs, Lang);
	document.getElementById('ReducedNaturalGasConsumptionM3').innerHTML = FormatNumber(ReducedNaturalGasConsumptionM3, Lang);
	document.getElementById('ReducedNaturalGasConsumptionF3').innerHTML = FormatNumber(ReducedNaturalGasConsumptionF3, Lang);
	*/
	document.getElementById('TreesSaved').innerHTML = FormatNumber(TreesSaved, Lang);
	if (document.getElementById('WeightUnits').value != 'tons'){
		if (Lang == 'fr')
			document.getElementById('UsedWeight_val').innerHTML = 'lb';
		else
			document.getElementById('UsedWeight_val').innerHTML = 'lb.';
		document.getElementById('UsedWeight').innerHTML = FormatNumber(Weight, Lang);
	}else{
		if (Lang == 'fr')
			document.getElementById('UsedWeight_val').innerHTML = 'tonne(s)';
		else
			document.getElementById('UsedWeight_val').innerHTML = 'tons';	
		document.getElementById('UsedWeight').innerHTML = FormatNumber(Weight_ori, Lang);		
	}
	document.getElementById('ProductName').innerHTML = ProductName;

	document.getElementById('CarSaved').innerHTML = FormatNumber(CarSaved, Lang, 1);
	document.getElementById('ShowerSaved').innerHTML = FormatNumber(ShowerSaved, Lang, 1);
	document.getElementById('FootballSaved').innerHTML = FormatNumber(FootballSaved, Lang, 1);
	
	
	if (document.getElementById('Units').checked == true) { // default metric else imperial
		 // show metric column
		 
		document.getElementById('kg_1').innerHTML = ' kg';
		document.getElementById('lb_1').innerHTML = ' L';
		document.getElementById('kg_2').innerHTML = ' kg';
		document.getElementById('kg_3').innerHTML = ' kg';
		document.getElementById('pi_1').innerHTML = ' m<sup>3</sup>';
		
		document.getElementById('kg_1_1').innerHTML = '';
		document.getElementById('lb_1_1').innerHTML = '';
		document.getElementById('kg_2_1').innerHTML = '';
		document.getElementById('kg_3_1').innerHTML = '';
		document.getElementById('pi_1_1').innerHTML = '';
			 
		document.getElementById('ReducedSolidWasteKgs').innerHTML = FormatNumber(ReducedSolidWasteKgs, Lang);
		document.getElementById('ReducedSolidWasteLbs').innerHTML = '';
		document.getElementById('ReducedWaterUsageL').innerHTML = FormatNumber(ReducedWaterUsageL, Lang);
		document.getElementById('ReducedWaterUsageG').innerHTML = '';
		document.getElementById('ReducedSuspendedParticlesKgs').innerHTML = FormatNumber(ReducedSuspendedParticlesKgs, Lang, 1);
		document.getElementById('ReducedSuspendedParticlesLbs').innerHTML = '';
		document.getElementById('ReducedAirEmissionsKgs').innerHTML = FormatNumber(ReducedAirEmissionsKgs, Lang);
		document.getElementById('ReducedAirEmissionsLbs').innerHTML = '';
		document.getElementById('ReducedNaturalGasConsumptionM3').innerHTML = FormatNumber(ReducedNaturalGasConsumptionM3, Lang);
		document.getElementById('ReducedNaturalGasConsumptionF3').innerHTML = '';
	}
	else {
		 // show imperial column

		document.getElementById('kg_1').innerHTML = '';
		document.getElementById('lb_1').innerHTML = '';
		document.getElementById('kg_2').innerHTML = '';
		document.getElementById('kg_3').innerHTML = '';
		document.getElementById('pi_1').innerHTML = '';
		
		document.getElementById('kg_1_1').innerHTML = ' lb';
		document.getElementById('lb_1_1').innerHTML = ' gal';
		document.getElementById('kg_2_1').innerHTML = ' lb';
		document.getElementById('kg_3_1').innerHTML = ' lb';
				
		if (Lang == 'fr'){
			document.getElementById('pi_1_1').innerHTML = ' pi<sup>3</sup>';
		}else{
			document.getElementById('pi_1_1').innerHTML = ' ft<sup>3</sup>';					
		}
		
		document.getElementById('kg_1_1').innerHTML = ' lb';
		document.getElementById('lb_1_1').innerHTML = ' gal';
		document.getElementById('kg_2_1').innerHTML = ' lb';
		document.getElementById('kg_3_1').innerHTML = ' lb';
		
		 
		document.getElementById('ReducedSolidWasteKgs').innerHTML = '';
		document.getElementById('ReducedSolidWasteLbs').innerHTML = FormatNumber(ReducedSolidWasteLbs, Lang);
		document.getElementById('ReducedWaterUsageL').innerHTML = '';
		document.getElementById('ReducedWaterUsageG').innerHTML = FormatNumber(ReducedWaterUsageG, Lang);
		document.getElementById('ReducedSuspendedParticlesKgs').innerHTML = '';
		document.getElementById('ReducedSuspendedParticlesLbs').innerHTML = FormatNumber(ReducedSuspendedParticlesLbs, Lang,1);
		document.getElementById('ReducedAirEmissionsKgs').innerHTML = '';
		document.getElementById('ReducedAirEmissionsLbs').innerHTML = FormatNumber(ReducedAirEmissionsLbs, Lang);
		document.getElementById('ReducedNaturalGasConsumptionM3').innerHTML = '';
		document.getElementById('ReducedNaturalGasConsumptionF3').innerHTML = FormatNumber(ReducedNaturalGasConsumptionF3, Lang);

	}
	
}
function ResetCalculator() {
	var Lang = document.documentElement.lang;
	
	ChangeCSS('.metric','display','inline');
	ChangeCSS('.imperial','display','inline');
	
	document.getElementById('ecoForm')['Units'].value = "metric";
	
	document.getElementById('ecoForm')['Weight'].value = "0";
	
	document.getElementById('ecoForm')['Units'][0].checked = true;
	
	document.getElementById('Product100').style.display = "inline";
	document.getElementById('Product30').style.display = "none";
	document.getElementById('ReducedSolidWasteKgs').innerHTML = 0;
	document.getElementById('ReducedSolidWasteLbs').innerHTML = '';
	document.getElementById('ReducedWaterUsageL').innerHTML = 0;
	document.getElementById('ReducedWaterUsageG').innerHTML = '';
	document.getElementById('ReducedSuspendedParticlesKgs').innerHTML = 0;
	document.getElementById('ReducedSuspendedParticlesLbs').innerHTML = '';
	document.getElementById('ReducedAirEmissionsKgs').innerHTML = 0;
	document.getElementById('ReducedAirEmissionsLbs').innerHTML = '';
	document.getElementById('ReducedNaturalGasConsumptionM3').innerHTML = 0;
	document.getElementById('ReducedNaturalGasConsumptionF3').innerHTML = '';
	document.getElementById('TreesSaved').innerHTML = 0;
	document.getElementById('UsedWeight').innerHTML = 0;
	document.getElementById('ProductName').innerHTML = "Rolland Enviro100 Print";
	//document.getElementById('img_certs').src = "images/certs5_"+Lang+".gif";
	document.getElementById('img_certs_print').src = "../images/logo_mini_print_certs5_"+Lang+".gif";
	document.getElementById('CarSaved').innerHTML = "0";
	document.getElementById('ShowerSaved').innerHTML = "0";
	document.getElementById('FootballSaved').innerHTML = "0";
	
		if (Lang == 'fr')
			document.getElementById('UsedWeight_val').innerHTML = 'lb';
		else
			document.getElementById('UsedWeight_val').innerHTML = 'lb.';


		 document.getElementById('kg_1').innerHTML = ' kg';
		 document.getElementById('lb_1').innerHTML = ' L';
		 document.getElementById('kg_2').innerHTML = ' kg';
		 document.getElementById('kg_3').innerHTML = ' kg';
		 document.getElementById('pi_1').innerHTML = ' m<sup>3</sup>';
		 
		 document.getElementById('kg_1_1').innerHTML = '';
		 document.getElementById('lb_1_1').innerHTML = '';
		 document.getElementById('kg_2_1').innerHTML = '';
		 document.getElementById('kg_3_1').innerHTML = '';
		 document.getElementById('pi_1_1').innerHTML = '';
		 
	ChangeCSS('.imperial','display','none');
}
function FormatNumber(val, lang, places) {
	if (places == undefined) places = 0;
	var num = new NumberFormat();
	num.setInputDecimal('.');
	num.setNumber(val);
	num.setPlaces(places, false);
	num.setCurrencyValue('$');
	num.setCurrency(false);
	num.setCurrencyPosition(num.LEFT_OUTSIDE);
	num.setNegativeFormat(num.LEFT_DASH);
	num.setNegativeRed(false);
	if (lang == 'fr')
		num.setSeparators(true, ' ', ','); // Use spaces as 1000's separators, comma as decimal
	else
 		num.setSeparators(true, ',', '.'); // Use commas as 1000's separators, period as decimal
	return num.toFormatted();
}
function ChangeUnitsDisplay() {
	EcoCalculator();
	var Lang = document.documentElement.lang;
	
	/*
metric imperial
kg_1 kg_1_1 kg lb
lb_1 lb_1_1 L gal
kg_2 kg_2_1 kg lb
kg_3 kg_3_1 kg lb
pi_1 pi_1_1 m<sup>3</sup> pi<sup>3</sup>
	*/
	
	if (document.getElementById('Units').checked == true) { // default metric else imperial
		 ChangeCSS('.metric','display','inline'); // show metric column
		 
		 document.getElementById('Units_Text_metric').style.display = 'inline';
		 document.getElementById('Units_Text_imperial').style.display = 'none';
		 
		 document.getElementById('kg_1').innerHTML = ' kg';
		 document.getElementById('lb_1').innerHTML = ' L';
		 document.getElementById('kg_2').innerHTML = ' kg';
		 document.getElementById('kg_3').innerHTML = ' kg';
		 document.getElementById('pi_1').innerHTML = ' m<sup>3</sup>';
		 
		 document.getElementById('kg_1_1').innerHTML = '';
		 document.getElementById('lb_1_1').innerHTML = '';
		 document.getElementById('kg_2_1').innerHTML = '';
		 document.getElementById('kg_3_1').innerHTML = '';
		 document.getElementById('pi_1_1').innerHTML = '';

		 
		 document.getElementById('ReducedSolidWasteLbs').innerHTML = '';
		 document.getElementById('ReducedWaterUsageG').innerHTML = '';
		 document.getElementById('ReducedSuspendedParticlesLbs').innerHTML = '';
		 document.getElementById('ReducedAirEmissionsLbs').innerHTML = '';
		 document.getElementById('ReducedNaturalGasConsumptionF3').innerHTML = '';		 
		 ChangeCSS('.imperial','display','none'); // hide imperial column
	}
	else {
		 ChangeCSS('.imperial','display','inline'); // show imperial column

		 document.getElementById('Units_Text_metric').style.display = 'none';
		 document.getElementById('Units_Text_imperial').style.display = 'inline';

		 document.getElementById('kg_1_1').innerHTML = ' lb';
		 document.getElementById('lb_1_1').innerHTML = ' gal';
		 document.getElementById('kg_2_1').innerHTML = ' lb';
		 document.getElementById('kg_3_1').innerHTML = ' lb';
		 
		 document.getElementById('kg_1').innerHTML = '';
		 document.getElementById('lb_1').innerHTML = '';
		 document.getElementById('kg_2').innerHTML = '';
		 document.getElementById('kg_3').innerHTML = '';
		 document.getElementById('pi_1').innerHTML = '';
		 
				
		if (Lang == 'fr'){
			document.getElementById('pi_1_1').innerHTML = ' pi<sup>3</sup>';
		}else{
			document.getElementById('pi_1_1').innerHTML = ' ft<sup>3</sup>';					
		}
		
		 
		 document.getElementById('ReducedSolidWasteKgs').innerHTML = '';
		 document.getElementById('ReducedWaterUsageL').innerHTML = '';
		 document.getElementById('ReducedSuspendedParticlesKgs').innerHTML = '';
		 document.getElementById('ReducedAirEmissionsKgs').innerHTML = '';
		 document.getElementById('ReducedNaturalGasConsumptionM3').innerHTML = '';
		 ChangeCSS('.metric','display','none');  // hide metric column
	}
}
function ChangeCSS(theClass,element,value) {
	var cssRules;
	if (document.all) {
		cssRules = 'rules';
	} else if (document.getElementById) {
		cssRules = 'cssRules';
	}
	for (var S = 0; S < document.styleSheets.length; S++) {
    for (var R = 0; R < document.styleSheets[S][cssRules].length; R++) {
      if (document.styleSheets[S][cssRules][R].selectorText == theClass) {
        document.styleSheets[S][cssRules][R].style[element] = value;
			}
		}
	}
}
function NumberFormat(num, inputDecimal)
{
this.SPACE = ' ';
this.COMMA = ',';
this.PERIOD = '.';
this.DASH = '-'; 
this.LEFT_PAREN = '('; 
this.RIGHT_PAREN = ')'; 
this.LEFT_OUTSIDE = 0; 
this.LEFT_INSIDE = 1;  
this.RIGHT_INSIDE = 2;  
this.RIGHT_OUTSIDE = 3;  
this.LEFT_DASH = 0; 
this.RIGHT_DASH = 1; 
this.PARENTHESIS = 2; 
this.NO_ROUNDING = -1 
this.num;
this.numOriginal;
this.hasSeparators = false;  
this.separatorValue;  
this.inputDecimalValue; 
this.decimalValue;  
this.negativeFormat; 
this.negativeRed; 
this.hasCurrency;  
this.currencyPosition;  
this.currencyValue;  
this.places;
this.roundToPlaces; 
this.truncate; 
this.setNumber = setNumberNF;
this.toUnformatted = toUnformattedNF;
this.setInputDecimal = setInputDecimalNF; 
this.setSeparators = setSeparatorsNF; 
this.setCommas = setCommasNF;
this.setNegativeFormat = setNegativeFormatNF; 
this.setNegativeRed = setNegativeRedNF; 
this.setCurrency = setCurrencyNF;
this.setCurrencyPrefix = setCurrencyPrefixNF;
this.setCurrencyValue = setCurrencyValueNF; 
this.setCurrencyPosition = setCurrencyPositionNF; 
this.setPlaces = setPlacesNF;
this.toFormatted = toFormattedNF;
this.toPercentage = toPercentageNF;
this.getOriginal = getOriginalNF;
this.moveDecimalRight = moveDecimalRightNF;
this.moveDecimalLeft = moveDecimalLeftNF;
this.getRounded = getRoundedNF;
this.preserveZeros = preserveZerosNF;
this.justNumber = justNumberNF;
this.expandExponential = expandExponentialNF;
this.getZeros = getZerosNF;
this.moveDecimalAsString = moveDecimalAsStringNF;
this.moveDecimal = moveDecimalNF;
this.addSeparators = addSeparatorsNF;
if (inputDecimal == null) {
this.setNumber(num, this.PERIOD);
} else {
this.setNumber(num, inputDecimal); 
}
this.setCommas(true);
this.setNegativeFormat(this.LEFT_DASH); 
this.setNegativeRed(false); 
this.setCurrency(false); 
this.setCurrencyPrefix('$');
this.setPlaces(2);
}
function setInputDecimalNF(val)
{
this.inputDecimalValue = val;
}
function setNumberNF(num, inputDecimal)
{
if (inputDecimal != null) {
this.setInputDecimal(inputDecimal); 
}
this.numOriginal = num;
this.num = this.justNumber(num);
}
function toUnformattedNF()
{
return (this.num);
}
function getOriginalNF()
{
return (this.numOriginal);
}
function setNegativeFormatNF(format)
{
this.negativeFormat = format;
}
function setNegativeRedNF(isRed)
{
this.negativeRed = isRed;
}
function setSeparatorsNF(isC, separator, decimal)
{
this.hasSeparators = isC;
if (separator == null) separator = this.COMMA;
if (decimal == null) decimal = this.PERIOD;
if (separator == decimal) {
this.decimalValue = (decimal == this.PERIOD) ? this.COMMA : this.PERIOD;
} else {
this.decimalValue = decimal;
}
this.separatorValue = separator;
}
function setCommasNF(isC)
{
this.setSeparators(isC, this.COMMA, this.PERIOD);
}
function setCurrencyNF(isC)
{
this.hasCurrency = isC;
}
function setCurrencyValueNF(val)
{
this.currencyValue = val;
}
function setCurrencyPrefixNF(cp)
{
this.setCurrencyValue(cp);
this.setCurrencyPosition(this.LEFT_OUTSIDE);
}
function setCurrencyPositionNF(cp)
{
this.currencyPosition = cp
}
function setPlacesNF(p, tr)
{
this.roundToPlaces = !(p == this.NO_ROUNDING); 
this.truncate = (tr != null && tr); 
this.places = (p < 0) ? 0 : p; 
}
function addSeparatorsNF(nStr, inD, outD, sep)
{
nStr += '';
var dpos = nStr.indexOf(inD);
var nStrEnd = '';
if (dpos != -1) {
nStrEnd = outD + nStr.substring(dpos + 1, nStr.length);
nStr = nStr.substring(0, dpos);
}
var rgx = /(\d+)(\d{3})/;
while (rgx.test(nStr)) {
nStr = nStr.replace(rgx, '$1' + sep + '$2');
}
return nStr + nStrEnd;
}
function toFormattedNF()
{	
var pos;
var nNum = this.num; 
var nStr;            
var splitString = new Array(2);   
if (this.roundToPlaces) {
nNum = this.getRounded(nNum);
nStr = this.preserveZeros(Math.abs(nNum)); 
} else {
nStr = this.expandExponential(Math.abs(nNum)); 
}
if (this.hasSeparators) {
nStr = this.addSeparators(nStr, this.PERIOD, this.decimalValue, this.separatorValue);
} else {
nStr = nStr.replace(new RegExp('\\' + this.PERIOD), this.decimalValue); 
}
var c0 = '';
var n0 = '';
var c1 = '';
var n1 = '';
var n2 = '';
var c2 = '';
var n3 = '';
var c3 = '';
var negSignL = (this.negativeFormat == this.PARENTHESIS) ? this.LEFT_PAREN : this.DASH;
var negSignR = (this.negativeFormat == this.PARENTHESIS) ? this.RIGHT_PAREN : this.DASH;
if (this.currencyPosition == this.LEFT_OUTSIDE) {
if (nNum < 0) {
if (this.negativeFormat == this.LEFT_DASH || this.negativeFormat == this.PARENTHESIS) n1 = negSignL;
if (this.negativeFormat == this.RIGHT_DASH || this.negativeFormat == this.PARENTHESIS) n2 = negSignR;
}
if (this.hasCurrency) c0 = this.currencyValue;
} else if (this.currencyPosition == this.LEFT_INSIDE) {
if (nNum < 0) {
if (this.negativeFormat == this.LEFT_DASH || this.negativeFormat == this.PARENTHESIS) n0 = negSignL;
if (this.negativeFormat == this.RIGHT_DASH || this.negativeFormat == this.PARENTHESIS) n3 = negSignR;
}
if (this.hasCurrency) c1 = this.currencyValue;
}
else if (this.currencyPosition == this.RIGHT_INSIDE) {
if (nNum < 0) {
if (this.negativeFormat == this.LEFT_DASH || this.negativeFormat == this.PARENTHESIS) n0 = negSignL;
if (this.negativeFormat == this.RIGHT_DASH || this.negativeFormat == this.PARENTHESIS) n3 = negSignR;
}
if (this.hasCurrency) c2 = this.currencyValue;
}
else if (this.currencyPosition == this.RIGHT_OUTSIDE) {
if (nNum < 0) {
if (this.negativeFormat == this.LEFT_DASH || this.negativeFormat == this.PARENTHESIS) n1 = negSignL;
if (this.negativeFormat == this.RIGHT_DASH || this.negativeFormat == this.PARENTHESIS) n2 = negSignR;
}
if (this.hasCurrency) c3 = this.currencyValue;
}
nStr = c0 + n0 + c1 + n1 + nStr + n2 + c2 + n3 + c3;
if (this.negativeRed && nNum < 0) {
nStr = '<font color="red">' + nStr + '</font>';
}
return (nStr);
}
function toPercentageNF()
{
nNum = this.num * 100;
nNum = this.getRounded(nNum);
return nNum + '%';
}
function getZerosNF(places)
{
var extraZ = '';
var i;
for (i=0; i<places; i++) {
extraZ += '0';
}
return extraZ;
}
function expandExponentialNF(origVal)
{
if (isNaN(origVal)) return origVal;
var newVal = parseFloat(origVal) + ''; 
var eLoc = newVal.toLowerCase().indexOf('e');
if (eLoc != -1) {
var plusLoc = newVal.toLowerCase().indexOf('+');
var negLoc = newVal.toLowerCase().indexOf('-', eLoc); 
var justNumber = newVal.substring(0, eLoc);
if (negLoc != -1) {
var places = newVal.substring(negLoc + 1, newVal.length);
justNumber = this.moveDecimalAsString(justNumber, true, parseInt(places));
} else {
if (plusLoc == -1) plusLoc = eLoc;
var places = newVal.substring(plusLoc + 1, newVal.length);
justNumber = this.moveDecimalAsString(justNumber, false, parseInt(places));
}
newVal = justNumber;
}
return newVal;
} 
function moveDecimalRightNF(val, places)
{
var newVal = '';
if (places == null) {
newVal = this.moveDecimal(val, false);
} else {
newVal = this.moveDecimal(val, false, places);
}
return newVal;
}
function moveDecimalLeftNF(val, places)
{
var newVal = '';
if (places == null) {
newVal = this.moveDecimal(val, true);
} else {
newVal = this.moveDecimal(val, true, places);
}
return newVal;
}
function moveDecimalAsStringNF(val, left, places)
{
var spaces = (arguments.length < 3) ? this.places : places;
if (spaces <= 0) return val; 
var newVal = val + '';
var extraZ = this.getZeros(spaces);
var re1 = new RegExp('([0-9.]+)');
if (left) {
newVal = newVal.replace(re1, extraZ + '$1');
var re2 = new RegExp('(-?)([0-9]*)([0-9]{' + spaces + '})(\\.?)');		
newVal = newVal.replace(re2, '$1$2.$3');
} else {
var reArray = re1.exec(newVal); 
if (reArray != null) {
newVal = newVal.substring(0,reArray.index) + reArray[1] + extraZ + newVal.substring(reArray.index + reArray[0].length); 
}
var re2 = new RegExp('(-?)([0-9]*)(\\.?)([0-9]{' + spaces + '})');
newVal = newVal.replace(re2, '$1$2$4.');
}
newVal = newVal.replace(/\.$/, ''); 
return newVal;
}
function moveDecimalNF(val, left, places)
{
var newVal = '';
if (places == null) {
newVal = this.moveDecimalAsString(val, left);
} else {
newVal = this.moveDecimalAsString(val, left, places);
}
return parseFloat(newVal);
}
function getRoundedNF(val)
{
val = this.moveDecimalRight(val);
if (this.truncate) {
val = val >= 0 ? Math.floor(val) : Math.ceil(val); 
} else {
val = Math.round(val);
}
val = this.moveDecimalLeft(val);
return val;
}
function preserveZerosNF(val)
{
var i;
val = this.expandExponential(val);
if (this.places <= 0) return val; 
var decimalPos = val.indexOf('.');
if (decimalPos == -1) {
val += '.';
for (i=0; i<this.places; i++) {
val += '0';
}
} else {
var actualDecimals = (val.length - 1) - decimalPos;
var difference = this.places - actualDecimals;
for (i=0; i<difference; i++) {
val += '0';
}
}
return val;
}
function justNumberNF(val)
{
newVal = val + '';
var isPercentage = false;
if (newVal.indexOf('%') != -1) {
newVal = newVal.replace(/\%/g, '');
isPercentage = true; 
}
var re = new RegExp('[^\\' + this.inputDecimalValue + '\\d\\-\\+\\(\\)eE]', 'g');	
newVal = newVal.replace(re, '');
var tempRe = new RegExp('[' + this.inputDecimalValue + ']', 'g');
var treArray = tempRe.exec(newVal); 
if (treArray != null) {
var tempRight = newVal.substring(treArray.index + treArray[0].length); 
newVal = newVal.substring(0,treArray.index) + this.PERIOD + tempRight.replace(tempRe, ''); 
}
if (newVal.charAt(newVal.length - 1) == this.DASH ) {
newVal = newVal.substring(0, newVal.length - 1);
newVal = '-' + newVal;
}
else if (newVal.charAt(0) == this.LEFT_PAREN
&& newVal.charAt(newVal.length - 1) == this.RIGHT_PAREN) {
newVal = newVal.substring(1, newVal.length - 1);
newVal = '-' + newVal;
}
newVal = parseFloat(newVal);
if (!isFinite(newVal)) {
newVal = 0;
}
if (isPercentage) {
newVal = this.moveDecimalLeft(newVal, 2);
}
return newVal;
}

function weightPopup(windowName) {
	popupWin = window.open('weightcalc.php', 'weightcalc', 'width=550,height=230')
}

function weightRecalc(Lang) {
	nbFeuille = parseFloat(document.getElementById('sheets').value);
	pdFeuille = parseFloat(document.getElementById('weight').value);
	pdLb = nbFeuille*pdFeuille/1000;
	pdTon = pdLb / 2000;
	
	document.getElementById('weight-lb').innerHTML = FormatNumber(pdLb, Lang, 2);
	document.getElementById('weight-ton').innerHTML = FormatNumber(pdTon, Lang, 2);
}

