// JavaScript Document

var G_thick_1 = $F('G_thick-1');

function init(){
	$('content').addClassName('wideContent');
}


function updateProduct(form){
	
	switch(form){
		case 'pump1':
		  calcFlow_1();
		  calcDisplacement_1();
		  break; 
		
		case 'pump2':
		  calcFlow_2();
		  calcDisplacement_2();
		  break; 
		
		case 'vanePump':
		  VP_flow();
		  VP_displacement();
		  break; 
		
		case 'pistonPump':
		  PP_flow();
		  PP_displacement();
		  break; 
		  
		case 'strokeConversion':
		  PConversion();
		  break;
		
		case 'pS1':
		  PS1_displacement();
		  PS_horsepower(form);
		  PS_driveTorque(form);
		  break;
		
		case 'pS2':
		  PS2_flow();
		  PS_horsepower(form);
		  PS_driveTorque(form);
		  break;
		  
		case 'eval_hp':
		  eval_hp();
		  break;
		  
	}
	
}

//Pump 1 Funcs
function calcFlow_1(){
	var speed_1 = $F('speed-1');
	var G_C_diam = $F('G_C_diam'); 
	var G_C_distance_both = $F('G_C_distance_both');
	var flow_1;
	
	flow_1 = ((47* G_thick_1 *((2* G_C_diam )- G_C_distance_both ))*(( G_C_distance_both - G_C_diam )/2))*( speed_1 /1800);
	flow_1 = (isNaN(flow_1)) ? 0 : flow_1;
	flow_1 = roundNumber(flow_1);
	$('flow-1').value = flow_1;
}

function calcDisplacement_1(){
	var G_thick_1 = eval($F('G_thick-1'));
	var G_C_diam = $F('G_C_diam'); 
	var G_C_distance_both = $F('G_C_distance_both');
	
	displacement_1 = (6* G_thick_1 *((2* G_C_diam )- G_C_distance_both ))*(( G_C_distance_both - G_C_diam )/2)
	displacement_1 = (isNaN(displacement_1)) ? 0 : displacement_1;
	displacement_1 = roundNumber(displacement_1, 3);
	$('displacement-1').value = displacement_1;
}

//Pump 2 Funcs
function calcFlow_2(){
	var speed_2 = $F('speed-2');
	var G_out_diam = $F('G_out-diam'); 
	var G_in_diam = $F('G_in-diam');
	var G_thick_2 = $F('G_thick-2');
	var flow_2;
	
	flow_2 = (((((G_out_diam*G_out_diam)*3.1416)/4)-(((G_in_diam*G_in_diam)*3.1416)/4))*G_thick_2*5.8441)*(speed_2/1500);
	flow_2 = (isNaN(flow_2)) ? 0 : flow_2;
	flow_2 = roundNumber(flow_2);
	$('flow-2').value = flow_2;
}

function calcDisplacement_2(){
	var flow_2 = eval($F('flow-2'));
	var speed_2 = $F('speed-2');
	
	displacement_2 = flow_2*231/speed_2;
	displacement_2 = (isNaN(displacement_2)) ? 0 : displacement_2;
	displacement_2 = roundNumber(displacement_2, 3);
	$('displacement-2').value = displacement_2;
}

//Vane Pump & Motors Funcs
function VP_flow(){
	var VP_rotorWidth = eval($F('VP_rotorWidth'));
	var VP_lBore = eval($F('VP_lBore')); 
	var VP_sBore = eval($F('VP_sBore'));
	var VP_speed = eval($F('VP_speed'));
	var VP_flow;
	
	VP_flow = (94*VP_rotorWidth*((VP_lBore+VP_sBore)/4)*((VP_lBore-VP_sBore)/2))*(VP_speed/1800);
	VP_flow = setNum(VP_flow);
	VP_flow = roundNumber(VP_flow);
	$('VP_flow').value = VP_flow;
}

function VP_displacement(){
	var VP_rotorWidth = eval($F('VP_rotorWidth'));
	var VP_lBore = eval($F('VP_lBore'));
	var VP_sBore = eval($F('VP_sBore'));
	var VP_displacement;
	
	VP_displacement = 12*VP_rotorWidth*((VP_lBore+VP_sBore)/4)*((VP_lBore-VP_sBore)/2);
	VP_displacement = setNum(VP_displacement);
	VP_displacement = roundNumber(VP_displacement, 3);
	$('VP_displacement').value = VP_displacement;
}

