var currentLength = "Length"
var currentWidth = "Width"
var currentRectangleDepth = "Depth"
var currentDiameter = "Diameter"
var currentEllipseDepth = "Depth"
var pi = 3.14
var gravelRatio = 65/6
var mulchRatio = 100/4
var otherRatio = 100/6

function setCurrentLength(obj) {
	obj = document.forms['needCalculator'];

	obj.length.value = currentLength;
}

function storeCurrentLength(obj) {
	obj = document.forms['needCalculator'];

	currentLength = obj.length.value;
}

function setCurrentWidth(obj) {
	obj = document.forms['needCalculator'];

	obj.width.value = currentWidth;
}

function storeCurrentWidth(obj) {
	obj = document.forms['needCalculator'];

	currentWidth = obj.width.value;
}

function setCurrentRectangleDepth(obj) {
	obj = document.forms['needCalculator'];

	obj.rectangledepth.value = currentRectangleDepth;
}

function storeCurrentRectangleDepth(obj) {
	obj = document.forms['needCalculator'];

	currentRectangleDepth = obj.rectangledepth.value;
}

function setCurrentDiameter(obj) {
	obj = document.forms['needCalculator'];

	obj.diameter.value = currentDiameter;
}

function storeCurrentDiameter(obj) {
	obj = document.forms['needCalculator'];

	currentDiameter = obj.diameter.value;
}

function setCurrentEllipseDepth(obj) {
	obj = document.forms['needCalculator'];

	obj.ellipsedepth.value = currentEllipseDepth;
}

function storeCurrentEllipseDepth(obj) {
	obj = document.forms['needCalculator'];

	currentEllipseDepth = obj.ellipsedepth.value;
}

function changeLayout(obj) {
    var intSelectedValue = obj.options[obj.selectedIndex].value;

    if(intSelectedValue == 0) {
        hideFields("ellipserow1");
        hideFields("ellipserow2");
        showFields("rectanglerow1");
        showFields("rectanglerow2");
        showFields("rectanglerow3");
    }
    else if(intSelectedValue == 1) {
        hideFields("rectanglerow1");
        hideFields("rectanglerow2");
        hideFields("rectanglerow3");
        showFields("ellipserow1");
        showFields("ellipserow2");
    }
    else {
        resetFields();
    }
    document.getElementById("needlabeltotal").innerHTML = "Total Product Needed";
}

function changeNeed(obj) {
    var intSelectedValue = obj.options[obj.selectedIndex].value;

    if((intSelectedValue == 3)||(intSelectedValue == 4)) {
    	hideFields("needlabelyd");
    	showFields("needlabelton");
    }
    else {
    	hideFields("needlabelton");
    	showFields("needlabelyd");
    }
}

function hideFields(strDivName) {
    if (document.getElementById) {
        document.getElementById(strDivName).style.visibility = 'hidden';
        document.getElementById(strDivName).style.display = 'none';
    }
}

function showFields(strDivName) {
    if (document.getElementById) {
        document.getElementById(strDivName).style.visibility = 'visible';
        document.getElementById(strDivName).style.display = 'table-row';
    }
}

function resetFields() {
    	hideFields("needlabelton");
    	showFields("needlabelyd");
        hideFields("ellipserow1");
        hideFields("ellipserow2");
        showFields("rectanglerow1");
        showFields("rectanglerow2");
        showFields("rectanglerow3");
        document.getElementById("needlabeltotal").innerHTML = "Total Product Needed";
}

function calculateNeed() {
	var objProduct = document.getElementById("product");
    var intProductSelectedValue = objProduct.options[objProduct.selectedIndex].value;
	var objShape = document.getElementById("shape");
    var intShapeSelectedValue = objShape.options[objShape.selectedIndex].value;
    var neededArea = 0;
    var totalNeed = 0;

    if(intShapeSelectedValue == 0) {
        neededArea = getNeededAreaRectangle();
    }
    else if(intShapeSelectedValue == 1) {
        neededArea = getNeededAreaEllipse();
    }

    if(intProductSelectedValue == 0) {
//			        Sand
		totalNeed = neededArea/otherRatio;

        document.getElementById("needlabeltotal").innerHTML = totalNeed.toFixed(2);
    }
    else if(intProductSelectedValue == 1) {
//			        Gravel
		totalNeed = neededArea/gravelRatio;

        document.getElementById("needlabeltotal").innerHTML = totalNeed.toFixed(2);
    }
    else if(intProductSelectedValue == 2) {
//			        Soil
		totalNeed = neededArea/otherRatio;

        document.getElementById("needlabeltotal").innerHTML = totalNeed.toFixed(2);
    }
    else if(intProductSelectedValue == 3) {
//			        Brick Dust
		totalNeed = neededArea/otherRatio;

        document.getElementById("needlabeltotal").innerHTML = totalNeed.toFixed(2);
    }
    else if(intProductSelectedValue == 4) {
//			        In-Field Mix
		totalNeed = neededArea/otherRatio;

        document.getElementById("needlabeltotal").innerHTML = totalNeed.toFixed(2);
    }
    else if(intProductSelectedValue == 5) {
//			        Mulch
		totalNeed = neededArea/mulchRatio;

        document.getElementById("needlabeltotal").innerHTML = totalNeed.toFixed(2);
    }
    else {
        resetFields();
    }

    function getNeededAreaRectangle() {
        var area = currentLength*currentWidth*currentRectangleDepth/12;

        return area;
    }
    
    function getNeededAreaEllipse() {
        var area = pi*currentDiameter*currentDiameter*currentEllipseDepth/48;

        return area;
    }
}

