var var3 = 0.03937, var4 = 0.03937, var5 = 0.4536, var6 = 2.2046, var7 = 2204.6,
    var8 = 1.1023, var9 = 1.3558, var10 = 1.3558, var11 = 145.0377, var12 = 0.1450377,
    var13 = 145.0377, var14 = 0.1450377;

function reSpace(entry)
{
	out = " "; // replace this
	add = "+"; // with this
	temp = "" + entry; // temporary holder
	
	while (temp.indexOf(out)>-1) {
	pos= temp.indexOf(out);
	temp = "" + (temp.substring(0, pos) + add + 
	temp.substring((pos + out.length), temp.length));
	}
	return temp;
}
function getNumber(val)
{
	val = reSpace(val);
	tempval = eval(val);
	return parseFloat(tempval);
}
function calcPlate()
{
	var answer;
	answer = getNumber(document.forms[0].length.value) * getNumber(document.forms[0].width.value) * getNumber(document.forms[0].thickness.value) * var1;
	thisform.weight.readonly =false;
	thisform.weight.value = answer;
	thisform.weight.readonly = true;
}
function calcCircle(thisform)
{
	var answer;
	answer = (getNumber(thisform.OD.value) * getNumber(thisform.OD.value) * getNumber(thisform.thickness.value) * var2 - (getNumber(thisform.ID.value) * getNumber(thisform.ID.value) * getNumber(thisform.thickness.value) * var2));
	thisform.weight.readonly =false;
	thisform.weight.value = answer;
	thisform.weight.readonly = true;
}
function calcACircle(thisform)
{
	var answer;
	answer = (getNumber(thisform.OD.value) * getNumber(thisform.OD.value) * getNumber(thisform.thickness.value) * var2 - (getNumber(thisform.ID.value) * getNumber(thisform.ID.value) * getNumber(thisform.thickness.value) * var2));
	thisform.weight.readonly =false;
	thisform.weight.value = answer;
	thisform.weight.readonly = true;
}
function calcAPlate(thisform)
{
	var answer;
	answer = getNumber(thisform.length.value) * getNumber(thisform.width.value) * getNumber(thisform.thickness.value) * getNumber(thisform.var1.value);
	thisform.weight.readonly =false;
	thisform.weight.value = answer;
	thisform.weight.readonly = true;
}
function convInch(thisform)
{
	var answer;
	answer = getNumber(thisform.length.value) / var3;
	thisform.weight.readonly =false;
	thisform.weight.value = answer;
	thisform.weight.readonly = true;
}
function convMilli(thisform)
{
	var answer;
	answer = getNumber(thisform.length.value) * var4;
	thisform.weight.readonly =false;
	thisform.weight.value = answer;
	thisform.weight.readonly = true;
}
function poundstokilos(thisform)
{
	var answer;
	answer = getNumber(thisform.length.value) * var5;
	thisform.weight.readonly =false;
	thisform.weight.value = answer;
	thisform.weight.readonly = true;
}
function kilostopounds(thisform)
{
	var answer;
	answer = getNumber(thisform.length.value) * var6;
	thisform.weight.readonly =false;
	thisform.weight.value = answer;
	thisform.weight.readonly = true;
}
function MT_Pounds(thisform)
{
	var answer;
	answer = getNumber(thisform.length.value) * var7;
	thisform.weight.readonly =false;
	thisform.weight.value = answer;
	thisform.weight.readonly = true;
}
function MT_Tons(thisform)
{
	var answer;
	answer = getNumber(thisform.length.value) / var8;
	thisform.weight.readonly =false;
	thisform.weight.value = answer;
	thisform.weight.readonly = true;
}
function convFC(thisform)
{
	var answer;
	answer = (5/9)*(getNumber(thisform.length.value) - 32);
	thisform.weight.readonly =false;
	thisform.weight.value = answer;
	thisform.weight.readonly = true;
}
function convCF(thisform)
{
	var answer;
	answer = ((9/5)*getNumber(thisform.length.value)) + 32;
	thisform.weight.readonly =false;
	thisform.weight.value = answer;
	thisform.weight.readonly = true;
}
function ftJoules(thisform)
{
	var answer;
	answer = getNumber(thisform.length.value) * var9;
	thisform.weight.readonly =false;
	thisform.weight.value = answer;
	thisform.weight.readonly = true;
}
function JoulesFt(thisform)
{
	var answer;
	answer = getNumber(thisform.length.value) / var10;
	thisform.weight.readonly =false;
	thisform.weight.value = answer;
	thisform.weight.readonly = true;
}

