function BPS_Calculator() { //v1.2 by Daniel Paiva - daniel@bpsinternet.com.br

	//MOTOR INPUTS
	var hp = BPS_FixNumberForm('hp',0,false);											//B14
	var rpm = BPS_FixNumberForm('rpm',0,false);										//B15
	var load_percent = BPS_FixNumberForm('load_percent',1,true);				//B16
	var efficiency = BPS_FixNumberForm('efficiency',1,true);						//B17
	var efficiency_min = BPS_FixNumberForm('efficiency_min',1,true);						
	var hours_year = BPS_FixNumberForm('hours_year',0,true);						//B18
	var cost_electricity = BPS_FixNumberForm('cost_electricity',3,true);		//B19
	var price = BPS_FixNumberForm('price',2,true);									//B22
	
	//XSD INPUTS
	var ultra_hp = hp;																		//E14
	var ultra_rpm = rpm;																		//E15
	var ultra_load_percent = load_percent;												//E16
	var ultra_efficiency = BPS_FixNumberHidden('ultra_efficiency_hidden');			//E17 (DATABASE)
	var ultra_efficiency_min = BPS_FixNumberHidden('ultra_efficiency_min_hidden');			//E17 (DATABASE)
	//alert('ultra_efficiency ' + ultra_efficiency);
	var ultra_hours_year = hours_year;													//E18
	var ultra_cost_electricity = cost_electricity;									//E19
	var ultra_price = BPS_FixNumberForm('ultra_price',2,true);					//E22
	
	//OTHER INPUTS
	var motor_life = BPS_FixNumberForm('motor_life',0,true);						//B32
	var quantity = BPS_FixNumberForm('quantity',0,true);							//B34
	
	//ACHA EFF
	var eff_usada = efficiency;
	var eff_ultra_usada = ultra_efficiency;
	if (document.getElementById('ef2').checked) {
		eff_usada = efficiency_min;
		eff_ultra_usada = ultra_efficiency_min;
	}
	
	//OUTPUT
	var kwh_year = 0;
	if ((hours_year!=0)&&(load_percent!=0)&&(eff_usada!=0)) {
		kwh_year = 0.746*hp*(100/(load_percent))*(1/(eff_usada/100))*hours_year;											//B20
	}
	var cost_operate = kwh_year*cost_electricity;
	
	var ultra_kwh_year = 0;
	if ((ultra_hours_year!=0)&&(ultra_load_percent!=0)&&(eff_ultra_usada!=0)) {																			//B21
		ultra_kwh_year = 0.746*ultra_hp*(100/(ultra_load_percent))*(1/(eff_ultra_usada/100))*ultra_hours_year;	//E20
	}
	var ultra_cost_operate = ultra_kwh_year*ultra_cost_electricity;															//E21

	var price_difference = ultra_price-price;									//B24
	
	var savings_motor = cost_operate-ultra_cost_operate;								//E25
	var savings_motor2 = kwh_year-ultra_kwh_year;								//E25

	var simple_payback = 0;
	if (savings_motor!=0) {
		simple_payback = price_difference / savings_motor;								//E29
	}
	var lifecycle_energy_motor = savings_motor*motor_life;							//E33
	var energy_savings_quantity = savings_motor*quantity;								//E35
	var lifecycle_energy_quantity = energy_savings_quantity*motor_life;			//E37
	var total_reduction_co2 = (kwh_year-ultra_kwh_year)*quantity*1.39;			//E39
	var equivalent_reduction_cars = total_reduction_co2/5.725/2000;				//E40
	var equivalent_acres_forest = total_reduction_co2/2000*0.2727*2000/2200;	//E41
	var equivalent_household = (kwh_year-ultra_kwh_year)*quantity/10881;			//E42
	
	//WRITE OUTPUT
	BPS_WriteNumberHTML('ultra_quantity',quantity,0);
	BPS_WriteNumberHTML('ultra_hp',ultra_hp,1);
	BPS_WriteNumberHTML('ultra_rpm',ultra_rpm,0);
	BPS_WriteNumberHTML('ultra_load_percent',ultra_load_percent,1);
	BPS_WriteNumberHTML('ultra_efficiency',ultra_efficiency,1);
	BPS_WriteNumberHTML('ultra_efficiency_min',ultra_efficiency_min,1);
	BPS_WriteNumberHTML('ultra_hours_year',ultra_hours_year,0);
	BPS_WriteMoneyHTML('ultra_cost_electricity',ultra_cost_electricity,3);
	BPS_WriteNumberHTML('ultra_motor_life',motor_life,0);
		
	BPS_WriteNumberHTML('kwh_year',kwh_year,0);
	BPS_WriteMoneyHTML('cost_operate',cost_operate,2);
	
	BPS_WriteNumberHTML('ultra_kwh_year',ultra_kwh_year,0);
	BPS_WriteMoneyHTML('ultra_cost_operate',ultra_cost_operate,2);
	
	
	//BPS_WriteNumberHTML('price_difference',price_difference,2);
	
	BPS_WriteNumberHTML('savings_motor',savings_motor2,0);
	BPS_WriteMoneyHTML('savings_motor2',savings_motor,2);
	BPS_WriteNumberHTML('simple_payback',simple_payback,2);
	
	BPS_WriteMoneyHTML('lifecycle_energy_motor',lifecycle_energy_motor,0);
	BPS_WriteMoneyHTML('energy_savings_quantity',energy_savings_quantity,0);
	BPS_WriteMoneyHTML('lifecycle_energy_quantity',lifecycle_energy_quantity,0);
	BPS_WriteNumberHTML('total_reduction_co2',total_reduction_co2,0);
	BPS_WriteNumberHTML('equivalent_reduction_cars',equivalent_reduction_cars,1);
	BPS_WriteNumberHTML('equivalent_acres_forest',equivalent_acres_forest,1);
	BPS_WriteNumberHTML('equivalent_household',equivalent_household,1);
	
}
//=======================================================================================================================
function BPS_FixNumberForm(id,decimais,corrige) {
	var campo = document.getElementById(id);
	var dado = campo.value;
	if (String(dado)=='') {
		campo.value = 0;
		return 0;
	}
	else {
		dado = BPS_Text2Number(dado);
		if (isNaN(dado)) {
			campo.value = 0;
			return 0;
		}
		else {
			if (corrige) {campo.value = FormatNumber(dado,decimais,true,false,true);}
			return dado;
		}
	}
}
//=======================================================================================================================
function BPS_FixNumberHidden(id) {
	var dado = document.getElementById(id).value;
	if ((String(dado)=='')||(isNaN(dado))) {
		return 0;
	}
	else {
		return dado;
	}
}
//=======================================================================================================================
function BPS_WriteMoneyHTML(id,valor,decimais) {
	var objeto = document.getElementById(id);
	var dado = valor;
	if ((String(dado)=='')||(isNaN(dado))) {
		dado = '0';
	}
	else {
		dado = FormatNumber(dado,decimais,true,false,true);
	}
	//objeto.innerHTML = String(dado);
	document.getElementById(id).innerHTML = '$ ' + String(dado);
}
//=======================================================================================================================
function BPS_WriteNumberHTML(id,valor,decimais) {
	var objeto = document.getElementById(id);
	var dado = valor;
	if ((String(dado)=='')||(isNaN(dado))) {
		dado = '0';
	}
	else {
		dado = FormatNumber(dado,decimais,true,false,true);
	}
	//objeto.innerHTML = String(dado);
	document.getElementById(id).innerHTML = String(dado);
}
//=======================================================================================================================
function BPS_Post_Processing(botao) {
	var query = '';
	
	//FIELDS
	if (document.getElementById('location'))query = query + document.getElementById('location').value + '|';
	if (document.getElementById('quantity'))query = query + document.getElementById('quantity').value + '|';
	if (document.getElementById('hp'))query = query + document.getElementById('hp').value + '|';
	if (document.getElementById('rpm'))query = query + document.getElementById('rpm').value + '|';
	if (document.getElementById('load_percent'))query = query + document.getElementById('load_percent').value + '|';
	if (document.getElementById('efficiency'))query = query + document.getElementById('efficiency').value + '|';
	if (document.getElementById('efficiency_min'))query = query + document.getElementById('efficiency_min').value + '|';
	if (document.getElementById('ef'))query = query + document.getElementById('ef').value + '|';
	if (document.getElementById('hours_year'))query = query + document.getElementById('hours_year').value + '|';
	if (document.getElementById('cost_electricity'))query = query + document.getElementById('cost_electricity').value + '|';
	if (document.getElementById('motor_life'))query = query + document.getElementById('motor_life').value + '|';
	if (document.getElementById('price'))query = query + document.getElementById('price').value + '|';
	if (document.getElementById('model'))query = query + document.getElementById('model').value + '|';
	if (document.getElementById('ultra_price'))query = query + document.getElementById('ultra_price').value + '|';
	if (document.getElementById('ultra_efficiency_hidden'))query = query + document.getElementById('ultra_efficiency_hidden').value + '|';
	if (document.getElementById('ultra_efficiency_min_hidden'))query = query + document.getElementById('ultra_efficiency_min_hidden').value + '|';

	//DIVS
	if (document.getElementById('kwh_year'))query = query + document.getElementById('kwh_year').innerHTML + '|';
	if (document.getElementById('cost_operate'))query = query + document.getElementById('cost_operate').innerHTML + '|';
	if (document.getElementById('ultra_quantity'))query = query + document.getElementById('ultra_quantity').innerHTML + '|';
	if (document.getElementById('ultra_hp'))query = query + document.getElementById('ultra_hp').innerHTML + '|';
	if (document.getElementById('ultra_rpm'))query = query + document.getElementById('ultra_rpm').innerHTML + '|';
	if (document.getElementById('ultra_load_percent'))query = query + document.getElementById('ultra_load_percent').innerHTML + '|';
	if (document.getElementById('ultra_efficiency'))query = query + document.getElementById('ultra_efficiency').innerHTML + '|';
	if (document.getElementById('ultra_efficiency_min'))query = query + document.getElementById('ultra_efficiency_min').innerHTML + '|';
	if (document.getElementById('ultra_hours_year'))query = query + document.getElementById('ultra_hours_year').innerHTML + '|';
	if (document.getElementById('ultra_cost_electricity'))query = query + document.getElementById('ultra_cost_electricity').innerHTML + '|';
	if (document.getElementById('ultra_motor_life'))query = query + document.getElementById('ultra_motor_life').innerHTML + '|';
	if (document.getElementById('ultra_kwh_year'))query = query + document.getElementById('ultra_kwh_year').innerHTML + '|';
	if (document.getElementById('ultra_cost_operate'))query = query + document.getElementById('ultra_cost_operate').innerHTML + '|';
	if (document.getElementById('savings_motor'))query = query + document.getElementById('savings_motor').innerHTML + '|';
	if (document.getElementById('savings_motor2'))query = query + document.getElementById('savings_motor2').innerHTML + '|';
	if (document.getElementById('simple_payback'))query = query + document.getElementById('simple_payback').innerHTML + '|';
	if (document.getElementById('lifecycle_energy_motor'))query = query + document.getElementById('lifecycle_energy_motor').innerHTML + '|';
	if (document.getElementById('energy_savings_quantity'))query = query + document.getElementById('energy_savings_quantity').innerHTML + '|';
	if (document.getElementById('lifecycle_energy_quantity'))query = query + document.getElementById('lifecycle_energy_quantity').innerHTML + '|';
	if (document.getElementById('total_reduction_co2'))query = query + document.getElementById('total_reduction_co2').innerHTML + '|';
	if (document.getElementById('equivalent_reduction_cars'))query = query + document.getElementById('equivalent_reduction_cars').innerHTML + '|';
	if (document.getElementById('equivalent_acres_forest'))query = query + document.getElementById('equivalent_acres_forest').innerHTML + '|';
	if (document.getElementById('equivalent_household'))query = query + document.getElementById('equivalent_household').innerHTML + '|';
	if (document.getElementById('location')) query = query + document.getElementById('location').value + '|';
	
	query = query + '0';
	document.getElementById('qs').value = query;
	
	var formulario = document.form1;
	if (botao=='PDF')		{	formulario.action = 'pdf.asp'; formulario.target = '_top';		}
	if (botao=='Print')	{	formulario.action = 'print.asp'; formulario.target = '_blank';	}
	if (botao=='Email')	{	formulario.action = 'email.asp'; formulario.target = '_top';		}
	formulario.submit();
	//alert(query);
}
//=======================================================================================================================
function BPS_Text2Number(valor_antes) {
	var tempsrt = valor_antes;
	for (x=0;x<=8;x++) {
		tempsrt = tempsrt.replace(',','');
	}
	var tempnum = Number(tempsrt);
	if ((String(tempsrt)=='')||(isNaN(tempsrt))) {
		tempnum = 0;
	}
	return tempnum;
}
//=======================================================================================================================
function BPS_NumbersOnly(e) {
	var kc = e.which||e.keyCode;
	if (kc==13) { BPS_Calculator(); }
	return (kc>=48 && kc<=57) || !!{8:1,46:1,37:1,39:1}[kc]; 
}
//=======================================================================================================================
function FormatNumber(num,decimalNum,bolLeadingZero,bolParens,bolCommas)
{ 
   if ((isNaN(num))||(String(num)=='')) {
		return "Erro";
	}
	else {
		var tempx = Number(num);
		var tmpNumStr = new String(tempx.toFixed(decimalNum));
	
		// See if we need to put in the commas
		if (bolCommas && (num >= 1000 || num <= -1000)) {
			var iStart = tmpNumStr.indexOf(".");
			if (iStart < 0)
				iStart = tmpNumStr.length;
	
			iStart -= 3;
			while (iStart >= 1) {
				tmpNumStr = tmpNumStr.substring(0,iStart) + "," + tmpNumStr.substring(iStart,tmpNumStr.length)
				iStart -= 3;
			}		
		}
		return tmpNumStr;		// Return our formatted string!	
	}
}


//=======================================================================================================================
function MM_popupMsg(msg) { //v1.0
  alert(msg);
}