// liner support V3.00 (same as 102)

function handleEnter(field, event) {   // disable enter key for our size fields
  var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
  if (keyCode == 13) return false; 
  return true;
}  

function checknum(name, n){
  if ( isNaN(n) )
    {
    alert(name + ' must be a valid number');
    return false;
    }
  if ( (n < 0) || ((name != 'Depth') && (n == 0)) )   // only allow zero depth
    {
    alert(name + ' must be a positive number');
    return false;
    }
  return true;  
}

function setmetre(ref){
  document.getElementById('unt-' + ref).value = 'm';
  resetit(ref);
}

function setfeet(ref){
  document.getElementById('unt-' + ref).value = 'ft';
  resetit(ref);
}

function resetit(ref){
  document.getElementById('xxx-' + ref).value = '1.0';
  document.getElementById('yyy-' + ref).value = '1.0';
  if ( document.getElementById('zzz-' + ref).value != '0' ) document.getElementById('zzz-' + ref).value = '1.0';
  checkit(ref,'r');  
}

function checkit(ref, fld){
  var maxwidth = document.getElementById('max-' + ref).value;
  var b = document.getElementById('bor-' + ref).value - 0; 	// the border (metres)
  var units = document.getElementById('unt-' + ref).value;
  var status = true;
  var scale = 1;
  if ( units == 'ft' ) 
    {
    scale = 10.764;  // sq ft per sq M
    b = b * 3.2808  // border in feet
    }
  var l = document.getElementById('xxx-' + ref).value;
  if ( checknum('Length', l ) )
    {
    l = l - 0;
    }
  else
    {
    document.getElementById('xxx-' + ref).value = '1.0';
    l = 1;
    status = false;
    }
  var w = document.getElementById('yyy-' + ref).value;
  if ( checknum('Width', w ) )
    {
    w = w - 0;
    }
  else
    {
    document.getElementById('yyy-' + ref).value = '1.0';
    w = 1;
    status = false;
    }
  var d = document.getElementById('zzz-' + ref).value;
  if ( checknum('Depth', d ) )
    {
    d = d - 0;
    }
  else
    {
    document.getElementById('zzz-' + ref).value = '1.0';
    d = 1;
    status = false;
    }

  if ( maxwidth )
    {
    var maxw = maxwidth - 0;
    calcw = w + d + d + b + b;
    if ( units == 'ft' ) 
      {
      maxw = maxw * 3.208;
      }
    if ( calcw > maxw )
      {
      alert('Maximum width of material is ' + maxw + units + '\n but your sizes need ' + calcw + units);
      status = false;
      if ( fld == 'w' )
        {
        document.getElementById('yyy-' + ref).value = '1.0';
        w = 1;
        }
      if ( fld == 'd' )
        {
        document.getElementById('zzz-' + ref).value = '1.0';
        d = 1;
        }
      }
    }

  document.getElementById('Q_' + ref).value = Math.ceil((l + d + d + b + b) * (w + d + d + b + b) / scale);
  var inf = 'Length: ' + l + units + ' Breadth: ' + w + units;
  if ( d !=0 ) inf += ' Depth: ' + d + units;		// only use depth if non-zero
  document.getElementById('inf_' + ref).value = inf;
  return status;
}