<!-- // Hide the script from browsers which don't support it.

// This function is to perform the sizing calculations for the PA-3500 line of products
//
// Copyright (c) 2003 by Robert L. Curtis. All rights reserved.
//

var headStyle; var studPart; var bdim;
var panel    ; var panelt;
var valid = true;

// This function is to clear the part numbers when an error is encountered during the build.  
// This will prevent partial part numbers from being presented to the user.
//
function resetPartNumbers() { studPart   = ""; bdim=""; valid = false; }

// This function is to determine and set the part numbers
//
function calculatePartNumbers() {

resetPartNumbers();
valid = true;

    // Start by determing the head style which was selected.
if      (document.inParms.Head[0].checked) { headStyle="3506-SCxxxA"; studPart="3506-SC"; }
else if (document.inParms.Head[1].checked) { headStyle="3522-Sxxx";   studPart="3522-S";  }
    // read in the panel value.
panel   = document.inParms.Panel.value;
    // set the information which was entered in the display.
document.inParms.studSpec.value = headStyle;
setPileText(0,0);

    // do some validation on the input information.
    //   1. A panel thickness is required.  
if (panel   == "") displayErrorMessage(1);   
else               panel = eval(panel);      
panelt = parseInt(panel * 1000);

    // 5. Check to see if the total pileup for the part is in the valid range.
if (valid) 
  if (panelt < 50 || panelt > 129) displayErrorMessage(6); 
  else if (panelt <=  59) { studPart += "37"; bdim = ".070\""; }
  else if (panelt <=  69) { studPart += "38"; bdim = ".080\""; }
  else if (panelt <=  79) { studPart += "39"; bdim = ".090\""; }
  else if (panelt <=  89) { studPart += "40"; bdim = ".100\""; }
  else if (panelt <=  99) { studPart += "41"; bdim = ".110\""; }
  else if (panelt <= 109) { studPart += "42"; bdim = ".120\""; }
  else if (panelt <= 119) { studPart += "43"; bdim = ".130\""; }
  else if (panelt <= 129) { studPart += "44"; bdim = ".140\""; }
  
if (valid) {
  if (document.inParms.Head[0].checked) studPart += "A";
  for ( i = 0 ; i < document.inParms.Finish.length ; ++ i ) {
    if (document.inParms.Finish[i].checked) {
      studPart += "-" + document.inParms.Finish[i].value;
    }
  }
}
    // Set the part number in the display
    // if there is an error, the fields will be blank
document.inParms.studPart.value   = studPart; 
document.inParms.DimB.value       = bdim;
}

    // This function is to set the "panel / gap / support = pileup" display
function setPileText(pileup) {
  var work = panel;
  document.inParms.pgsSpec.value = work;
}

    // This function is to display error messages as alerts.
function displayErrorMessage(msgno) {
var messages = new Array();
var severity = new Array();
var numberOfMessages = 8;
severity[ 0] = 2; messages[ 0] = "Undefined message number [" + msgno + "] was requested";
severity[ 1] = 2; messages[ 1] = "A Panel Thickness is required!";
severity[ 2] = 2; messages[ 2] = "I am unable to find a stud which will fit your requirements!\n\nPlease call for assistance.";
severity[ 3] = 1; messages[ 3] = "The EEB Finish for this part will be a special order!";
severity[ 4] = 2; messages[ 4] = "";
severity[ 5] = 2; messages[ 5] = "";
severity[ 6] = 2; messages[ 6] = "The panel thickness must be between 0.050\" and 0.129\"!";
severity[ 7] = 2; messages[ 7] = "";
severity[ 8] = 2; messages[ 8] = "";

if (msgno > numberOfMessages)   alert(messages[0]);
else { switch (severity[msgno]) {
         case 0: { document.inParms.Notes.value = messages[msgno];       break; }
         case 1: { alert("Warning: "+messages[msgno]);                   break; } 
         case 2: { alert("Error: "+messages[msgno]); resetPartNumbers(); break; }
       }
     }
}
// end of hiding -->