//Piston Pump & Motors Funcs
function PP_flow(){
	var PP_diameter = $F('PP_diameter');
	var PP_strokeLen = $F('PP_strokeLen');
	var PP_numPistons = $F('PP_numPistons');
	var PP_speed = $F('PP_speed');
	var PP_flow;
	
	PP_flow = (3.1417*((PP_diameter/2)*(PP_diameter/2))*PP_strokeLen*PP_numPistons*PP_speed/231);
	PP_flow = setNum(PP_flow);
	PP_flow = roundNumber(PP_flow);
	$('PP_flow').value = PP_flow;
}

function PP_displacement(){
	var PP_diameter = $F('PP_diameter');
	var PP_strokeLen = $F('PP_strokeLen');
	var PP_numPistons = $F('PP_numPistons');
	var PP_displacement;
	
	PP_displacement = ((3.1417*(PP_diameter/2)*(PP_diameter/2))*PP_strokeLen*PP_numPistons);
	PP_displacement = setNum(PP_displacement);
	PP_displacement = roundNumber(PP_displacement, 3);
	$('PP_displacement').value = PP_displacement;
}

//Piston Stroke Converion Funcs
function PConversion(){
	var PConv_diameter = $F('PConv_diameter');
	var PConv_swashplate = $F('PConv_swashplate');
	var PConv_length;
	
	PConv_length = (Math.tan(PConv_swashplate*Math.PI/180))*PConv_diameter;
	PConv_length = setNum(PConv_length);
	PConv_length = roundNumber(PConv_length, 3);
	$('PConv_length').value = PConv_length;
}

//Pump Sizing
function PS1_displacement(){
	var pS1_flow = $F('pS1_flow');
	var pS1_speed = $F('pS1_speed');
	var pS1_efficiency = $F('pS1_efficiency');
	var pS1_displacement;
	
	pS1_displacement = pS1_flow*231/pS1_speed/(pS1_efficiency/100);
	pS1_displacement = setNum(pS1_displacement);
	pS1_displacement = roundNumber(pS1_displacement);
	$('pS1_displacement').value = pS1_displacement;
	
}

function PS_horsepower(form){
	var flow = $F(form+'_flow');
	var pressure = $F(form+'_pressure');
	var efficiency = $F(form+'_efficiency');
	
	var calc_hp;
	
	calc_hp = flow*pressure/(1714*(efficiency/100));
	calc_hp = setNum(calc_hp);
	calc_hp = roundNumber(calc_hp);
	$(form+'_horsepower').value = calc_hp;
	
}

function PS_driveTorque(form){
	var torque_in = $(form+'_DT_in');
	var torque_ft = $(form+'_DT_ft');
	var speed = $F(form+'_speed');
	var horsepower = $F(form+'_horsepower');
	var calc_in;
	var calc_ft;
	//alert('speed: '+speed+', HP: '+horsepower);
	calc_in = (horsepower*63025)/speed;
	calc_ft = calc_in/12;
	calc_in = roundNumber(calc_in);
	calc_ft = roundNumber(calc_ft);
	
	torque_in.value = calc_in;
	torque_ft.value = calc_ft;
	/*
	*/
	
}

function PS2_flow(){
	var speed = $F('pS2_speed');
	var displacement = $F('pS2_displacement');
	var efficiency = $F('pS2_efficiency');
	
	var calc_flow = (speed*displacement/231)*(efficiency/100);
	calc_flow = setNum(calc_flow);
	calc_flow = roundNumber(calc_flow);
	$('pS2_flow').value = calc_flow;
}

//HP evaluation
function eval_hp(){
	var section = $('hpTable');
	var flow = $F('hp_flow');
	
	elements = $$('#hpTable td');
	
	var arLen=elements.length;
	//for ( var i=0, len=arLen; i<1; ++i ){
	for ( var i=0, len=arLen; i<len; ++i ){
	  cell = elements[i].id;
	  vars = cell.split('-');
	  psi=vars[0];
	  eff=vars[1] * .01;
	 // alert('PSI: '+psi+', EFF: '+eff+', F: '+flow);
	  
	  calc = flow*psi/(1714*eff);
	  calc = setNum(calc);
	  calc = roundNumber(calc, 1);
	  $(cell).innerHTML = calc;
	  
	}
}

//Helpers
function roundNumber(num, dec) {
	dec = typeof(dec) != 'undefined' ? dec : 2;
	var result = Math.round(num*Math.pow(10,dec))/Math.pow(10,dec);
	return result;
}

function setNum(num){
	num = (isNaN(num)) ? 0 : num;
	return num;
}

function testing() {
	alert('Testing');
}