/*-------------------------------------------
  Partially Filled Horizontal Cylinder Calc
  C0D3D by Gunnar Leffler
  http://www.leftech.com
  Version 1.0
  You are looking at my code. Shame on you! :)
  --------------------------------------------*/

var orient = "H";

function round(amount)
{
	var i = parseFloat(amount);
	if(isNaN(i)) { i = 0.00; }
	var minus = '';
	if(i < 0) { minus = '-'; }
	i = Math.abs(i);
	i = parseInt((i + .005) * 100);
	i = i / 100;
	s = new String(i);
	if(s.indexOf('.') < 0) { s += '.00'; }
	if(s.indexOf('.') == (s.length - 2)) { s += '0'; }
	s = minus + s;
	return s;
}

function Area (r,H)
{
 return (H-r)*Math.sqrt(2*r*H-H*H)+r*r*Math.acos((r-H)/r);
}

function Volume (r,H,L)  //in cubic inches
{
 return L*Area(r,H);
}

function vertVolume (r,H)
{
 return 3.141592*r*r*H;
}

function calculate ()
{
 var r = parseFloat(document.getElementById("dia").value)/2;
 var L = parseFloat(document.getElementById("length").value);
 var H = parseFloat(document.getElementById("dip").value);
 var tmp = Volume (r,H,L)/231; //converting to gallons
 if (orient == "V")
    tmp = vertVolume(r,H)/231;
 var retval = "When the Dip Stick reads "+document.getElementById("dip").value+" inches, the tank holds "+round(tmp)+" gallons.";
 document.getElementById ("results").innerHTML  = retval; 


}  

function go_to_dipchart ()
{
   var name = document.getElementById("tank_name").value;
   var dia = document.getElementById("dia").value;
   var length = document.getElementById("length").value;
   var dip = document.getElementById("dip").value;
   var incr = document.getElementById("incr").value;
   window.open('/img/calcs/charts.htm?name='+name+'&dia='+dia+'&length='+length+'&incr='+incr.toString()+'&orient='+orient,'mywindow','width=600,height=600,toolbar=no, location=yes,directories=no,status=no,menubar=yes,scrollbars=yes,copyhistory=no, resizable=yes');

}  

function set_orientation (f)
{
 orient = f;
}

function dip_chart()
{
 var txt = '<table border=1 cellpadding="2" cellspacing="0">';
 var r = parseFloat(gup("dia"))/2;
 var L = parseFloat(gup("length"));
 var name= gup("name");
 var or = gup("orient");
 incr = parseFloat(gup("incr"));
 var vol = 0;
 if (or != "V"){
   txt+= '<tr><td colspan = "3" align = "center"><b>Dip Chart for '+name+'</b><br>Diameter = '+(r*2).toString()+' in.<br> Length = '+L.toString()+' in. <br> Horizontal Tank</td></tr>';
   txt+= '<tr><td><b>Dip Stick Reading [in.]</b></td><td><b>Volume [gallons]</b></td><td><b>Volume [liters]</b></td></tr>';
   var x;
   var bound = (r/incr)*2;
   var H = 0;
   for (x= 0; x < bound;x++)
   {
     H+= incr;
     vol = Volume (r,H,L)/231; //converting to gallons
     txt += '<tr><td align = "center">'+round(H)+'"</td><td align = "center">'+round(vol)+'</td><td align = "center">'+round(vol*3.78541178)+'</td></tr>';
   }
 } else
 {
   txt+= '<tr><td colspan = "3" align = "center"><b>Dip Chart for '+name+'</b><br>Diameter = '+(r*2).toString()+' in.<br> Length = '+L.toString()+' in. <br> Vertical Tank</td></tr>';
   txt+= '<tr><td><b>Dip Stick Reading [in.]</b></td><td><b>Volume [gallons]</b></td><td><b>Volume [liters]</b></td></tr>';
   var x;
   var bound = (L/incr);
   var H = 0;
   for (x= 0; x < bound;x++)
   {
     H+= incr;
     vol = vertVolume (r,H)/231; //converting to gallons
     txt += '<tr><td align = "center">'+round(H)+'"</td><td align = "center">'+round(vol)+'</td><td align = "center">'+round(vol*3.78541178)+'</td></tr>';
   }
 }
 txt += '</table>';
 document.getElementById ("results").innerHTML  = txt; 
}

function gup( name ) //grab URL Parameters
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}

