/********** VOLUME CALCULATOR **********/

function squarerectanglevolumecalculator(form){
	var error = 0
	form.lengthtext.value = ""
	if (form.length.value == null || form.length.value == 0){
		form.lengthtext.value = "Length is required";
		error++;}
	form.widthtext.value = ""
	if (form.width.value == null || form.width.value == 0){
		form.widthtext.value = "Width is required";
		error++;}
	form.depthtext.value = ""
	if (form.depth.value == null || form.depth.value == 0){
		form.depthtext.value = "Depth is required";
		error++;}
	form.volume.value = ""
	if (error != 0){
		form.volume.value = "Error";
		return;}
	var length = calculateconversiontometres(form.length.value, form.lengthunit.value)
	var width = calculateconversiontometres(form.width.value, form.widthunit.value)
	var depth = calculateconversiontometres(form.depth.value, form.depthunit.value)
	form.volume.value = formatnumber((Math.round(calculateconversionfromcubicmetres(length * width * depth, form.volumeunit.value) * 100) / 100).toString());}

function trianglevolumecalculator(form){
	var error = 0
	form.side1text.value = ""
	if (form.side1.value == null || form.side1.value == 0){
		var a = calculateconversiontometres(form.side2.value, form.side2unit.value)
		var b = calculateconversiontometres(form.side3.value, form.side3unit.value)
		var hypotenuse = Math.round(calculatehypotenuse(a, b) *100) / 100;
		form.side1.value = calculateconversionfrommetres(hypotenuse, form.side1unit.value);
			if (form.side1.value == null || form.side1.value == 0){
				form.side1text.value = "Side 1 is required";
				error++;}
			else{
				form.side1text.value = "Hypotenuse calculated";}}
	form.side2text.value = ""
	if (form.side2.value == null || form.side2.value == 0){
		var a = calculateconversiontometres(form.side1.value, form.side1unit.value)
		var b = calculateconversiontometres(form.side3.value, form.side3unit.value)
		var hypotenuse = Math.round(calculatehypotenuse(a, b) *100) / 100;
		form.side2.value = calculateconversionfrommetres(hypotenuse, form.side2unit.value);
			if (form.side2.value == null || form.side2.value == 0){
				form.side2text.value = "Side 2 is required";
				error++;}
			else{
				form.side2text.value = "Hypotenuse calculated";}}
	form.side3text.value = ""
	if (form.side3.value == null || form.side3.value == 0){
		var a = calculateconversiontometres(form.side1.value, form.side1unit.value)
		var b = calculateconversiontometres(form.side2.value, form.side2unit.value)
		var hypotenuse = Math.round(calculatehypotenuse(a, b) *100) / 100;
		form.side3.value = calculateconversionfrommetres(hypotenuse, form.side3unit.value);
			if (form.side3.value == null || form.side3.value == 0){
				form.side3text.value = "Side 3 is required";
				error++;}
			else{
				form.side3text.value = "Hypotenuse calculated";}}
	form.depthtext.value = ""
	if (form.depth.value == null || form.depth.value == 0){
		form.depthtext.value = "Depth is required";
		error++;}
	form.volume.value = ""
	if (error != 0){
		form.volume.value = "Error";
		return;}
	var side1 = calculateconversiontometres(form.side1.value, form.side1unit.value)
	var side2 = calculateconversiontometres(form.side2.value, form.side2unit.value)
	var side3 = calculateconversiontometres(form.side3.value, form.side3unit.value)
	var depth = calculateconversiontometres(form.depth.value, form.depthunit.value)
	var trianglea = (parseFloat(side1) + parseFloat(side2) + parseFloat(side3)) / 2
	var triangleb = Math.sqrt(trianglea * (trianglea - side1) * (trianglea - side2) * (trianglea - side3))
	form.volume.value = formatnumber((Math.round(calculateconversionfromcubicmetres(triangleb * depth, form.volumeunit.value) * 100) / 100).toString());}

function circlevolumecalculator(form){
	var error = 0
	form.diametertext.value = ""
	if (form.diameter.value == null || form.diameter.value == 0){
		form.diametertext.value = "Diameter is required";
		error++;}
	form.depthtext.value = ""
	if (form.depth.value == null || form.depth.value == 0){
		form.depthtext.value = "Depth is required";
		error++;}
	form.volume.value = ""
	if (error != 0){
		form.volume.value = "Error";
		return;}
	var diameter = calculateconversiontometres(form.diameter.value, form.diameterunit.value)
	var depth = calculateconversiontometres(form.depth.value, form.depthunit.value)
	var radius = parseFloat(diameter) / 2
	form.volume.value = formatnumber((Math.round(calculateconversionfromcubicmetres(3.1416 * (radius * radius) * depth, form.volumeunit.value) * 100) / 100).toString());}

function calculatehypotenuse(a, b){
	if (a == 0 || b == 0){
		return 0;}
	var hypotenuse = Math.sqrt((a * a) + (b * b));
	return hypotenuse;}

function calculateconversiontometres(conversionvalue, conversionunit){
	if (conversionunit == "centimetres"){
		var conversionvalue = conversionvalue * .01;}
	if (conversionunit == "millimetres"){
		var conversionvalue = conversionvalue * .001;}
	if (conversionunit == "yards"){
		var conversionvalue = conversionvalue * .9144;}
	if (conversionunit == "feet"){
		var conversionvalue = conversionvalue * .3048;}
	if (conversionunit == "inches"){
		var conversionvalue = conversionvalue * .0254;}
	return conversionvalue;}

function calculateconversionfrommetres(conversionvalue, conversionunit){
	if (conversionunit == "centimetres"){
		var conversionvalue = conversionvalue * 100;}
	if (conversionunit == "millimetres"){
		var conversionvalue = conversionvalue * 1000;}
	if (conversionunit == "yards"){
		var conversionvalue = conversionvalue * 1.0936133;}
	if (conversionunit == "feet"){
		var conversionvalue = conversionvalue * 3.2808399 ;}
	if (conversionunit == "inches"){
		var conversionvalue = conversionvalue * 39.3700787;}
	return conversionvalue;}

function calculateconversionfromcubicmetres(conversionvalue, conversionunit){
	if (conversionunit == "litres"){
		var conversionvalue = conversionvalue * 1000;}
	if (conversionunit == "centilitres"){
		var conversionvalue = conversionvalue * 100000;}
	if (conversionunit == "cubiccentimetres/millilitres"){
		var conversionvalue = conversionvalue * 1000000;}
	if (conversionunit == "cubicmillimetres"){
		var conversionvalue = conversionvalue * 1000000000;}
	if (conversionunit == "cubicyards"){
		var conversionvalue = conversionvalue * 1.30795062;}
	if (conversionunit == "cubicfeet"){
		var conversionvalue = conversionvalue * 35.3146667;}
	if (conversionunit == "gallons"){
		var conversionvalue = conversionvalue * 219.969157;}
	if (conversionunit == "quarts"){
		var conversionvalue = conversionvalue * 879.87663;}
	if (conversionunit == "pints"){
		var conversionvalue = conversionvalue * 1759.75326;}
	if (conversionunit == "cubicinches"){
		var conversionvalue = conversionvalue * 61023.7441;}
	return conversionvalue;}

function formatnumber(number){
	var a = new RegExp('(-?[0-9]+)([0-9]{3})')
	while(a.test(number)){
		number = number.replace(a, '$1,$2');}
	return number;}
