// JavaScript Document


function calc_trapezoidalWeir( form )
	{
		heightUnits 	= parseFloat( form.heightUnits.value );
		widthUnits 		= parseFloat( form.widthUnits.value );
		flowRateUnits 	= parseFloat( form.flowRateUnits.value );

		height 	=	parseFloat( form.height.value ) / heightUnits;
		width 	=	parseFloat( form.width.value ) / widthUnits;

		flowRate = 3.247 * width * Math.pow( height, 1.48 );
		flowRate = flowRate - ( 0.566 * Math.pow( width, 1.9 ) ) / ( 1 + 2 * Math.pow( width, 1.8 ) ) * Math.pow( height, 1.9 );
		flowRate = flowRate + 0.609 * Math.pow( height, 2.5 );
		flowRate = flowRate * 448.83116883116;
		flowRate = flowRate / flowRateUnits;
		flowRate = Math.round( flowRate * 100 );		
		flowRate = flowRate / 100;

		 form.flowRate.value =  flowRate;
	}
	
	//Flow Measurement Calculators

// Rectangular contracted Weirs

function flowRate_RectContractedWeir( form )
{
	// length, height have in, cm, m, pt units
	// flowRate has cfs, gpm, lps units
	lengthUnits = parseFloat( form.lengthUnits.value );
	heightUnits = parseFloat( form.heightUnits.value );
	flowRateUnits = parseFloat( form.flowRateUnits.value );
	
	length = parseFloat( form.length.value ) / lengthUnits;
	height = parseFloat( form.height.value ) / heightUnits;	

temp =  1 + 2 * Math.pow( length, 1.8 ) ;
temp = 0.566 * Math.pow( length, 1.9 ) / temp;
temp = temp * Math.pow( height, 1.9 );

flowRate = 3.247 * length * Math.pow( height, 1.48 );
flowRate = flowRate - temp;
	
	form.flowRate.value = flowRate * flowRateUnits;

}

// Cipoletti Weirs

function flowRate_CipollettiWeir( form )
{ 
	// length, height have ft, in, cm, m, pt units
	// flowRate has cfs, gpm, lps units
	lengthUnits = parseFloat( form.lengthUnits.value );
	heightUnits = parseFloat( form.heightUnits.value );
	flowRateUnits = parseFloat( form.flowRateUnits.value );
	
	length = parseFloat( form.length.value ) / lengthUnits;
	height = parseFloat( form.height.value ) / heightUnits;
	
	temp = 0.566 * Math.pow( length, 1.9 );
	temp = temp / ( 1 + 2 * Math.pow( length, 1.8 ) );
	temp = temp * Math.pow( height, 1.9 );
	
	flowRate = 3.247 * length * Math.pow( height, 1.48 );
	flowRate = flowRate - temp;
	
	flowRate = flowRate + ( 0.609 * Math.pow( height, 2.5 ) );
	
	form.flowRate.value = flowRate * flowRateUnits;

}

// 90 degree Triangular Notch Weirs

function flowRate_TriangularNotchWeir( form )
{
	// height has ft, in, cm, m pt units
	// flow rate has cfs, gpm, lps units
	heightUnits = parseFloat( form.heightUnits.value );
	flowRateUnits = parseFloat( form.flowRateUnits.value );
	
	height = parseFloat( form.height.value ) * heightUnits;
	flowRate = 2.49 * Math.pow( height, 2.48 );
	
	form.flowRate.value = flowRate * flowRateUnits;

}

// Rectangular Submerged Orifice

function flowRate_RectSubOrifice( form )
{
	
	// area has ft cubed, inches cubed, cm cubed, m cubed units
	// height has ft, in, cm, m pt units
	// flow rate has cfs, gpm, lps units
	areaUnits = parseFloat( form.areaUnits.value );
	heightUnits = parseFloat( form.heightUnits.value );
	flowRateUnits = parseFloat( form.flowRateUnits.value );
	
	area = parseFloat( form.area.value ) * areaUnits;
	height = parseFloat( form.height.value ) / heightUnits;
	
	flowRate = 0.61 * area * Math.sqrt( 2 * 32.2 * height );
	
	form.flowRate.value = flowRate * flowRateUnits;

}

// Parshall Flumes

function flowRate_ParshallFlumes( form )
{
	// width and height has ft, in, cm, m pt units
	// flow rate has cfs, gpm, lps units
	
	flowRateUnits = parseFloat( form.flowRateUnits.value );
	heightChangeUnits = parseFloat( form.heightChangeUnits.value );

	
	throatWidth =  form.throatWidth.value ;
	heightChange = parseFloat( form.heightChange.value ) / heightChangeUnits;

	
	switch( throatWidth )
	{
		case "3": 
			document.getElementById( "flumeName" ).style.display = "none";
			document.getElementById( "flumeInput" ).style.display = "none";		
			flowRate = 0.992 * Math.pow( heightChange, 1.547 ); 
			break;
		case "6": 
			flowRate = 2.06 * Math.pow( heightChange, 1.58 ); 
			document.getElementById( "flumeName" ).style.display = "none";
			document.getElementById( "flumeInput" ).style.display = "none";					
			break;
		case "9": 
			flowRate = 3.07 * Math.pow( heightChange, 1.53 ); 
			document.getElementById( "flumeName" ).style.display = "none";
			document.getElementById( "flumeInput" ).style.display = "none";					
			break;
		case "12": 
			flowRate = 3.95 * Math.pow( heightChange, 1.55 ); 
			document.getElementById( "flumeName" ).style.display = "none";
			document.getElementById( "flumeInput" ).style.display = "none";					
			break;
		case "2-8": 
			document.getElementById( "flumeName" ).style.display = "block";
			document.getElementById( "flumeInput" ).style.display = "block";
	
			widthUnits = parseFloat( form.widthUnits.value );	
			width = parseFloat( form.width.value ) * widthUnits;
				
			flowRate = 4 * width * Math.pow( heightChange, 1.522 ) * Math.pow( width, 0.026 ); 
			break;
		case "10-25": 
			document.getElementById( "flumeName" ).style.display = "block";
			document.getElementById( "flumeInput" ).style.display = "block";
	
			widthUnits = parseFloat( form.widthUnits.value );	
			width = parseFloat( form.width.value ) * widthUnits;
			
			flowRate = ( 3.6875 * width + 2.5 ) * Math.pow( heightChange, 1.6 ); 
			break;
	} 
	
	form.flowRate.value = flowRate * flowRateUnits;

}

// trapezoidal flumes

function flowRate_TrapezoidFlume( form )
{
	// height has ft, in, cm, m  units
	// flow rate has cfs, gpm, lps units
	heightChangeUnits = parseFloat( form.heightChangeUnits.value );
	flowRateUnits = parseFloat( form.flowRateUnits.value );
	
	bottomWidth = parseInt( form.bottomWidth.value );
	heightChange = parseFloat( form.heightChange.value ) / heightChangeUnits;


	switch( bottomWidth )
	{
		case 1:
			flowRate = 1.36 * Math.pow( heightChange, 2.5 ) + 0.37 * heightChange + 0.05;
			break;
		case 2:
			flowRate = 1.32 * Math.pow( heightChange, 2.5 ) + 0.82 * Math.pow( heightChange, 1.5 ) + 0.19;
			break;
		default:
			flowRate = 0;
	}

	form.flowRate.value = flowRate * flowRateUnits;
}
