// Copyright - Steve Brown - Ausfish
// The ratio find it by length/height
ratio = 2.154824;
// Minimum Height
mymin = 50;
// Maximum Height
mymax = 580;
// Maximum Cost
maxcost = 90;
// Minimum Cost
mincost = 10;
// Cost per mm square
mmcost = 0.0001765;
// min Cost per sticker
mincost = 10;
// max Cost per sticker
maxcost = 90;

function find_length()	{
	mheight = document.calc.mheight.value;
	if (mheight < mymin)	{
		mheight = mymin;
		document.calc.mheight.value = mheight;
	}
	if (mheight > mymax)	{
		mheight = mymax;
		document.calc.mheight.value = mheight;
	}		
	mlength = mheight * ratio;
	mlength = round_decimals(mlength, 2);
	document.calc.mlength.value = mlength;
	if (document.calc.mheight.value != '')	{
		calc_cost();
	}
}

function find_height()	{
	mlength = document.calc.mlength.value;
	mheight = mlength / ratio;
	mheight = round_decimals(mheight, 2);
	document.calc.mheight.value = mheight;
	if (document.calc.mlength.value != '')	{
		calc_cost();
	}
}	

function calc_cost()	{
	mlength = document.calc.mlength.value;
	mheight = document.calc.mheight.value;
	myarea = mlength*mheight;
	mycost = myarea * mmcost;
	mycost = round_decimals(mycost, 2);
	if (mycost < mincost)	{
		mycost = mincost;
	}
	if (mycost > maxcost)	{
		mycost = maxcost;
	}
	if (mheight < 186)	{
		document.calc.sh.value = 1;
	}
	if ((mheight >185) && (mheight < 296))	{
		document.calc.sh.value = 20;
	}
	if (mheight > 295)	{
		document.calc.sh.value = 3100;
	}	
	document.calc.price.value = mycost;
	document.calc.custom1.value = 'Custom:' + mlength + ' x ' + mheight;
}

function round_decimals(original_number, decimals) {
    var result1 = original_number * Math.pow(10, decimals)
    var result2 = Math.round(result1)
    var result3 = result2 / Math.pow(10, decimals)
    return pad_with_zeros(result3, decimals)
}

function pad_with_zeros(rounded_value, decimal_places) {

    // Convert the number to a string
    var value_string = rounded_value.toString()
    
    // Locate the decimal point
    var decimal_location = value_string.indexOf(".")

    // Is there a decimal point?
    if (decimal_location == -1) {
        
        // If no, then all decimal places will be padded with 0s
        decimal_part_length = 0
        
        // If decimal_places is greater than zero, tack on a decimal point
        value_string += decimal_places > 0 ? "." : ""
    }
    else {

        // If yes, then only the extra decimal places will be padded with 0s
        decimal_part_length = value_string.length - decimal_location - 1
    }
    
    // Calculate the number of decimal places that need to be padded with 0s
    var pad_total = decimal_places - decimal_part_length
    
    if (pad_total > 0) {
        
        // Pad the string with 0s
        for (var counter = 1; counter <= pad_total; counter++) 
            value_string += "0"
        }
    return value_string
}