function DoLength(value, unitType)
{
    if(unitType=="cm")
        value = value/2.54;
    if(unitType=="m")
        value = (value*100)/2.54;
    if(unitType== "mm")
        value = (value/10)/2.54;
    if(unitType=="ft")
        value = value*12;
    if(unitType=="yd")
        value = value*36;
    return value;
}

function isFilledIn(dimension1, dimension2, dimension3, noPieces)
{
    var metalTypeSelect = document.getElementById("metalType");
    var metalType = metalTypeSelect.options[metalTypeSelect.selectedIndex].text;

    if(metalType == "Round Bar")
    {
        if(dimension1 == "" || dimension3 == ""){
            alert("Enter the Diameter and Length for the bar.");
            return false;
        }
    }

    if (metalType == "Hexagon Bar")
    {
        if (dimension1 == "" || dimension3 == "") {
            alert("Enter the Width Across Flats and Length for the bar.");
            return false;
        }
    }

    if(metalType == "Flat" || metalType == "Sheet" || metalType == "Plate"){
        if(dimension1 == "" || dimension2 == "" || dimension3 == ""){
            alert("Enter the Width, Thickness, and Length for the " + metalType + ".");
            return false;
        }
    }

    if(metalType == "Round Tubing"){
        if(dimension1 == "" || dimension2 == "" || dimension3 == ""){
            alert("Enter the Outer Diameter, Wall Thickness, and Length for the tube.");
            return false;
        }
    }

    if(metalType == "Square Tubing"){
        if(dimension1 == "" || dimension2 == "" || dimension3 == ""){
            alert("Enter the Width Across Flats, Wall Thickness, and Length for the tube.");
            return false;
        }
    }

    if(metalType == "Circle"){
        if(dimension1 == "" || dimension3 == ""){
            alert("Enter the Diameter and Thickness for the circle.");
            return false;
        }
    }

    if(metalType == "Ring"){
        if(dimension1 == "" || dimension2 == "" || dimension3 == ""){
            alert("Enter the Outer Diameter, Inner Diameter, and Thickness for the ring.");
            return false;
        }
    }
    
    if(metalType == "Rectangular Tubing"){
        if(dimension1 == "" || dimension2 == ""||value4 == "" || dimension3 == ""){
            alert("Enter the Widths, Thickness, and Length for the tube.");
            return false;
        }
    }

    if(noPieces == ""){
        alert("Enter the Number of Pieces for which to calculate the weight.");
        return false;
    }

    return true;
}

