// JavaScript Document
function isNumeric(str){
	var re = /[^0-9\.,]/g
	if (str.length > 0 && str.indexOf('/') > 0){
		if (str.indexOf(' ') > 0){
			fracs = str.split(' ');
			str=parseInt(fracs[0]) + eval(fracs[1]);
		}else{str=eval(str);}
	}
	if (re.test(str)) return false;
	return true;
}
function rDec(str){
	str.replace(" ","");
	/*if (str.indexOf(' ') > 0){
		fracs = str.split(' ');
		str=parseInt(fracs[0]) + eval(fracs[1]);
		
	}else{str=eval(str);}*/
	str=eval(str);
	return parseFloat(str);
}
function isEmpty(str){
	return (str == null) || (str.length == 0);
}
function groutCalc()
{
  var jobsize = rDec(document.getElementById('jobsize').value);
  var tilelength = rDec(document.getElementById('tilelength').value);
  var tilewidth = rDec(document.getElementById('tilewidth').value);
  var tilethickness = rDec(document.getElementById('tilethickness').value);
  var groutjointwidth = rDec(document.getElementById('groutjointwidth').value);
  var tilespersquare = document.getElementById('tilespersquare');
  var coverage = document.getElementById('coverage');
  var bucketsrequired = document.getElementById('bucketsrequired');
  var ninesrequired = document.getElementById('ninesrequired');
  var tiles = 0;
  var covers = 0;
  var buckets = 0;
  var ninebucket = 0;
  var jointsize = 0;
  var numberBucket = 0;
   if ( isEmpty(jobsize) || ! isNumeric(jobsize)){
  		alert("Job size must be a valid number.");
		return false;
	}
	if ( isEmpty(tilelength) || ! isNumeric(tilelength)){
  		alert("Tile length must be a valid number.");
		return false;
	}
	if ( isEmpty(tilewidth) || ! isNumeric(tilewidth)){
  		alert("Tile width must be a valid number.");
		return false;
	}
	if ( isEmpty(tilethickness) || ! isNumeric(tilethickness)){
  		alert("Tile thickness must be a valid number.");
		return false;
	}
	if ( isEmpty(groutjointwidth) || ! isNumeric(groutjointwidth)){
  		alert("Grout joint width must be a valid number.");
		return false;
	}
	tiles = eval(144/(tilewidth * tilelength));
	tilespersquare.value = Math.round(tiles*100)/100; //round with 2 decimals
	covers = eval(346.5 / (((tilethickness * groutjointwidth) * (tilewidth + tilelength)) * tiles) * 0.82); 
	//(346.5/(((grout joint * tile thickness)*(tile length + tile width))*tiles per square foot)*0.82)
	coverage.value = Math.round(covers);
	numberBucket = eval(jobsize/covers);
	if (eval(numberBucket-Math.floor(numberBucket)) > 0.5 ){
		buckets = Math.ceil(numberBucket);
	}else{
		buckets = Math.floor(numberBucket);
	}
	if (eval(numberBucket-Math.floor(numberBucket)) < 0.5) ninebucket=1;
	bucketsrequired.value = buckets;
	ninesrequired.value = ninebucket;
}
function stargroutCalc()
{
  var jobsize = rDec(document.getElementById('jobsize').value);
  var tilelength = rDec(document.getElementById('tilelength').value);
  var tilewidth = rDec(document.getElementById('tilewidth').value);
  var tilethickness = rDec(document.getElementById('tilethickness').value);
  var groutjointwidth = rDec(document.getElementById('groutjointwidth').value);
  var tilespersquare = document.getElementById('tilespersquare');
  var coverage = document.getElementById('coverage');
  var bucketsrequired = document.getElementById('bucketsrequired');
  var ninesrequired = document.getElementById('ninesrequired');
  var tiles = 0;
  var covers = 0;
  var buckets = 0;
  var ninebucket = 0;
  var jointsize = 0;
   if ( isEmpty(jobsize) || ! isNumeric(jobsize)){
  		alert("Job size must be a valid number.");
		return false;
	}
	if ( isEmpty(tilelength) || ! isNumeric(tilelength)){
  		alert("Tile length must be a valid number.");
		return false;
	}
	if ( isEmpty(tilewidth) || ! isNumeric(tilewidth)){
  		alert("Tile width must be a valid number.");
		return false;
	}
	if ( isEmpty(tilethickness) || ! isNumeric(tilethickness)){
  		alert("Tile thickness must be a valid number.");
		return false;
	}
	if ( isEmpty(groutjointwidth) || ! isNumeric(groutjointwidth)){
  		alert("Grout joint width must be a valid number.");
		return false;
	}
	jointsize = eval((tilewidth+groutjointwidth)*(tilelength+groutjointwidth));
	tiles = eval(144/jointsize);
	tilespersquare.value = Math.round(tiles*100)/100; //round with 2 decimals
	tilesize = eval(tilewidth+tilelength+groutjointwidth);
	
	covers = eval(275.53/144 * jointsize / tilesize / tilethickness / groutjointwidth ); 
	//(346.5/(((grout joint * tile thickness)*(tile length + tile width))*tiles per square foot)*0.82)
	coverage.value = Math.round(covers);
	numberBucket = eval(jobsize/covers);
	if (eval(numberBucket-Math.floor(numberBucket)) > 0.5 ){
		buckets = Math.ceil(numberBucket);
	}else{
		buckets = Math.floor(numberBucket);
	}
	if (eval(numberBucket-Math.floor(numberBucket)) < 0.5) ninebucket=1;
	bucketsrequired.value = buckets;
	ninesrequired.value = ninebucket;
}