function MetalWeight()
{
    var value1, value2, value3, noPieces;
    var units1, units2, units3;

    var Convert;
    var metalType;
    var metal;
    var Result;
    var Good;
    var density;
    var Result2;

    value1 = document.getElementById("dimension1").value;
    value2 = document.getElementById("dimension2").value;
    value3 = document.getElementById("dimension3").value;
    noPieces = document.getElementById("qtyPieces").value;

    Good = isFilledIn(value1,value2,value3,noPieces);

    if(!Good)
        return;

    units1 = document.getElementById("units1").options[document.getElementById("units1").selectedIndex].text;
    units2 = document.getElementById("units2").options[document.getElementById("units2").selectedIndex].text;
    units3 = document.getElementById("units3").options[document.getElementById("units3").selectedIndex].text;

    value1 = DoLength(value1,units1);
    value2 = DoLength(value2,units2);
    value3 = DoLength(value3,units3);

    metalType = document.getElementById("metalType").options[document.getElementById("metalType").selectedIndex].text;
    metal = document.getElementById("metal").options[document.getElementById("metal").selectedIndex].text;


    if(metal=="T-430 Stainless"||metal=="Carbon Steel")density = .2836;
    else if(metal=="Copper")density = .323;
    else if(metal=="Brass")density = .308;
    else if(metal=="T-304 Stainless")density = .290;
    else if(metal=="Stainless 300 Series")density =0.286;
    else if(metal=="Stainless 400 Series")density =0.283;
    else if(metal=="Aluminum")density = .100;
    else if(metal=="Aluminum 1100")density =0.098;
    else if(metal=="Aluminum 2011")density =0.102;
    else if(metal=="Aluminum 2014")density =0.101;
    else if(metal=="Aluminum 2017")density =0.101;
    else if(metal=="Aluminum 2024")density =0.101;
    else if(metal=="Aluminum 3003")density =0.099;
    else if(metal=="Aluminum 5005")density =0.098;
    else if(metal=="Aluminum 5052")density =0.097;
    else if(metal=="Aluminum 5056")density =0.095;
    else if(metal=="Aluminum 5083")density =0.096;
    else if(metal=="Aluminum 5086")density =0.096;
    else if(metal=="Aluminum 6061")density =0.096;
    else if(metal=="Aluminum 6063")density =0.097;
    else if(metal=="Aluminum 7075")density =0.101;
    else if(metal=="Aluminum 7178")density =0.102;
    else if(metal=="Beryllium")density =0.067;
    else if(metal=="Cast Iron")density =0.256;
    else if(metal=="Columbium")density =0.31;
    else if(metal=="Copper")density =0.324;
    else if(metal=="Gold")density =0.698;
    else if(metal=="Lead")density =0.41;
    else if(metal=="Magnesium")density =0.065;
    else if(metal=="Molybdenum")density =0.369;
    else if(metal=="Nickel 200")density =0.321;
    else if(metal=="Nickel 201")density =0.321;
    else if(metal=="Nickel 400")density =0.319;
    else if(metal=="Nickel 600")density =0.304;
    else if(metal=="Nickel 625")density =0.305;
    else if(metal=="Nickel 718")density =0.297;
    else if(metal=="Nickel X750")density =0.298;
    else if(metal=="Nickel 800")density =0.287;
    else if(metal=="Nickel 800H")density =0.287;
    else if(metal=="Nickel 825")density =0.294;
    else if(metal=="Nickel 904L")density =0.291;
    else if(metal=="Silver")density =0.379;
    else if(metal=="Tantalum")density =0.6;
    else if(metal=="Titanium")density =0.163;
    else if(metal=="Tungsten")density =0.697;
    else if(metal=="Zinc")density =0.258;
    else if(metal=="Zirconium")density =0.23;

    //document.getElementById("weightLbs").value = density;
    var weightLbsOutput = document.getElementById("weightLbs");
    var weightKilosOutput = document.getElementById("weightKilos");

    if (metalType == "Sheet" || metalType == "Plate" || metalType == "Square or Flat Bar") {
        Result = new String(value1 * value2 * value3 * noPieces * density);
        weightLbsOutput.value = Result.substring(0, Result.indexOf(".") + 5);
        weightKilosOutput.value = Result.substring(0, Result.indexOf(".") + 5) / 2.2046;
    }

    if (metalType == "Circle") {
        Result = new String(.785 * value1 * value1 * value3 * noPieces * density);
        weightLbsOutput.value = Result.substring(0, Result.indexOf(".") + 5);
        weightKilosOutput.value = Result.substring(0, Result.indexOf(".") + 5) / 2.2046;
    }

    if (metalType == "Ring") {
        Result = new String(.785 * (eval(value1) + eval(value2)) * (value1 - value2) * value3 * noPieces * density);
        weightLbsOutput.value = Result.substring(0, Result.indexOf(".") + 5);
        weightKilosOutput.value = Result.substring(0, Result.indexOf(".") + 5) / 2.2046;
    }

    if (metalType == "Round Bar") {
        Result = new String(value1 * value1 * 9.42 * (value3/12) * noPieces * density);
        weightLbsOutput.value = Result.substring(0, Result.indexOf(".") + 5);
        weightKilosOutput.value = Result.substring(0, Result.indexOf(".") + 5) / 2.2046;
    }

    if (metalType == "Hexagon Bar") {
        Result = new String(value1 * value1 * 10.4 * (value3/12) * noPieces * density);
        weightLbsOutput.value = Result.substring(0, Result.indexOf(".") + 5);
        weightKilosOutput.value = Result.substring(0, Result.indexOf(".") + 5) / 2.2046;
    }

    if (metalType == "Round Tubing") {
        Result = new String(37.7 * (value1 - value2) * value2 * (value3/12) * noPieces * density);
        weightLbsOutput.value = Result.substring(0, Result.indexOf(".") + 5);
        weightKilosOutput.value = Result.substring(0, Result.indexOf(".") + 5) / 2.2046;
    }

    if (metalType == "Square Tubing") {
        Result = new String(48.0 * (value1 - value2) * value2 * (value3/12) * noPieces * density);
        weightLbsOutput.value = Result.substring(0, Result.indexOf(".") + 5);
        weightKilosOutput.value = Result.substring(0, Result.indexOf(".") + 5) / 2.2046;
    }

}

function ClearFields()
{
    document.getElementById("dimension1").value = "";
    document.getElementById("dimension2").value = "";
    document.getElementById("dimension3").value = "";
    document.getElementById("qtyPieces").value = "1";
    document.getElementById("weightLbs").value = "";
    document.getElementById("weightKilos").value = "";
}

function ResetFields()
{
    document.getElementById("metalType").value = "";
    //document.forms[0].dimensionsLabel1.style.display = "";
    document.getElementById("dimensionsRow1").style.display = "";
    document.getElementById("dimensionsLabel1").value = "";
    //document.forms[0].dimensions1.style.display = "";
    //document.forms[0].units1.style.display = "";
    //document.forms[0].dimensionsLabel2.style.display = "";
    document.getElementById("dimensionsRow2").style.display = "";
    document.getElementById("dimensionsLabel2").value = "";
    //document.forms[0].dimensions2.style.display = "";
    //document.forms[0].units2.style.display = "";
    //document.forms[0].dimensionsLabel3.style.display = "";
    document.getElementById("dimensionsRow3").style.display = "";
    document.getElementById("dimensionsLabel3").value = "";
    //document.forms[0].dimensions3.style.display = "";
    //document.forms[0].units3.style.display = "";
}

function ChangeLabel()
{
    var metalTypeSelect = document.getElementById("metalType");
    var metalType = metalTypeSelect.options[metalTypeSelect.selectedIndex].text;
    var dimensionsRow1 = document.getElementById("dimensionsRow1");
    var dimensionsRow2 = document.getElementById("dimensionsRow2");
    var dimensionsRow3 = document.getElementById("dimensionsRow3");
    var dimensionsLabel1 = document.getElementById("dimensionsLabel1");
    var dimensionsLabel2 = document.getElementById("dimensionsLabel2");
    var dimensionsLabel3 = document.getElementById("dimensionsLabel3");

    if (metalType == "Sheet" || metalType == "Plate" || metalType == "Square or Flat Bar") {
        //document.forms[0].dimensionsLabel1.style.display = "";
        dimensionsRow1.style.display = "";
        //document.forms[0].dimensions1.style.display = "";
        //document.forms[0].units1.style.display = "";
        //document.forms[0].dimensionsLabel2.style.display = "";
        dimensionsRow2.style.display = "";
        //document.forms[0].dimensions2.style.display = "";
        //document.forms[0].units2.style.display = "";
        //document.forms[0].dimensionsLabel3.style.display = "";
        dimensionsRow3.style.display = "";
        //document.forms[0].dimensions3.style.display = "";
        //document.forms[0].units3.style.display = "";
        dimensionsLabel1.value = "Length:";
        dimensionsLabel2.value = "Width:";
        dimensionsLabel3.value = "Thickness:";
    }

    if (metalType == "Circle") {
        //document.forms[0].dimensionsLabel1.style.display = "";
        dimensionsRow1.style.display = "";
        //document.forms[0].dimensions1.style.display = "";
        //document.forms[0].units1.style.display = "";
        //document.forms[0].dimensionsLabel3.style.display = "";
        dimensionsRow3.style.display = "";
        //document.forms[0].dimensions3.style.display = "";
        //document.forms[0].units3.style.display = "";
        dimensionsLabel1.value = "Diameter:";
        dimensionsLabel3.value = "Thickness:";
        //document.forms[0].dimensionsLabel2.style.display = "none";
        dimensionsRow2.style.display = "none";
        //document.forms[0].dimensions2.style.display = "none";
        //document.forms[0].units2.style.display = "none";
    }

    if (metalType == "Ring") {
        //document.forms[0].dimensionsLabel1.style.display = "";
        dimensionsRow1.style.display = "";
        //document.forms[0].dimensions1.style.display = "";
        //document.forms[0].units1.style.display = "";
        //document.forms[0].dimensionsLabel2.style.display = "";
        dimensionsRow2.style.display = "";
        //document.forms[0].dimensions2.style.display = "";
        //document.forms[0].units2.style.display = "";
        //document.forms[0].dimensionsLabel3.style.display = "";
        dimensionsRow3.style.display = "";
        //document.forms[0].dimensions3.style.display = "";
        //document.forms[0].units3.style.display = "";
        dimensionsLabel1.value = "Outer Diameter:";
        dimensionsLabel2.value = "Inner Diameter:";
        dimensionsLabel3.value = "Thickness:";
    }

    if (metalType == "Round Bar") {
        //document.forms[0].dimensionsLabel1.style.display = "";
        dimensionsRow1.style.display = "";
        //document.forms[0].dimensions1.style.display = "";
        //document.forms[0].units1.style.display = "";
        //document.forms[0].dimensionsLabel3.style.display = "";
        dimensionsRow3.style.display = "";
        //document.forms[0].dimensions3.style.display = "";
        //document.forms[0].units3.style.display = "";
        dimensionsLabel1.value = "Diameter:";
        dimensionsLabel3.value = "Length:";
        //document.forms[0].dimensionsLabel2.style.display = "none";
        dimensionsRow2.style.display = "none";
        //document.forms[0].dimensions2.style.display = "none";
        //document.forms[0].units2.style.display = "none";
    }


    if (metalType == "Hexagon Bar") {
        //document.forms[0].dimensionsLabel1.style.display = "";
        dimensionsRow1.style.display = "";
        //document.forms[0].dimensions1.style.display = "";
        //document.forms[0].units1.style.display = "";
        //document.forms[0].dimensionsLabel3.style.display = "";
        dimensionsRow3.style.display = "";
        //document.forms[0].dimensions3.style.display = "";
        //document.forms[0].units3.style.display = "";
        dimensionsLabel1.value = "Width across flats:";
        dimensionsLabel3.value = "Length:";
        //document.forms[0].dimensionsLabel2.style.display = "none";
        dimensionsRow2.style.display = "none";
        //document.forms[0].dimensions2.style.display = "none";
        //document.forms[0].units2.style.display = "none";
    }


    if (metalType == "Round Tubing") {
        //document.forms[0].dimensionsLabel1.style.display = "";
        dimensionsRow1.style.display = "";
        //document.forms[0].dimensions1.style.display = "";
        //document.forms[0].units1.style.display = "";
        //document.forms[0].dimensionsLabel2.style.display = "";
        dimensionsRow2.style.display = "";
        //document.forms[0].dimensions2.style.display = "";
        //document.forms[0].units2.style.display = "";
        //document.forms[0].dimensionsLabel3.style.display = "";
        dimensionsRow3.style.display = "";
        //document.forms[0].dimensions3.style.display = "";
        //document.forms[0].units3.style.display = "";
        dimensionsLabel1.value = "Outer Diameter:";
        dimensionsLabel2.value = "Wall Thickness:";
        dimensionsLabel3.value = "Length:";
    }

    if (metalType == "Square Tubing") {
        //document.forms[0].dimensionsLabel1.style.display = "";
        dimensionsRow1.style.display = "";
        //document.forms[0].dimensions1.style.display = "";
        //document.forms[0].units1.style.display = "";
        //document.forms[0].dimensionsLabel2.style.display = "";
        dimensionsRow2.style.display = "";
        //document.forms[0].dimensions2.style.display = "";
        //document.forms[0].units2.style.display = "";
        //document.forms[0].dimensionsLabel3.style.display = "";
        dimensionsRow3.style.display = "";
        //document.forms[0].dimensions3.style.display = "";
        //document.forms[0].units3.style.display = "";
        dimensionsLabel1.value = "Width across flats:";
        dimensionsLabel2.value = "Wall Thickness:";
        dimensionsLabel3.value = "Length:";
    }
}

// Prevent the Enter key from submitting the document-wide form - instead,
//  re-calculate the weight when Enter is pressed.
function RedirectEnterKey(e)
{
    if (!e) e = window.event;

    if (e.keyCode == 13)
    {
        MetalWeight();
        if (e.stopPropagation)
            e.stopPropagation();
        else
            e.cancelBubble = true;
        return false;
    }
    else
        return true;
}