// 050508 JCW - removed the -AE option. Also removed a bunch of the commented-out code.
//              If we need it, that's what VSS is for. (nice.. .real nice.. thanks John.)

var Language = null;

var
  fm,
  orientName,
  cgDirection,

  App2orientName,
  App2cgDirection,

  busy = false,
  needCalc = false,
  calcTime = 0,

  App2busy = false,
  App2needCalc = false,
  App2calcTime = 0,

  agreed = false,

  multiPosIndex = 0,
  App2multiPosIndex = 0,
  
  multiPosInputs = new Array(new Array(1, 1, 4, 0, 0, 0), new Array(1, 1, 4, 0, 0, 0), new Array(1, 1, 4, 0, 0, 0), new Array(1, 1, 4, 0, 0, 0)),
  App2multiPosInputs = new Array(new Array(1, 1, 4, 0, 0, 0), new Array(1, 1, 4, 0, 0, 0), new Array(1, 1, 4, 0, 0, 0), new Array(1, 1, 4, 0, 0, 0)) ;

var selectedFlash;


var cgForward;
var cgToSide;
var cgFromTop;

function PageLoad()
{
  if (!agreed)
  {
	if (confirm(element("hf1").value + " " + element("hf2").value + " " + element("hf3").value
		  + "\n\n"
		  + element("hf4").value
		  + "\n\n"
		  + element("hf5").value) )
	{
	  agreed = true ;
	}
	else
	{
	  location = "http://www.phdinc.com/" ;
	  return ;
	}
  }
		
  SetupDivPop("divUCPop") ;

  SetupUC("imgTravelMinus", "txtTravel", "imgTravelPlus", "spnUCTravel", "length", element("hidIn").value, 1, 1, 1, 4, 0) ;
  SetupUC("imgLoadMinus", "txtLoad", "imgLoadPlus", "spnUCLoad", "weight", element("hidLb").value, 1, 1, 1, 2, 0) ;
  SetupUC("imgTimeMinus", "txtTime", "imgTimePlus", "spnUCTime", "time", element("hidSec").value, 0.25, 1, 0.25, 2, 0) ;
  SetupUC("imgPressMinus", "txtPress", "imgPressPlus", "spnUCPress", "pressure", element("hidPSI").value, 87, 1, 1, 2, 20, 150) ;
  SetupUC("imgCyclesMinus", "txtCycles", "imgCyclesPlus", "spnUCCycles", "cycle_rate", element("hidPerHr").value, 1200, 1, 10, 2, 1, 7200) ;
  SetupUC("imgMidpointMinus", "txtMidpoint", "imgMidpointPlus", "spnUCMidpoint", "length", element("hidIn").value, 0, 1, 1, 4) ;
  SetupUC("imgForwardMinus", "txtForward", "imgForwardPlus", "spnUCForward", "length", element("hidIn").value, 0, 1, 1, 4) ;
  SetupUC("imgToSideMinus", "txtToSide", "imgToSidePlus", "spnUCToSide", "length", element("hidIn").value, 0, 1, 1, 4, 0) ;
  SetupUC("imgFromTopMinus", "txtFromTop", "imgFromTopPlus", "spnUCFromTop", "length", element("hidIn").value, 0, 1, 1, 4, 0) ;
  
  SetupUC("imgSFPForwardMinus", "txtSFPForward", "imgSFPForwardPlus", "spnUCSFPForward", "length", element("hidIn").value, 0, 1, 1, 4, 0) ;
  SetupUC("imgSFPToSideMinus", "txtSFPToSide", "imgSFPToSidePlus", "spnUCSFPToSide", "length", element("hidIn").value, 0, 1, 1, 4, 0) ;
  SetupUC("imgSFPFromTopMinus", "txtSFPFromTop", "imgSFPFromTopPlus", "spnUCSFPFromTop", "length", element("hidIn").value, 0, 1, 1, 4, 0) ;
  
  //ADDED 5/7/08******************************
  SetupUC("imgMultiPosForwardMinusTop", "txtMultiPosForwardTop", "imgMultiPosForwardPlusTop", "spnUCMultiPosForwardTop", "length", element("hidIn").value, multiPosInputs[0][3], 1, 1, 3, 0, null, false) ;
  SetupUC("imgMultiPosToSideMinusTop", "txtMultiPosToSideTop", "imgMultiPosToSidePlusTop", "spnUCMultiPosToSideTop", "length", element("hidIn").value, multiPosInputs[0][4], 1, 1, 3, 0, null, false) ;
  SetupUC("imgMultiPosFromTopMinusTop", "txtMultiPosFromTopTop", "imgMultiPosFromTopPlusTop", "spnUCMultiPosFromTopTop", "length", element("hidIn").value, multiPosInputs[0][5], 1, 1, 3, 0, null, false) ;
  //******************************************  
  SetupUC("imgMultiPosActuatorsMinus", "txtMultiPosActuators", "imgMultiPosActuatorsPlus", "spnUCMultiPosActuators", "quantity", "qty", 0, 1, 1, 0, 0, 9) ;
  SetupUC("imgMultiPosHitsMinus", "txtMultiPosHits", "imgMultiPosHitsPlus", "spnUCMultiPosHits", "quantity", "qty", multiPosInputs[0][0], 1, 1, 0, 0, null, true) ;
  SetupUC("imgMultiPosLoadMinus", "txtMultiPosLoad", "imgMultiPosLoadPlus", "spnUCMultiPosLoad", "weight", element("hidLb").value, multiPosInputs[0][1], 1, 1, 3, 0, null, true) ;
  SetupUC("imgMultiPosVelMinus", "txtMultiPosVel", "imgMultiPosVelPlus", "spnUCMultiPosVel", "velocity", element("hidInSec").value, multiPosInputs[0][2], 1, 1, 3, 0.001, null, true) ;
  SetupUC("imgMultiPosForwardMinus", "txtMultiPosForward", "imgMultiPosForwardPlus", "spnUCMultiPosForward", "length", element("hidIn").value, multiPosInputs[0][3], 1, 1, 3, 0, null, true) ;
  SetupUC("imgMultiPosToSideMinus", "txtMultiPosToSide", "imgMultiPosToSidePlus", "spnUCMultiPosToSide", "length", element("hidIn").value, multiPosInputs[0][4], 1, 1, 3, 0, null, true) ;
  SetupUC("imgMultiPosFromTopMinus", "txtMultiPosFromTop", "imgMultiPosFromTopPlus", "spnUCMultiPosFromTop", "length", element("hidIn").value, multiPosInputs[0][5], 1, 1, 3, 0, null, true) ;
  
  SetupUC("App2imgTravelMinus", "App2txtTravel", "App2imgTravelPlus", "App2spnUCTravel", "length", element("hidIn").value, 1, 1, 1, 4, 0) ;
  SetupUC("App2imgLoadMinus", "App2txtLoad", "App2imgLoadPlus", "App2spnUCLoad", "weight", element("hidLb").value, 1, 1, 1, 2, 0) ;
  SetupUC("App2imgTimeMinus", "App2txtTime", "App2imgTimePlus", "App2spnUCTime", "time", element("hidSec").value, 0.25, 1, 0.25, 2, 0) ;
  SetupUC("App2imgPressMinus", "App2txtPress", "App2imgPressPlus", "App2spnUCPress", "pressure", element("hidPSI").value, 87, 1, 1, 2, 20, 150) ;
  SetupUC("App2imgCyclesMinus", "App2txtCycles", "App2imgCyclesPlus", "App2spnUCCycles", "cycle_rate", element("hidPerHr").value, 1200, 1, 10, 2, 10) ;
  SetupUC("App2imgMidpointMinus", "App2txtMidpoint", "App2imgMidpointPlus", "App2spnUCMidpoint", "length", element("hidIn").value, 0, 1, 1, 4) ;
  SetupUC("App2imgForwardMinus", "App2txtForward", "App2imgForwardPlus", "App2spnUCForward", "length", element("hidIn").value, 0, 1, 1, 4, 0) ;
  SetupUC("App2imgToSideMinus", "App2txtToSide", "App2imgToSidePlus", "App2spnUCToSide", "length", element("hidIn").value, 0, 1, 1, 4, 0) ;
  SetupUC("App2imgFromTopMinus", "App2txtFromTop", "App2imgFromTopPlus", "App2spnUCFromTop", "length", element("hidIn").value, 0, 1, 1, 4, 0) ;
  
  SetupUC("App2imgSFPForwardMinus", "App2txtSFPForward", "App2imgSFPForwardPlus", "App2spnUCSFPForward", "length", element("hidIn").value, 0, 1, 1, 4, 0) ;
  SetupUC("App2imgSFPToSideMinus", "App2txtSFPToSide", "App2imgSFPToSidePlus", "App2spnUCSFPToSide", "length", element("hidIn").value, 0, 1, 1, 4, 0) ;
  SetupUC("App2imgSFPFromTopMinus", "App2txtSFPFromTop", "App2imgSFPFromTopPlus", "App2spnUCSFPFromTop", "length", element("hidIn").value, 0, 1, 1, 4) ;
  
  // ADDED 5/7/08 ******************************
  SetupUC("App2imgMultiPosForwardMinusTop", "App2txtMultiPosForwardTop", "App2imgMultiPosForwardPlusTop", "App2spnUCMultiPosForwardTop", "length", element("hidIn").value, multiPosInputs[0][3], 1, 1, 3, 0, null, false) ;
  SetupUC("App2imgMultiPosToSideMinusTop", "App2txtMultiPosToSideTop", "App2imgMultiPosToSidePlusTop", "App2spnUCMultiPosToSideTop", "length", element("hidIn").value, multiPosInputs[0][4], 1, 1, 3, 0, null, false) ;
  SetupUC("App2imgMultiPosFromTopMinusTop", "App2txtMultiPosFromTopTop", "App2imgMultiPosFromTopPlusTop", "App2spnUCMultiPosFromTopTop", "length", element("hidIn").value, multiPosInputs[0][5], 1, 1, 3, 0, null, false) ;
  //*******************************************
  SetupUC("App2imgMultiPosActuatorsMinus", "App2txtMultiPosActuators", "App2imgMultiPosActuatorsPlus", "App2spnUCMultiPosActuators", "quantity", "qty", 0, 1, 1, 0, 0, 9) ;
  SetupUC("App2imgMultiPosHitsMinus", "App2txtMultiPosHits", "App2imgMultiPosHitsPlus", "App2spnUCMultiPosHits", "quantity", "qty", multiPosInputs[0][0], 1, 1, 0, 0, null, true) ;
  SetupUC("App2imgMultiPosLoadMinus", "App2txtMultiPosLoad", "App2imgMultiPosLoadPlus", "App2spnUCMultiPosLoad", "weight", element("hidLb").value, multiPosInputs[0][1], 1, 1, 3, 0, null, true) ;
  SetupUC("App2imgMultiPosVelMinus", "App2txtMultiPosVel", "App2imgMultiPosVelPlus", "App2spnUCMultiPosVel", "velocity", element("hidInSec").value, multiPosInputs[0][2], 1, 1, 3, 0.001, null, true) ;
  SetupUC("App2imgMultiPosForwardMinus", "App2txtMultiPosForward", "App2imgMultiPosForwardPlus", "App2spnUCMultiPosForward", "length", element("hidIn").value, multiPosInputs[0][3], 1, 1, 3, 0, null, true) ;
  SetupUC("App2imgMultiPosToSideMinus", "App2txtMultiPosToSide", "App2imgMultiPosToSidePlus", "App2spnUCMultiPosToSide", "length", element("hidIn").value, multiPosInputs[0][4], 1, 1, 3, 0, null, true) ;
  SetupUC("App2imgMultiPosFromTopMinus", "App2txtMultiPosFromTop", "App2imgMultiPosFromTopPlus", "App2spnUCMultiPosFromTop", "length", element("hidIn").value, multiPosInputs[0][5], 1, 1, 3, 0, null, true) ;

  busy = true ;
  App2busy = true ;

  fm = element("frmMain") ;

  fm.selImageSet.onchange = ImageSetSelect ;
  fm.App2selImageSet.onchange = ImageSetSelect ;
  
  // Initialize column 1 controls...
  fm.rbCantilever.checked = true ;
  
  fm.rbImpMetUnit.checked = true ;  
  fm.rb2Pos.checked = true ;  
  fm.rbAllBearings.checked = true ;
  fm.cbAuto.checked = true ;
  fm.rbStdMode.checked = true ;
  
  fm.btnAllSeries.onclick = AllSeries ;
  fm.btnNoSeries.onclick = NoSeries ;
  fm.Reset.onclick = PageLoad ;
  fm.btnPrint.onclick = PrintClick ;
  fm.btnCopy.onclick = CopyClick ;

  // Initialize app 1 controls...

  orientName = "HorizontalNormal" ;
  cgDirection = 1 ;

  fm.rbImperial.checked = true ;

  fm.rbImperial.onclick = UnitsChanged ;
  fm.rbMetric.onclick = UnitsChanged ;
  
  element("tdHorFlat").onclick = HorFlatClick ;
  element("tdHorSide").onclick = HorSideClick ;
  element("tdVertUp").onclick = VertUpClick ;
  element("tdVertDown").onclick = VertDownClick ;

  fm.rbPush.checked = true ;

  fm.rbPush.onclick = InputChanged ;
  fm.rbPull.onclick = InputChanged ;

  fm.rbExtendCap.checked = true ;
  fm.rbRetractCap.checked = true ;
  fm.rbMultiPosSE.checked = true ;
  
  fm.rbExtendCap.onclick = EndStopChanged ;
  fm.rbExtendAdj.onclick = EndStopChanged ;
  fm.rbRetractCap.onclick = EndStopChanged ;
  fm.rbRetractAdj.onclick = EndStopChanged ;

  fm.rbMultiPosSE.onclick = MultiPosChanged ;
  fm.rbMultiPosSR.onclick = MultiPosChanged ;
  fm.rbMultiPosCE.onclick = MultiPosChanged ;
  fm.rbMultiPosCR.onclick = MultiPosChanged ;
  
  fm.cbAE.checked = false ;
  fm.cbH11.checked = false ;
  fm.cbQ6.checked = false ;
  fm.cbRear.checked = false ;
  
  fm.cbShowFailed.checked = false ;
  fm.cbShowMarginal.checked = true ;
  fm.cbShowMarginal.disabled = false ;
  
  fm.cbAE.onclick = InputChanged ;
  fm.cbH11.onclick = InputChanged ;
  fm.cbQ6.onclick = InputChanged ;
  fm.cbRear.onclick = InputChanged ;
  
  element("tdCG1").onclick = CG1Click ;
  element("tdCG2").onclick = CG2Click ;
  
  fm.selResults.onchange = SlideSelected ;
  
  fm.cbShowFailed.onclick = FailedClick ;
  fm.cbShowMarginal.onclick = MarginalClick ;
  
  fm.btnMultiUnlock.onclick = ToggleMultiShockInputs ;

  // Initialize app 2 controls...

  App2orientName = "HorizontalNormal" ;
  App2cgDirection = 1 ;

  fm.App2rbImperial.checked = true ;

  fm.App2rbImperial.onclick = UnitsChanged ;
  fm.App2rbMetric.onclick = UnitsChanged ;

  element("App2tdHorFlat").onclick = HorFlatClick ;
  element("App2tdHorSide").onclick = HorSideClick ;
  element("App2tdVertUp").onclick = VertUpClick ;
  element("App2tdVertDown").onclick = VertDownClick ;

  fm.App2rbPush.checked = true ;

  fm.App2rbPush.onclick = InputChanged ;
  fm.App2rbPull.onclick = InputChanged ;

  fm.App2rbExtendCap.checked = true ;
  fm.App2rbRetractCap.checked = true ;
  fm.App2rbMultiPosSE.checked = true ;
  
  fm.App2rbExtendCap.onclick = EndStopChanged ;
  fm.App2rbExtendAdj.onclick = EndStopChanged ;
  fm.App2rbRetractCap.onclick = EndStopChanged ;
  fm.App2rbRetractAdj.onclick = EndStopChanged ;

  fm.App2rbMultiPosSE.onclick = MultiPosChanged ;
  fm.App2rbMultiPosSR.onclick = MultiPosChanged ;
  fm.App2rbMultiPosCE.onclick = MultiPosChanged ;
  fm.App2rbMultiPosCR.onclick = MultiPosChanged ;
  
  fm.App2cbAE.checked = false ;
  fm.App2cbH11.checked = false ;
  fm.App2cbQ6.checked = false ;
  fm.App2cbRear.checked = false ;
  
  fm.App2cbShowFailed.checked = false ;
  fm.App2cbShowMarginal.checked = true ;
  fm.App2cbShowMarginal.disabled = false ;
  
  fm.App2cbAE.onclick = InputChanged ;
  fm.App2cbH11.onclick = InputChanged ;
  fm.App2cbQ6.onclick = InputChanged ;
  fm.App2cbRear.onclick = InputChanged ;
  
  element("App2tdCG1").onclick = CG1Click ;
  element("App2tdCG2").onclick = CG2Click ;
  
  fm.App2selResults.onchange = SlideSelected ;
  
  fm.App2cbShowFailed.onclick = FailedClick ;
  fm.App2cbShowMarginal.onclick = MarginalClick ;
  
  fm.App2btnMultiUnlock.onclick = ToggleMultiShockInputs ;
  
  FilterSeries() ;  // necessary to initialize style properties (defaults do not "exist" until set)
  NoSeries() ;
  
  SetOrientation(new DummyEvent("tdHorFlat"), orientName) ;
  SetOrientation(new DummyEvent("App2tdHorFlat"), App2orientName) ;

  RestoreMultiInputDefaults(new DummyEvent("btnMultiUnlock")) ;
  RestoreMultiInputDefaults(new DummyEvent("App2btnMultiUnlock")) ;

  AllSeries();

  busy = false ;
  App2busy = false ;

  var rxAuto = /AutoCalc=(\w+)/ ;
  if (rxAuto.test(document.cookie))
	fm.cbAuto.checked = (RegExp.$1 == "true") ;
	
	
	CheckResolution();
	
  AutoClicked() ;
}


function EndStopChanged(e)
{
  var
	rbEC = AppElement(e, "rbExtendCap"),
	rbRC = AppElement(e, "rbRetractCap"),
	spnCapExt = AppElement(e, "spnCapExt"),
	spnCapRet = AppElement(e, "spnCapRet") ;
	
  if (rbEC.checked)
	spnCapExt.style.display = "block" ;
  else
  {
	if (AppElement(e, "rbMultiPosCE").checked)
	{
	  AppElement(e, "rbMultiPosSE").checked = true ;
	  MultiPosChanged(e) ;
	}
	
	spnCapExt.style.display = "none" ;
  }
	
  if (rbRC.checked)
	spnCapRet.style.display = "block" ;
  else
  {
	if (AppElement(e, "rbMultiPosCR").checked)
	{
	  AppElement(e, "rbMultiPosSR").checked = true ;
	  MultiPosChanged(e) ;
	}
	
	spnCapRet.style.display = "none" ;
  }
  //UPDATED 6/2/08 recalculate hits/cycle when endstops are changed
  RestoreMultiInputDefaults(e) ;
  //*******************************
  	
  InputChanged(e) ;
}


function RestoreMultiInputDefaults(e)
{
  var
	mpIn = (IsApp2(e) ? App2multiPosInputs : multiPosInputs),
	t = AppElement(e, "spnUCTime").StandardValue ;
 
  mpIn[0][0] = AppElement(e, "spnUCMultiPosActuators").StandardValue + (AppElement(e, "rbExtendCap").checked ? 0 : 1) ;
  mpIn[0][1] = AppElement(e, "spnUCLoad").StandardValue ;
  mpIn[0][2] = AppElement(e, "spnUCTravel").StandardValue / (t == 0 ? 0.00001 : t) ;
  if (element("rbSFM").checked == true) {
        mpIn[0][3] = AppElement(e, "spnUCMultiPosForwardTop").StandardValue;
        mpIn[0][4] = AppElement(e, "spnUCMultiPosToSideTop").StandardValue;
        mpIn[0][5] = AppElement(e, "spnUCMultiPosFromTopTop").StandardValue;
  } else if (element("cbSFM").checked == true) {
        mpIn[0][3] = AppElement(e, "spnUCMultiPosForwardTop").StandardValue;
        mpIn[0][4] = AppElement(e, "spnUCMultiPosToSideTop").StandardValue;
        mpIn[0][5] = AppElement(e, "spnUCMultiPosFromTopTop").StandardValue;
  } else {
        mpIn[0][3] = AppElement(e, "spnUCMultiPosForwardTop").StandardValue;
        mpIn[0][4] = AppElement(e, "spnUCToSide").StandardValue;
        mpIn[0][5] = AppElement(e, "spnUCFromTop").StandardValue;
  }
  
  mpIn[1][0] = AppElement(e, "spnUCMultiPosActuators").StandardValue + (AppElement(e, "rbRetractCap").checked ? 0 : 1) ;
  mpIn[1][1] = AppElement(e, "spnUCLoad").StandardValue ;
  mpIn[1][2] = AppElement(e, "spnUCTravel").StandardValue / (t == 0 ? 0.00001 : t) ;
//  mpIn[1][3] = AppElement(e, "spnUCForward").StandardValue ;
//  mpIn[1][4] = AppElement(e, "spnUCToSide").StandardValue ;
  if (element("rbSFM").checked == true) {
      mpIn[1][3] = AppElement(e, "spnUCMultiPosForwardTop").StandardValue;
      mpIn[1][4] = AppElement(e, "spnUCMultiPosToSideTop").StandardValue;
      mpIn[1][5] = AppElement(e, "spnUCMultiPosFromTopTop").StandardValue;
  } else if (element("cbSFM").checked == true) {
      mpIn[1][3] = AppElement(e, "spnUCMultiPosForwardTop").StandardValue;
      mpIn[1][4] = AppElement(e, "spnUCMultiPosToSideTop").StandardValue;
      mpIn[1][5] = AppElement(e, "spnUCMultiPosFromTopTop").StandardValue;
  } else {
      mpIn[1][3] = AppElement(e, "spnUCMultiPosForwardTop").StandardValue;
      mpIn[1][4] = AppElement(e, "spnUCToSide").StandardValue;
      mpIn[1][5] = AppElement(e, "spnUCFromTop").StandardValue;
  }
  
  mpIn[2][0] = 1 ;
  mpIn[2][1] = AppElement(e, "spnUCLoad").StandardValue ;
  mpIn[2][2] = AppElement(e, "spnUCTravel").StandardValue / (t == 0 ? 0.00001 : t) ;
//  mpIn[2][3] = AppElement(e, "spnUCForward").StandardValue ;
//  mpIn[2][4] = AppElement(e, "spnUCToSide").StandardValue ;
  if (element("rbSFM").checked == true) {
      mpIn[2][3] = AppElement(e, "spnUCMultiPosForwardTop").StandardValue;
      mpIn[2][4] = AppElement(e, "spnUCMultiPosToSideTop").StandardValue;
      mpIn[2][5] = AppElement(e, "spnUCMultiPosFromTopTop").StandardValue;
  } else if (element("cbSFM").checked == true) {
      mpIn[2][3] = AppElement(e, "spnUCMultiPosForwardTop").StandardValue;
      mpIn[2][4] = AppElement(e, "spnUCMultiPosToSideTop").StandardValue;
      mpIn[2][5] = AppElement(e, "spnUCMultiPosFromTopTop").StandardValue;
  } else {
      mpIn[2][3] = AppElement(e, "spnUCMultiPosForwardTop").StandardValue;
      mpIn[2][4] = AppElement(e, "spnUCToSide").StandardValue;
      mpIn[2][5] = AppElement(e, "spnUCFromTop").StandardValue;
  }
  
  mpIn[3][0] = 1 ;
  mpIn[3][1] = AppElement(e, "spnUCLoad").StandardValue ;
  mpIn[3][2] = AppElement(e, "spnUCTravel").StandardValue / (t == 0 ? 0.00001 : t) ;
//  mpIn[3][3] = AppElement(e, "spnUCForward").StandardValue ;
//  mpIn[3][4] = AppElement(e, "spnUCToSide").StandardValue ;
  if (element("rbSFM").checked == true) {
      mpIn[3][3] = AppElement(e, "spnUCMultiPosForwardTop").StandardValue;
      mpIn[3][4] = AppElement(e, "spnUCMultiPosToSideTop").StandardValue;
      mpIn[3][5] = AppElement(e, "spnUCMultiPosFromTopTop").StandardValue;
  } else if (element("cbSFM").checked == true) {
      mpIn[3][3] = AppElement(e, "spnUCMultiPosForwardTop").StandardValue;
      mpIn[3][4] = AppElement(e, "spnUCMultiPosToSideTop").StandardValue;
      mpIn[3][5] = AppElement(e, "spnUCMultiPosFromTopTop").StandardValue;
  } else {
      mpIn[3][3] = AppElement(e, "spnUCMultiPosForwardTop").StandardValue;
      mpIn[3][4] = AppElement(e, "spnUCToSide").StandardValue;
      mpIn[3][5] = AppElement(e, "spnUCFromTop").StandardValue;
  }
  
  var
	rbSE = AppElement(e, "rbMultiPosSE"),
	rbSR = AppElement(e, "rbMultiPosSR"),
	rbCE = AppElement(e, "rbMultiPosCE"),
	rbCR = AppElement(e, "rbMultiPosCR"),
	spnHits = AppElement(e, "spnUCMultiPosHits"),
	spnLoad = AppElement(e, "spnUCMultiPosLoad"),
	spnVel = AppElement(e, "spnUCMultiPosVel"),
	spnForward = AppElement(e, "spnUCMultiPosForward"),
	spnToSide = AppElement(e, "spnUCMultiPosToSide"),
	spnFromTop = AppElement(e, "spnUCMultiPosFromTop"),
	idx ;
	  
  if (rbSE.checked)
	idx = 0 ;
  if (rbSR.checked)
	idx = 1 ;
  if (rbCE.checked)
	idx = 2 ;
  if (rbCR.checked)
	idx = 3 ;
	
  spnHits.SetValue(mpIn[idx][0]) ;
  spnLoad.SetValue(mpIn[idx][1]) ;
  spnVel.SetValue(mpIn[idx][2]) ;
  
 
  //UPDATED 6/11/08 
  if ((Sender(e) != AppElement(e, "txtMultiPosActuators"))  &&
      (Sender(e) != AppElement(e, "imgMultiPosActuatorsMinus"))&&
      (Sender(e) != AppElement(e, "imgMultiPosActuatorsPlus")) &&
      (Sender(e) != AppElement(e, "rbExtendCap")) &&
      (Sender(e) != AppElement(e, "rbRetractCap")) &&
      (Sender(e) != AppElement(e, "rbExtendAdj")) &&
      (Sender(e) != AppElement(e, "rbRetractAdj"))
      
      )
  {
    spnForward.SetValue(mpIn[idx][3]) ;
    spnToSide.SetValue(mpIn[idx][4]) ;
    spnFromTop.SetValue(mpIn[idx][5]) ;
      
    AppElement(e, "spnUCMultiPosForwardTop").SetValue(mpIn[idx][3]);
    AppElement(e, "spnUCMultiPosToSideTop").SetValue(mpIn[idx][4]);
    AppElement(e, "spnUCMultiPosFromTopTop").SetValue(mpIn[idx][5]);  
    // *******************************************
   }
}


function ToggleMultiShockInputs(e)
{
  var
	x = !(AppElement(e, "txtMultiPosHits").readOnly) ;

  if (x)
  {
	if (!confirm(element("hf6").value))
	  return 0 ;
  }

  var
	btn = AppElement(e, "btnMultiUnlock") ;
	
  if (x)
  {
	btn.value = element("hf7").value ;
	RestoreMultiInputDefaults(e) ;
	InputChanged(e) ;
  }
  else
  {
	btn.value = element("hf8").value ;
  }	
  AppElement(e, "spnUCMultiPosHits").SetReadOnly(x) ;
  AppElement(e, "spnUCMultiPosLoad").SetReadOnly(x) ;
  AppElement(e, "spnUCMultiPosVel").SetReadOnly(x) ;
  AppElement(e, "spnUCMultiPosForward").SetReadOnly(x) ;
  AppElement(e, "spnUCMultiPosToSide").SetReadOnly(x) ;
  AppElement(e, "spnUCMultiPosFromTop").SetReadOnly(x) ;
  
  // ADDED 5/7/08 ******************************
  AppElement(e, "spnUCMultiPosForwardTop").SetReadOnly(!x) ;
  AppElement(e, "spnUCMultiPosToSideTop").SetReadOnly(!x) ;
  AppElement(e, "spnUCMultiPosFromTopTop").SetReadOnly(!x) ;
  // *******************************************
}


function MultiPosChanged(e)
{
  var
	mpIn = (IsApp2(e) ? App2multiPosInputs : multiPosInputs),
	mpIdx = (IsApp2(e) ? App2multiPosIndex : multiPosIndex),
	rbSE = AppElement(e, "rbMultiPosSE"),
	rbSR = AppElement(e, "rbMultiPosSR"),
	rbCE = AppElement(e, "rbMultiPosCE"),
	rbCR = AppElement(e, "rbMultiPosCR"),
	spnHits = AppElement(e, "spnUCMultiPosHits"),
	spnLoad = AppElement(e, "spnUCMultiPosLoad"),
	spnVel = AppElement(e, "spnUCMultiPosVel"),
	spnForward = AppElement(e, "spnUCMultiPosForward"),
	spnToSide = AppElement(e, "spnUCMultiPosToSide"),
	spnFromTop = AppElement(e, "spnUCMultiPosFromTop"),
	newIdx ;

  if (rbSE.checked)
	newIdx = 0 ;
  if (rbSR.checked)
	newIdx = 1 ;
  if (rbCE.checked)
	newIdx = 2 ;
  if (rbCR.checked)
	newIdx = 3 ;
	
  mpIn[mpIdx][0] = spnHits.StandardValue ;
  mpIn[mpIdx][1] = spnLoad.StandardValue ;
  mpIn[mpIdx][2] = spnVel.StandardValue ;
 
 if (AppElement(e, "spnUCMultiPosForward").TxtValue.readOnly)
  {     
     for (var m = 0; m < 4; m++)
     {
     mpIn[m][3] = spnForward.StandardValue ;
     mpIn[m][4] = spnToSide.StandardValue ;
     mpIn[m][5] = spnFromTop.StandardValue ;
     }
  }
  else
  {
    mpIn[mpIdx][3] = spnForward.StandardValue ;
    mpIn[mpIdx][4] = spnToSide.StandardValue ;
    mpIn[mpIdx][5] = spnFromTop.StandardValue ;
    
  }
  
  //*****
  
  
  

  mpIdx = newIdx ;
  
  spnHits.SetValue(mpIn[mpIdx][0]) ;
  spnLoad.SetValue(mpIn[mpIdx][1]) ;
  spnVel.SetValue(mpIn[mpIdx][2]) ;
  spnForward.SetValue(mpIn[mpIdx][3]) ;
  spnToSide.SetValue(mpIn[mpIdx][4]) ;
  spnFromTop.SetValue(mpIn[mpIdx][5]) ;
  
  if (IsApp2(e))
	App2multiPosIndex = mpIdx ;
  else
	multiPosIndex = mpIdx ;
}


function UnitsChanged(e)
{
  var
	metric = AppElement(e, "rbMetric").checked ;
	
  AppElement(e, "spnUCTravel").SetMetric(metric) ;
  AppElement(e, "spnUCLoad").SetMetric(metric) ;
  AppElement(e, "spnUCPress").SetMetric(metric) ;
  
  AppElement(e, "spnUCForward").SetMetric(metric) ;
  AppElement(e, "spnUCToSide").SetMetric(metric) ;
  AppElement(e, "spnUCFromTop").SetMetric(metric) ;  
  
  AppElement(e, "spnUCSFPForward").SetMetric(metric) ;
  AppElement(e, "spnUCSFPToSide").SetMetric(metric) ;
  AppElement(e, "spnUCSFPFromTop").SetMetric(metric) ;
  
  AppElement(e, "spnUCMultiPosLoad").SetMetric(metric) ;
  AppElement(e, "spnUCMultiPosVel").SetMetric(metric) ;
  AppElement(e, "spnUCMultiPosForward").SetMetric(metric) ;
  AppElement(e, "spnUCMultiPosToSide").SetMetric(metric) ;
  AppElement(e, "spnUCMultiPosFromTop").SetMetric(metric) ;
  
  InputChanged(e) ;
}


/*function ResetCG()
{
  fm.txtCGDist.value = "0" ;
  fm.txtForward.value = "0" ;
  fm.txtToSide.value = "0" ;
  fm.txtFromTop.value = "0" ;
}


function ClearCG()
{
  ResetCG() ;
  InputChanged() ;
}*/


function SlideUnitsChanged()
{
  FilterSeries() ;
  
  element("spnSxHMaxLenImp").style.display = (fm.rbImpUnit.checked || fm.rbImpMetUnit.checked ? "inline" : "none") ;
  element("spnSxHMaxLenMet").style.display = (fm.rbMetUnit.checked || fm.rbImpMetUnit.checked ? "inline" : "none") ;
  
  element("spnSTPMaxLenImp").style.display = (fm.rbImpUnit.checked || fm.rbImpMetUnit.checked ? "inline" : "none") ;
  element("spnSTPMaxLenMet").style.display = (fm.rbMetUnit.checked || fm.rbImpMetUnit.checked ? "inline" : "none") ;
  
  element("spnSHPMaxLenImp").style.display = (fm.rbImpUnit.checked || fm.rbImpMetUnit.checked ? "inline" : "none") ;
  element("spnSHPMaxLenMet").style.display = (fm.rbMetUnit.checked || fm.rbImpMetUnit.checked ? "inline" : "none") ;
  
  element("spnSCVMaxLenImp").style.display = (fm.rbImpUnit.checked || fm.rbImpMetUnit.checked ? "inline" : "none") ;
  element("spnSCVMaxLenMet").style.display = (fm.rbMetUnit.checked || fm.rbImpMetUnit.checked ? "inline" : "none") ;
  
  element("spnSFPMaxLenImp").style.display = (fm.rbImpUnit.checked || fm.rbImpMetUnit.checked ? "inline" : "none") ;
  element("spnSFPMaxLenMet").style.display = (fm.rbMetUnit.checked || fm.rbImpMetUnit.checked ? "inline" : "none") ;
  
  element("spnSMMaxLenImp").style.display = (fm.rbImpUnit.checked || fm.rbImpMetUnit.checked ? "inline" : "none") ;
  element("spnSMMaxLenMet").style.display = (fm.rbMetUnit.checked || fm.rbImpMetUnit.checked ? "inline" : "none") ;
  
  element("spnSGMaxLenImp").style.display = (fm.rbImpUnit.checked || fm.rbImpMetUnit.checked ? "inline" : "none") ;
  element("spnSGMaxLenMet").style.display = (fm.rbMetUnit.checked || fm.rbImpMetUnit.checked ? "inline" : "none") ;
  
  element("spnSFMMaxLenImp").style.display = (fm.rbImpUnit.checked || fm.rbImpMetUnit.checked ? "inline" : "none") ;
  element("spnSFMMaxLenMet").style.display = (fm.rbMetUnit.checked || fm.rbImpMetUnit.checked ? "inline" : "none") ;
}

function setImg()
{
if (fm.rbCantilever.checked /*|| fm.rbCantRail.checked*/)
  {
	element("imgRod").src = "images/gif/cantilever.gif" ;
	element("imgRail").src = "images/gif/cantilever_rail.gif" ;
	
	if (fm.rbRail.checked)
	{
	  element("imgHorFlat").src = "images/gif/stp_fl_orien1.gif" ;
	  element("imgHorSide").src = "images/gif/stp_fl_orien2.gif" ;
	  element("imgVertUp").src = "images/gif/stp_fl_orien4.gif" ;
	  element("imgVertDown").src = "images/gif/stp_fl_orien3.gif" ;

	  element("App2imgHorFlat").src = "images/gif/stp_fl_orien1.gif" ;
	  element("App2imgHorSide").src = "images/gif/stp_fl_orien2.gif" ;
	  element("App2imgVertUp").src = "images/gif/stp_fl_orien4.gif" ;
	  element("App2imgVertDown").src = "images/gif/stp_fl_orien3.gif" ;
	}
	else
	{
	  element("imgHorFlat").src = "images/gif/hor_flat.gif" ;
	  element("imgHorSide").src = "images/gif/hor_side.gif" ;
	  element("imgVertUp").src = "images/gif/vert_up.gif" ;
	  element("imgVertDown").src = "images/gif/vert_down.gif" ;

	  element("App2imgHorFlat").src = "images/gif/hor_flat.gif" ;
	  element("App2imgHorSide").src = "images/gif/hor_side.gif" ;
	  element("App2imgVertUp").src = "images/gif/vert_up.gif" ;
	  element("App2imgVertDown").src = "images/gif/vert_down.gif" ;
	}
  }
  else
  {
	element("imgRod").src = "images/gif/saddle.gif" ;
	element("imgRail").src = "images/gif/saddle_rail.gif" ;
	
	if (fm.rbRail.checked)
	{
	  element("imgHorFlat").src = "images/gif/stp_tl_orien1.gif" ;
	  element("imgHorSide").src = "images/gif/stp_tl_orien2.gif" ;
	  element("imgVertUp").src = "images/gif/stp_tl_orien4.gif" ;
	  element("imgVertDown").src = "images/gif/stp_tl_orien3.gif" ;

	  element("App2imgHorFlat").src = "images/gif/stp_tl_orien1.gif" ;
	  element("App2imgHorSide").src = "images/gif/stp_tl_orien2.gif" ;
	  element("App2imgVertUp").src = "images/gif/stp_tl_orien4.gif" ;
	  element("App2imgVertDown").src = "images/gif/stp_tl_orien3.gif" ; 
	}
	else
	{
	  element("imgHorFlat").src = "images/gif/sg_orienStill1.gif" ;
	  element("imgHorSide").src = "images/gif/sg_orienStill2.gif" ;
	  element("imgVertUp").src = "images/gif/sg_orienStill4.gif" ;
	  element("imgVertDown").src = "images/gif/sg_orienStill3.gif" ;

	  element("App2imgHorFlat").src = "images/gif/sg_orienStill1.gif" ;
	  element("App2imgHorSide").src = "images/gif/sg_orienStill2.gif" ;
	  element("App2imgVertUp").src = "images/gif/sg_orienStill4.gif" ;
	  element("App2imgVertDown").src = "images/gif/sg_orienStill3.gif" ;
	}
	
	// added 11/27/07 by JCW to fix some problems.
	if (element("rbSFM").checked == true)
	{
		element("imgHorFlat").src = "images/gif/Rail_Saddle_flat.gif" ;
		element("imgHorSide").src = "images/gif/Rail_Saddle_on_side.gif" ;
		element("imgVertUp").src = "images/gif/Rail_Saddle_above.gif" ;
		element("imgVertDown").src = "images/gif/Rail_Saddle_vert.gif" ;
	
		element("App2imgHorFlat").src = "images/gif/Rail_Saddle_flat.gif" ;
		element("App2imgHorSide").src = "images/gif/Rail_Saddle_on_side.gif" ;
		element("App2imgVertUp").src = "images/gif/Rail_Saddle_above.gif" ;
		element("App2imgVertDown").src = "images/gif/Rail_Saddle_vert.gif" ;
	}
	
	
	
  }
}

function FilterSeries()
{
  var
	x = 0,
	elimSeries = false,
	spnNoSeries = element("spnNoSeries"),
	spnSeriesButtons = element("spnSeriesButtons") ;

  setImg();
  
  ShowAnimation() ;
	
  if (fm.rbCantilever.checked && !fm.rbRail.checked && fm.rb2Pos.checked)
  {
	element("spnSxH").style.display = "inline" ;
	element("spnSCV").style.display = "inline" ;

	x += 2 ;
  }
  else
  {
	element("spnSxH").style.display = "none" ;
	element("spnSCV").style.display = "none" ;

	elimSeries = elimSeries || fm.cbSxH.checked ;
	elimSeries = elimSeries || fm.cbSCV.checked ;

	fm.cbSxH.checked = false ;
	fm.cbSCV.checked = false ;
  }

  if (fm.rbCantilever.checked && !fm.rbRail.checked && !fm.rbMetUnit.checked && !fm.rbMultiPos.checked)
  {
	element("spnSD").style.display = "inline" ;
	x++ ;
  }
  else
  {
	element("spnSD").style.display = "none" ;

	elimSeries = elimSeries || fm.cbSD.checked ;

	fm.cbSD.checked = false ;
  }

  if (fm.rbCantilever.checked && !fm.rbRail.checked && !fm.rbImpUnit.checked && !fm.rbMultiPos.checked)
  {
	element("spnSK").style.display = "inline" ;
	x++ ;
  }
  else
  {
	element("spnSK").style.display = "none" ;

	elimSeries = elimSeries || fm.cbSK.checked ;

	fm.cbSK.checked = false ;
  }

  if (!fm.rbRod.checked && fm.rb2Pos.checked)
  {
	element("spnSHP").style.display = "inline" ;
	element("spnSTP").style.display = "inline" ;

	x += 2 ;
  }
  else
  {
	element("spnSHP").style.display = "none" ;
	element("spnSTP").style.display = "none" ;

	elimSeries = elimSeries || fm.cbSHP.checked ;
	elimSeries = elimSeries || fm.cbSTP.checked ;

	fm.cbSHP.checked = false ;
	fm.cbSTP.checked = false ;
  }

  if (fm.rbSaddle.checked && !fm.rbRail.checked && fm.rb2Pos.checked)
  {
	element("spnSM").style.display = "inline" ;

	x++ ;
  }
  else
  {
	element("spnSM").style.display = "none" ;

	elimSeries = elimSeries || fm.cbSM.checked ;

	fm.cbSM.checked = false ;
  }

  if (fm.rbSaddle.checked && !fm.rbRail.checked && !fm.rbMultiPos.checked)
  {
	element("spnSG").style.display = "inline" ;
	
	// if 3 positions and both imperial and metric, force choice between SFM and SG
		if (element("rb3Pos").checked && element("rbImpMetUnit").checked && element("rbAllBearings").checked)
		{	    
			fm.cbSG.checked = false;
			fm.cbSFM.checked = false;
			
			if (fm.rbSG.checked == false && fm.rbSFM.checked == false)
			{
				fm.rbSG.checked = true;
			}
			
			fm.rbSG.style.display = "inline";
			fm.cbSG.style.display = "none";	        
			
			
		}
		else
		{
			fm.rbSG.checked = false;
			fm.rbSG.style.display = "none";
			fm.cbSG.style.display = "inline";
		}

	x++ ;
  }
  else
  {
	element("spnSG").style.display = "none" ;

	elimSeries = elimSeries || fm.cbSG.checked || fm.rbSG.checked;

	fm.cbSG.checked = false ;
	fm.rbSG.checked = false ;
  }

  if (fm.rbSaddle.checked && !fm.rbRod.checked && !fm.rbImpUnit.checked && fm.rb2Pos.checked)
  {
	element("spnSFP").style.display = "inline" ;

	x++ ;
  }
  else
  {
	element("spnSFP").style.display = "none" ;

	elimSeries = elimSeries || fm.cbSFP.checked ;

	fm.cbSFP.checked = false ;
  }

  if (fm.rbSaddle.checked && !fm.rbRod.checked && !fm.rbImpUnit.checked && !fm.rb2Pos.checked)
  {
	element("spnSFM").style.display = "inline" ;
	
		// if 3 positions and both imperial and metric, force choice between SFM and SG
		if (element("rb3Pos").checked && element("rbImpMetUnit").checked && element("rbAllBearings").checked)
		{
			fm.cbSG.checked = false;
			fm.cbSFM.checked = false;
			
			fm.rbSFM.style.display = "inline";
			fm.cbSFM.style.display = "none";        
		}
		else
		{
			fm.rbSFM.checked = false;
			fm.rbSFM.style.display = "none";	        
			fm.cbSFM.style.display = "inline";
		}

	x++ ;
  } 
  else
  {
	element("spnSFM").style.display = "none" ;
  
	elimSeries = elimSeries || fm.cbSFM.checked || fm.rbSFM.checked ;

	fm.cbSFM.checked = false ;
	fm.rbSFM.checked = false; 
  }  
  
  if (x == 0)
  {
	element("spnNoSeries").style.display = "inline" ;
	element("spnSeriesButtons").style.display = "none" ;
  }
  else
  {
	element("spnNoSeries").style.display = "none" ;
	element("spnSeriesButtons").style.display = "inline" ;
  }

  AllSeries() ; 

  SetOrientation(new DummyEvent("tdHorFlat"), orientName) ;
  SetOrientation(new DummyEvent("App2tdHorFlat"), App2orientName) ;
}

function SFMClick()
{
	element('cbSFM').click();
	
	if (element('rbSFM').style.display == "none") // if invisible
	{
		element('rbSFM').checked = false;
	}
	else // if visible
	{
		element('rbSFM').checked = true;
		trMidpoint.style.display = "none";
	    App2trMidpoint.style.display = "none";	
	}	
	
	
	
	return;
}

function SGClick()
{
	element('cbSG').click();
	if (element('rbSG').style.display == "none") // if invisible
	{
		element('rbSG').checked = false;
	}
	else // if visible
	{
		element('rbSG').checked = true;		
		trMidpoint.style.display = "inline";
	    App2trMidpoint.style.display = "inline";	
	    
	    
	}
	return;
}

function AllSeries()
{
  fm.cbSxH.checked = (element("spnSxH").style.display == "inline") ;
  fm.cbSCV.checked = (element("spnSCV").style.display == "inline") ;
  fm.cbSD.checked = (element("spnSD").style.display == "inline") ;
  fm.cbSFP.checked = (element("spnSFP").style.display == "inline") ;
  fm.cbSFM.checked = (element("spnSFM").style.display == "inline") ;
  fm.cbSG.checked = (element("spnSG").style.display == "inline") ;
  fm.rbSG.checked = (element("spnSG").style.display == "inline") ;
  fm.cbSHP.checked = (element("spnSHP").style.display == "inline") ;
  fm.cbSK.checked = (element("spnSK").style.display == "inline") ;
  fm.cbSM.checked = (element("spnSM").style.display == "inline") ;
  fm.cbSTP.checked = (element("spnSTP").style.display == "inline") ;
	
  FilterInputs() ;
}


function NoSeries()
{
  fm.cbSxH.checked = false ;
  fm.cbSCV.checked = false ;
  fm.cbSD.checked = false ;
  fm.cbSFP.checked = false ;
  fm.cbSFM.checked = false ;
  fm.rbSFM.checked = false ;
  fm.cbSG.checked = false ;
  fm.rbSG.checked = false ;
  fm.cbSHP.checked = false ;
  fm.cbSK.checked = false ;
  fm.cbSM.checked = false ;
  fm.cbSTP.checked = false ;

  FilterInputs() ;
}

function SFPSelected()
{
// the difference between SFPSelected and SFPOnly is
// that SFPSelected doesn't care if other series are checked, 
// as long as SFP is. SFPOnly requires an exclusive SFP selection.
	return (fm.cbSFP.checked);
}


function SFPOnly()
{
  return (!fm.cbSxH.checked
	  && !fm.cbSCV.checked
	  && !fm.cbSD.checked
	  && fm.cbSFP.checked
	  && !fm.cbSFM.checked
	  && !fm.cbSG.checked
	  && !fm.cbSHP.checked
	  && !fm.cbSK.checked
	  && !fm.cbSM.checked
	  && !fm.cbSTP.checked ) ;
}


function SFMOnly()
{
  return (!fm.cbSxH.checked
	  && !fm.cbSCV.checked
	  && !fm.cbSD.checked
	  && !fm.cbSFP.checked
	  && (fm.cbSFM.checked || fm.rbSFM.checked)
	  && !fm.cbSG.checked
	  && !fm.cbSHP.checked
	  && !fm.cbSK.checked
	  && !fm.cbSM.checked
	  && !fm.cbSTP.checked ) ;
}


function NeedCycles()
{
  return true ;    // always needed now for Cv values
}


function AnySeries()
{
  return fm.cbSxH.checked
	|| fm.cbSCV.checked
	|| fm.cbSD.checked
	|| fm.cbSFP.checked
	|| fm.cbSFM.checked
	|| fm.cbSG.checked
	|| fm.cbSHP.checked
	|| fm.cbSK.checked
	|| fm.cbSM.checked
	|| fm.cbSTP.checked 
	|| fm.rbSG.checked
	|| fm.rbSFM.checked;
}


function FilterInputs()
{
  var
	divCGRadios = element("divCGRadios"),
	divSFPCG = element("divSFPCG"),
	divSFMInputs = element("divSFMInputs"),
	divPushPull = element("divPushPull"),
	App2divCGRadios = element("App2divCGRadios"),
	App2divSFPCG = element("App2divSFPCG"),
	App2divSFMInputs = element("App2divSFMInputs"),
	App2divPushPull = element("App2divPushPull") ;

  if (AnySeries())
  {
	while (fm.selImageSet.options.length > 0)
	  fm.selImageSet.removeChild(fm.selImageSet.options[fm.selImageSet.options.length - 1]) ;

	while (fm.App2selImageSet.options.length > 0)
	  fm.App2selImageSet.removeChild(fm.App2selImageSet.options[fm.App2selImageSet.options.length - 1]) ;

	if (fm.cbSxH.checked || fm.cbSCV.checked || fm.cbSD.checked || fm.cbSK.checked)
	{
	  var
		newOpt = document.createElement("option"),
		newOpt2 = document.createElement("option") ;

	  newOpt.value = "set1" ;
	  newOpt.appendChild(document.createTextNode("SCV, SD/SE, SK/SL, SxH/SxL")) ;
	  fm.selImageSet.appendChild(newOpt) ;

	  newOpt2.value = "set1" ;
	  newOpt2.appendChild(document.createTextNode("SCV, SD/SE, SK/SL, SxH/SxL")) ;
	  fm.App2selImageSet.appendChild(newOpt2) ;
	}
	
	if (element("rb3Pos").checked && element("rbImpMetUnit").checked && fm.rbSG.checked && element("rbAllBearings").checked)
	{
		fm.cbSG.checked = false;
		fm.cbSFM.checked = false;
	  var
		newOpt = document.createElement("option"),
		newOpt2 = document.createElement("option") ;

	  newOpt.value = "set4" ;
	  newOpt.appendChild(document.createTextNode("SG/SGxM")) ;
	  fm.selImageSet.appendChild(newOpt) ;

	  newOpt2.value = "set4" ;
	  newOpt2.appendChild(document.createTextNode("SG/SGxM")) ;
	  fm.App2selImageSet.appendChild(newOpt2) ;
	}
	
	if (fm.cbSG.checked )
	{
	  var
		newOpt = document.createElement("option"),
		newOpt2 = document.createElement("option") ;

	  newOpt.value = "set4" ;
	  newOpt.appendChild(document.createTextNode("SG/SGxM")) ;
	  fm.selImageSet.appendChild(newOpt) ;

	  newOpt2.value = "set4" ;
	  newOpt2.appendChild(document.createTextNode("SG/SGxM")) ;
	  fm.App2selImageSet.appendChild(newOpt2) ;
	}
	
	
	if (element("rb3Pos").checked && element("rbImpMetUnit").checked && fm.rbSFM.checked && element("rbAllBearings").checked)
	{
		fm.cbSG.checked = false;
		fm.cbSFM.checked = false;
	  var
		newOpt = document.createElement("option"),
		newOpt2 = document.createElement("option") ;

	  newOpt.value = "set2" ;
	  newOpt.appendChild(document.createTextNode("SFP, SFM")) ;
	  fm.selImageSet.appendChild(newOpt) ;

	  newOpt2.value = "set2" ;
	  newOpt2.appendChild(document.createTextNode("SFP, SFM")) ;
	  fm.App2selImageSet.appendChild(newOpt2) ;
	}
	
	if (fm.cbSFP.checked || fm.cbSFM.checked )
	{
	  var
		newOpt = document.createElement("option"),
		newOpt2 = document.createElement("option") ;

	  newOpt.value = "set2" ;
	  newOpt.appendChild(document.createTextNode("SFP, SFM")) ;
	  fm.selImageSet.appendChild(newOpt) ;

	  newOpt2.value = "set2" ;
	  newOpt2.appendChild(document.createTextNode("SFP, SFM")) ;
	  fm.App2selImageSet.appendChild(newOpt2) ;
	}
	
	
	
	if (fm.cbSM.checked)
	{
	  var
		newOpt = document.createElement("option"),
		newOpt2 = document.createElement("option") ;

	  newOpt.value = "set4b" ;
	  newOpt.appendChild(document.createTextNode("SM")) ;
	  fm.selImageSet.appendChild(newOpt) ;

	  newOpt2.value = "set4b" ;
	  newOpt2.appendChild(document.createTextNode("SM")) ;
	  fm.App2selImageSet.appendChild(newOpt2) ;
	}
	
	if (fm.cbSTP.checked || fm.cbSHP.checked)
	{
	  var
		newOpt = document.createElement("option"),
		newOpt2 = document.createElement("option") ;

	  newOpt.value = (fm.rbCantilever.checked ? "set3" : "set5") ;
	  newOpt.appendChild(document.createTextNode("SHP/SIP, STP")) ;
	  fm.selImageSet.appendChild(newOpt) ;

	  newOpt2.value = (fm.rbCantilever.checked ? "set3" : "set5") ;
	  newOpt2.appendChild(document.createTextNode("SHP/SIP, STP")) ;
	  fm.App2selImageSet.appendChild(newOpt2) ;
	}
	
	element("divSelectImageSet").style.display = (fm.selImageSet.options.length > 1 ? "block" : "none") ;
	element("App2divSelectImageSet").style.display = (fm.App2selImageSet.options.length > 1 ? "block" : "none") ;
  
	element("divApp1").style.display = "block" ;
	element("divResults1").style.display = (fm.cbAuto.checked ? "block" : "none") ;

	element("divApp2").style.display = (fm.rbCompMode.checked ? "block" : "none") ;
	element("divResults2").style.display = (fm.cbAuto.checked && fm.rbCompMode.checked ? "block" : "none") ;

	if (SFPOnly())
	{
	  divPushPull.style.display = "none" ;
	  divCGRadios.style.display = "none" ;
	  divSFPCG.style.display = "block" ;
	  divSFMInputs.style.display = "none" ;
	  
	  // ADDED 5/7/08 ******************************
	  element("trBTop").style.display = "none" ;
	  element("trCTop").style.display = "none" ;
	  element("trJTop").style.display = "none" ;	
	  
	  element("App2trBTop").style.display = "none" ;
	  element("App2trCTop").style.display = "none" ;
	  element("App2trJTop").style.display = "none" ;  	  
	 // ********************************************
	
	  App2divPushPull.style.display = "none" ;
	  App2divCGRadios.style.display = "none" ;
	  App2divSFPCG.style.display = "block" ;
	  App2divSFMInputs.style.display = "none" ;  
	}	
	else if (SFMOnly())
	{
	  divPushPull.style.display = "none" ;
	  divCGRadios.style.display = "none" ;
	  divSFPCG.style.display = "none" ;
	  divSFMInputs.style.display = "block" ;
	  
	  // ADDED 5/7/08 ******************************
	  element("trBTop").style.display = "block" ;
	  element("trCTop").style.display = "block" ;
	  element("trJTop").style.display = "block" ;	
	  
	  element("App2trBTop").style.display = "block" ;
	  element("App2trCTop").style.display = "block" ;
	  element("App2trJTop").style.display = "block" ;   
	  // ******************************************

	  App2divPushPull.style.display = "none" ;
	  App2divCGRadios.style.display = "none" ;
	  App2divSFPCG.style.display = "none" ;
	  App2divSFMInputs.style.display = "block" ;	  
	    
	  
	}
	else if (fm.cbSFP.checked)
	{ // added 12/06/07
		divPushPull.style.display = "none" ;
		divCGRadios.style.display = "block" ;
		divSFPCG.style.display = "block" ;
		App2divSFPCG.style.display = "block" ;
		divSFMInputs.style.display = "none" ;
		
		 // ADDED 5/7/08 ******************************
	    element("trBTop").style.display = "none" ;
	    element("trCTop").style.display = "none" ;
	    element("trJTop").style.display = "none" ;	 
	    
	    element("App2trBTop").style.display = "none" ;
	    element("App2trCTop").style.display = "none" ;
	    element("App2trJTop").style.display = "none" ;  
	    // ********************************************
		
		
	
		App2divPushPull.style.display = "none" ;
		App2divCGRadios.style.display = "block" ;
		App2divSFPCG.style.display = "block" ;
		App2divSFMInputs.style.display = "none" ;
	}
	else
	{
	  divPushPull.style.display = "none" ;
	  
	  divCGRadios.style.display = "block" ;
	  divSFPCG.style.display = "none" ;
	  divSFMInputs.style.display = "none" ;	  
	  
	  App2divPushPull.style.display = "none" ;

	  App2divCGRadios.style.display = "block" ;
	  App2divSFPCG.style.display = "none" ;
	  App2divSFMInputs.style.display = "none" ;
	  
	   // ADDED 5/7/08 ***************
	  element("trBTop").style.display = "none" ;
	  element("trCTop").style.display = "none" ;
	  element("trJTop").style.display = "none" ;	  
	  
	  element("App2trBTop").style.display = "none" ;
	  element("App2trCTop").style.display = "none" ;
	  element("App2trJTop").style.display = "none" ; 
	  // ****************************
	}
   
    
	if (NeedCycles())
	{
	  element("spnCycles").style.display = "" ;   // don't use "inline" here - don't know why
	  element("App2spnCycles").style.display = "" ;   // don't use "inline" here - don't know why
	}
	else
	{
	  element("spnCycles").style.display = "none" ;
	  element("App2spnCycles").style.display = "none" ;
	}

	if (
	   fm.cbSxH.checked
	   )
	{
	  // element("spnOpts").style.display = "inline" ; // AE option is automatic now
	  // element("App2spnOpts").style.display = "inline" ; // AE option is automatic now
	}
	else
	{
	  element("spnOpts").style.display = "none" ;
	  element("App2spnOpts").style.display = "none" ;
	}

	element("spnAE").style.display = (fm.cbSxH.checked ? "inline" : "none") ;
	element("spnQ6").style.display = "none"; 
	element("spnRear").style.display = "none" ;

	element("App2spnAE").style.display = (fm.cbSxH.checked ? "inline" : "none") ;
	element("App2spnQ6").style.display = "none"; 
	element("App2spnRear").style.display = "none" ;

	InputChanged(new DummyEvent("rbImperial")) ;
	InputChanged(new DummyEvent("App2rbImperial")) ;
  }
  else
  {
	element("divApp1").style.display = "none" ;
	element("divResults1").style.display = "none" ;
	
	element("divApp2").style.display = "none" ;
	element("divResults2").style.display = "none" ;
	
//    element("divResultsMsg").innerHTML = "Results..." ;
  }
  // setImg(); // lets see if this works - 11/27/07 JCW
	ImageSetSelect(new DummyEvent("rbImperial")) ;
	ImageSetSelect(new DummyEvent("App2rbImperial")) ;
	
	SFPCGDisplay(new DummyEvent("rbImperial"));
	
  ShowAnimation();
}


function SetOrientation(evt, whichOr)
{
  if (IsApp2(evt))
	App2orientName = whichOr ;
  else
	orientName = whichOr ;
  
  var
	tdHorFlat = AppElement(evt, "tdHorFlat"),
	tdHorSide = AppElement(evt, "tdHorSide"),
	tdVertUp = AppElement(evt, "tdVertUp"),
	tdVertDown = AppElement(evt, "tdVertDown") ;
	
  tdHorFlat.style.backgroundColor = "" ;
  tdHorFlat.style.border = "" ;
  
  tdHorSide.style.backgroundColor = "" ;
  tdHorSide.style.border = "" ;
  
  tdVertUp.style.backgroundColor = "" ;
  tdVertUp.style.border = "" ;
  
  tdVertDown.style.backgroundColor = "" ;
  tdVertDown.style.border = "" ;
  
  switch (whichOr)
  {
	case "HorizontalNormal":
	  tdHorFlat.style.backgroundColor = "#eeeeff" ;
	  tdHorFlat.style.border = "solid 1px gray" ;
	  
	  break ;

	case "HorizontalOnSide":
	  tdHorSide.style.backgroundColor = "#eeeeff" ;
	  tdHorSide.style.border = "solid 1px gray" ;

	  break ;

	case "VerticalUp":
	  tdVertUp.style.backgroundColor = "#eeeeff" ;
	  tdVertUp.style.border = "solid 1px gray" ;

	  break ;

	case "VerticalDown":
	  tdVertDown.style.backgroundColor = "#eeeeff" ;
	  tdVertDown.style.border = "solid 1px gray" ;

	  break ;
  }
	
  if (!SFPOnly())
  {
	var
	  imgCG1 = AppElement(evt, "imgCG1"),
	  imgCG2 = AppElement(evt, "imgCG2"),
	  cant = fm.rbCantilever.checked ; //|| fm.rbCantRail.checked ;
	  
	switch (whichOr)
	{
	  case "HorizontalNormal":
//        imgCG1.src = (cant ? "SALSAH_CGforwardPitch.gif" : "sg_horFlat1.gif") ;
//        imgCG2.src = (cant ? "SALSAH_CGsideRoll.gif" : "sg_horFlat2.gif") ;
		AppElement(evt, "spnCG1").innerHTML = element("hf9").value ;
		AppElement(evt, "spnCG2").innerHTML = element("hf10").value ;
		
		break ;

	  case "HorizontalOnSide":
//        imgCG1.src = (cant ? "SALSAH_CGforwardYaw.gif" : "sg_horSide1.gif") ;
//        imgCG2.src = (cant ? "SALSAH_CGtopRoll.gif" : "sg_horSide2.gif") ;
		AppElement(evt, "spnCG1").innerHTML = element("hf11").value ;
		AppElement(evt, "spnCG2").innerHTML = element("hf12").value ;

		break ;

	  case "VerticalUp":
//        imgCG1.src = (cant ? "SALSAH_CGsideYaw.gif" : "sg_horVer4.gif") ;
//        imgCG2.src = (cant ? "SALSAH_CGtopPitch.gif" : "sg_horVer3.gif") ;
		AppElement(evt, "spnCG1").innerHTML = element("hf13").value ;
		AppElement(evt, "spnCG2").innerHTML = element("hf14").value ;

		break ;

	  case "VerticalDown":
//        imgCG1.src = (cant ? "SALSAH_CGsideYawV.gif" : "sg_horVer2.gif") ;
//        imgCG2.src = (cant ? "SALSAH_CGtopPitchV.gif" : "sg_horVer1.gif") ;
		AppElement(evt, "spnCG1").innerHTML = element("hf15").value ;
		AppElement(evt, "spnCG2").innerHTML = element("hf16").value ;

		break ;
	}
  }
	
  SFPCGDisplay(evt);

  ImageSetSelect(evt) ;
}


function ImageSetSelect(e)
{
  var
	sel = AppElement(e, "selImageSet"),
	horFlat = AppElement(e, "imgHorFlat"),
	horSide = AppElement(e, "imgHorSide"),
	vertUp = AppElement(e, "imgVertUp"),
	vertDown = AppElement(e, "imgVertDown"),
	imgCG1 = AppElement(e, "imgCG1"),
	imgCG2 = AppElement(e, "imgCG2"),
	whichOr ;
	
  if (IsApp2(e))
	whichOr = App2orientName ;
  else
	whichOr = orientName ;
	
  switch(sel.options[sel.selectedIndex].value)
  {
	case "set1":
	  horFlat.src = "images/gif/hor_flat.gif" ;
	  horSide.src = "images/gif/hor_side.gif" ;
	  vertUp.src = "images/gif/vert_up.gif" ;
	  vertDown.src = "images/gif/vert_down.gif" ;
	  
	  switch (whichOr)
	  {
		case "HorizontalNormal":
		  imgCG1.src = "images/gif/SALSAH_CGforwardPitch.gif" ;
		  imgCG2.src = "images/gif/SALSAH_CGsideRoll.gif" ;
		  break ;
		  
		case "HorizontalOnSide":
		  imgCG1.src = "images/gif/SALSAH_CGforwardYaw.gif" ;
		  imgCG2.src = "images/gif/SALSAH_CGtopRoll.gif" ;
		  break ;

		case "VerticalUp":
		  imgCG1.src = "images/gif/SALSAH_CGsideYaw.gif" ;
		  imgCG2.src = "images/gif/SALSAH_CGtopPitch.gif" ;
		  break ;

		case "VerticalDown":
		  imgCG1.src = "images/gif/SALSAH_CGsideYawV.gif" ;
		  imgCG2.src = "images/gif/SALSAH_CGtopPitchV.gif" ;
		  break ;
	  }
		  
	  break ;

	case "set2":
	  horFlat.src = "images/gif/rail_saddle_flat.gif" ;
	  horSide.src = "images/gif/rail_saddle_on_side.gif" ;
	  vertUp.src = "images/gif/rail_saddle_above.gif" ;
	  vertDown.src = "images/gif/rail_saddle_vert.gif" ;

	  switch (whichOr)
	  {
		case "HorizontalNormal":
		  imgCG1.src = "images/gif/sfp_horFlat.gif" ;
		  imgCG2.src = "images/gif/sfp_horFlat.gif" ;
		  break ;
		  
		case "HorizontalOnSide":
		  imgCG1.src = "images/gif/sfp_horSide.gif" ;
		  imgCG2.src = "images/gif/sfp_horSide.gif" ;
		  break ;

		case "VerticalUp":
		  imgCG1.src = "images/gif/sfp_horVer.gif" ;
		  imgCG2.src = "images/gif/sfp_horVer.gif" ;
		  break ;

		case "VerticalDown":
		  imgCG1.src = "images/gif/sfp_horVer.gif" ;
		  imgCG2.src = "images/gif/sfp_horVer.gif" ;
		  break ;
	  }
		  
	  break ;

	case "set3":
	  horFlat.src = "images/gif/stp_fl_orien1.gif" ;
	  horSide.src = "images/gif/stp_fl_orien2.gif" ;
	  vertUp.src = "images/gif/stp_fl_orien4.gif" ;
	  vertDown.src = "images/gif/stp_fl_orien3.gif" ;

	  switch (whichOr)
	  {
		case "HorizontalNormal":
		  imgCG1.src = "images/gif/stp_fl_horFlat1.gif" ;
		  imgCG2.src = "images/gif/stp_fl_horFlat2.gif" ;
		  break ;
		  
		case "HorizontalOnSide":
		  imgCG1.src = "images/gif/stp_fl_horSide1.gif" ;
		  imgCG2.src = "images/gif/stp_fl_horSide2.gif" ;
		  break ;

		case "VerticalUp":
		  imgCG1.src = "images/gif/stp_fl_horVer3.gif" ;
		  imgCG2.src = "images/gif/stp_fl_horVer4.gif" ;
		  break ;

		case "VerticalDown":
		  imgCG1.src = "images/gif/stp_fl_horVer1.gif" ;
		  imgCG2.src = "images/gif/stp_fl_horVer2.gif" ;
		  break ;
	  }
		  
	  break ;

	case "set4":
	  horFlat.src = "images/gif/sg_orienStill1.gif" ;
	  horSide.src = "images/gif/sg_orienStill2.gif" ;
	  vertUp.src = "images/gif/sg_orienStill4.gif" ;
	  vertDown.src = "images/gif/sg_orienStill3.gif" ;
	  
	  switch (whichOr)
	  {
		case "HorizontalNormal":
		  imgCG1.src = "images/gif/sg_horFlat1.gif" ;
		  imgCG2.src = "images/gif/sg_horFlat2.gif" ;
		  break ;
		  
		case "HorizontalOnSide":
		  imgCG1.src = "images/gif/sg_horSide1.gif" ;
		  imgCG2.src = "images/gif/sg_horSide2.gif" ;
		  break ;

		case "VerticalUp":
		  imgCG1.src = "images/gif/sg_horver4.gif" ;
		  imgCG2.src = "images/gif/sg_horver3.gif" ;
		  break ;

		case "VerticalDown":
		  imgCG1.src = "images/gif/sg_horver2.gif" ;
		  imgCG2.src = "images/gif/sg_horver1.gif" ;
		  break ;
	  }
		  
	  break ;

	case "set4b":
	  horFlat.src = "images/gif/sad_hor_flat.gif" ;
	  horSide.src = "images/gif/sad_hor_side.gif" ;
	  vertUp.src = "images/gif/sad_vert_up.gif" ;
	  vertDown.src = "images/gif/sad_vert_down.gif" ;
	  
	  switch (whichOr)
	  {
		case "HorizontalNormal":
		  imgCG1.src = "images/gif/sad_flat_pitch.gif" ;
		  imgCG2.src = "images/gif/sad_flat_roll.gif" ;
		  break ;
		  
		case "HorizontalOnSide":
		  imgCG1.src = "images/gif/sad_side_yaw.gif" ;
		  imgCG2.src = "images/gif/sad_side_roll.gif" ;
		  break ;

		case "VerticalUp":
		case "VerticalDown":
		  imgCG1.src = "images/gif/sad_vert_yaw.gif" ;
		  imgCG2.src = "images/gif/sad_vert_pitch.gif" ;
		  break ;
	  }
		  
	  break ;

	case "set5":
	  horFlat.src = "images/gif/stp_tl_orien1.gif" ;
	  horSide.src = "images/gif/stp_tl_orien2.gif" ;
	  vertUp.src = "images/gif/stp_tl_orien4.gif" ;
	  vertDown.src = "images/gif/stp_tl_orien3.gif" ;
	  
	  switch (whichOr)
	  {
		case "HorizontalNormal":
		  imgCG1.src = "images/gif/stp_tl_horFlat1.gif" ;
		  imgCG2.src = "images/gif/stp_tl_horFlat2.gif" ;
		  break ;
		  
		case "HorizontalOnSide":
		  imgCG1.src = "images/gif/stp_tl_horSide1.gif" ;
		  imgCG2.src = "images/gif/stp_tl_horSide2.gif" ;
		  break ;

		case "VerticalUp":
		  imgCG1.src = "images/gif/stp_tl_horVer4.gif" ;
		  imgCG2.src = "images/gif/stp_tl_horVer3.gif" ;
		  break ;

		case "VerticalDown":
		  imgCG1.src = "images/gif/stp_tl_horVer2.gif" ;
		  imgCG2.src = "images/gif/stp_tl_horVer1.gif" ;
		  break ;
	  }		  
	  break ;
  }
  
  /* if (element("divSelectImageSet").style.display == "none") 
	{
		// App2 should match the first one. I think. JCW 11/27/07
		element("App2imgHorFlat").src = element("imgHorFlat").src;
		element("App2imgHorSide").src = element("imgHorSide").src;
		element("App2imgVertUp").src = element("imgVertUp").src;
		element("App2imgVertDown").src = element("imgVertDown").src;
		element("App2imgCG1").src =  element("imgCG1").src;
		element("App2imgCG2").src =  element("imgCG2").src;
	}*/
  
  ShowAnimation() ;
}


function HorFlatClick(e)
{
  SetOrientation(e, "HorizontalNormal") ;
  InputChanged(e) ;
}


function HorSideClick(e)
{
  SetOrientation(e, "HorizontalOnSide") ;
  InputChanged(e) ;
}


function VertUpClick(e)
{
  SetOrientation(e, "VerticalUp") ;
  InputChanged(e) ;
}


function VertDownClick(e)
{
  SetOrientation(e, "VerticalDown") ;
  InputChanged(e) ;
}


function CG1Click(e)
{
  var
	tdCG1 = AppElement(e, "tdCG1"),
	tdCG2 = AppElement(e, "tdCG2") ;
	
  tdCG1.style.backgroundColor = "#eeeeff" ;
  tdCG1.style.border = "solid 1px gray" ;
  
  tdCG2.style.backgroundColor = "" ;
  tdCG2.style.border = "" ;

  if (IsApp2(e))  
	App2cgDirection = 1 ;
  else
	cgDirection = 1 ;

  SFPCGDisplay(e);	
  InputChanged(e) ;
  ShowAnimation() ;
}


function CG2Click(e)
{
  var
	tdCG1 = AppElement(e, "tdCG1"),
	tdCG2 = AppElement(e, "tdCG2") ;
	
  tdCG1.style.backgroundColor = "" ;
  tdCG1.style.border = "" ;
  
  tdCG2.style.backgroundColor = "#eeeeff" ;
  tdCG2.style.border = "solid 1px gray" ;
  
  if (IsApp2(e))  
	App2cgDirection = 2 ;
  else
	cgDirection = 2 ;

  SFPCGDisplay(e);
  InputChanged(e) ;
  ShowAnimation() ;
}


function AutoClicked()
{
  fm.btnCalc.style.display = (fm.cbAuto.checked ? "none" : "inline") ;

  if (fm.cbAuto.checked)
  {
	InputChanged(new DummyEvent("rbImperial")) ;
	InputChanged(new DummyEvent("App2rbImperial")) ;
  }
  
  var dt = new Date() ;
  dt.setTime(dt.getTime() + (90 * 24 * 60 * 60 * 1000)) ;    // add 90 days

  document.cookie = "AutoCalc=" + fm.cbAuto.checked + "; expires=" + dt.toUTCString() + "; path=/" ;
}


function CalcAll()
{
  Calc(false) ;
  
  if (fm.rbCompMode.checked)
	Calc(true) ;
}




function InputChanged(e)
{ 
  
  if (AppElement(e, "txtMultiPosHits").readOnly)
  {
    
	//RestoreMultiInputDefaults(e) ;
  }
	
  if ((IsApp2(e) && App2busy) || (!IsApp2(e) && busy))
  {
	if (IsApp2(e))
	{
	  App2needCalc = true ;
	}
	else
	{
	  needCalc = true ;
	}
  }
  else
  {
	StartCalc(e) ;
  }
}


function StartCalc(evt)
{
  if ((!IsApp2(evt) && (calcTime == 0)) || (IsApp2(evt) && (App2calcTime == 0)))
  {
	AppElement(evt, "divResultsMsg").innerHTML = "" ;
	window.setTimeout("CalcTimer(" + IsApp2(evt) + ");", 100) ;
  }

  if (!IsApp2(evt))
	calcTime = 10 ;
  else
	App2calcTime = 10 ;
}


function CalcTimer(app2Flg)
{
  if (app2Flg)
	App2calcTime-- ;
  else
	calcTime-- ;

  if ((app2Flg ? App2calcTime : calcTime) > 0)
	window.setTimeout("CalcTimer(" + app2Flg + ");", 100) ;
  else
  {
	if (fm.cbAuto.checked)
	  Calc(app2Flg) ;
	else
	{
	  element("divNoAutoMsg").style.display = "block" ;
	  
	  if (app2Flg)
		element("divResults2").style.display = "none" ;
	  else
		element("divResults1").style.display = "none" ;
	}
  }
}


function Calc(app2Flg)
{
  element("divNoAutoMsg").style.display = "none" ;
  
  var
	dum = new DummyEvent(app2Flg ? "App2rbImperial" : "rbImperial"),
	drm = AppElement(dum, "divResultsMsg"),
	spnLoad = AppElement(dum, "spnUCLoad"),
	spnTravel = AppElement(dum, "spnUCTravel"),
	spnMidpoint = AppElement(dum, "spnUCMidpoint"),
	spnTime = AppElement(dum, "spnUCTime"),
	spnPress = AppElement(dum, "spnUCPress"),
//    spnTemp = AppElement(dum, "spnUCTemp"),
//    spnDefl = AppElement(dum, "spnUCDefl"),
//	spnCGDist = AppElement(dum, "spnUCCGDist"),


	spnForward,
	spnToSide,
	spnFromTop,
	
	//spnSFPForward = AppElement(dum, "spnUCSFPForward"),
	//spnSFPToSide = AppElement(dum, "spnUCSFPToSide"),
	//spnSFPFromTop = AppElement(dum, "spnUCSFPFromTop"),

	spnMPStops = AppElement(dum, "spnUCMultiPosActuators"),	
	flgs = 0,
	cyclesVal = (NeedCycles() ? AppElement(dum, "spnUCCycles").StandardValue : 0),
	forwardVal,
	toSideVal,
	fromTopVal,	
	cgDir = "Forward", 
//	cgDistVal = spnCGDist.StandardValue,
	appOrient = app2Flg ? App2orientName : orientName ;


	
  if (!SFPOnly())
  {
	if (appOrient == "HorizontalNormal" && (cgDirection == 2))
	  cgDir = "ToSide" ;
	else if (appOrient == "HorizontalOnSide" && (cgDirection == 2))
	  cgDir = "FromTop" ;
	else if (appOrient == "VerticalUp" || appOrient == "VerticalDown")
	  cgDir = (cgDirection == 1) ? "ToSide" : "FromTop" ;
  }

	// jcw 12/18/07    
	spnToSide = AppElement(dum, "spnUCToSide");
	spnFromTop = AppElement(dum, "spnUCFromTop");
	
	if (AppElement(dum, "trForward").style.display != "none")
	{
		spnForward = AppElement(dum, "spnUCForward");               
	}
	else
	{
		spnForward = AppElement(dum, "spnUCSFPForward");
	}
	
	if (AppElement(dum, "trToSide").style.display != "none")
	{
		spnToSide = AppElement(dum, "spnUCToSide");               
	}
	else
	{
		spnToSide = AppElement(dum, "spnUCSFPToSide");    
	}
	
	if (AppElement(dum, "trFromTop").style.display != "none")
	{
		spnFromTop = AppElement(dum, "spnUCFromTop");               
	}
	else
	{
		spnFromTop = AppElement(dum, "spnUCSFPFromTop");    
	}

	forwardVal = spnForward.StandardValue; 
	toSideVal = spnToSide.StandardValue;
	fromTopVal = spnFromTop.StandardValue;
  

  drm.style.display = "inline" ;
  drm.innerHTML = element("hf17").value ;
  drm.style.fontStyle = "italic" ;
  drm.style.fontWeight = "normal" ;

  AppElement(dum, "divResultsList").style.display = "none" ;
  AppElement(dum, "tabOuts").style.display = "none" ;

  flgs |= (fm.cbSxH.checked ? 1 : 0) ;
  flgs |= (fm.cbSCV.checked ? 2 : 0) ;
  flgs |= (fm.cbSD.checked ? 4 : 0) ;
  flgs |= (fm.cbSFP.checked ? 8 : 0) ;
  flgs |= (fm.cbSG.checked ? 16 : 0) ;
  flgs |= (fm.rbSG.checked ? 16 : 0) ;
  flgs |= (fm.cbSHP.checked ? 32 : 0) ;
  flgs |= (fm.cbSK.checked ? 64 : 0) ;
  flgs |= (fm.cbSM.checked ? 128 : 0) ;
  flgs |= (fm.cbSTP.checked ? 256 : 0) ;
  flgs |= (fm.cbSFM.checked ? 512 : 0) ;
  flgs |= (fm.rbSFM.checked ? 512 : 0) ;


  if (Language == null) {
      Language = element("UserLanguageStorage").value;
  }
  // adjust lang input to correct name so the picky thing runs...
  if (Language == "en")
      Language = "English"
  else if (Language == "de")
      Language = "German"
  else if (Language == "es")
      Language = "Spanish"

  var
	pl = new SOAPClientParameters() ;
  
  pl.add("AppColumn", (app2Flg ? 2 : 1)) ;
  pl.add("SeriesFlags", flgs) ;
  pl.add("Language", Language);
  pl.add("UnitsSys", fm.rbMetUnit.checked ? "Metric" : "Imperial") ;

//  pl.add("Action", AppElement(dum, "rbPush").checked ? "Extend" : "Retract") ;
  pl.add("Action", appOrient == "VerticalUp" ? "Extend" : "Retract") ;

  pl.add("Orientation", appOrient) ;
  pl.add("Load", spnLoad.StandardValue) ;
  pl.add("Travel", spnTravel.StandardValue) ;
  pl.add("Midpoint", spnMidpoint.StandardValue);
  pl.add("TravelTime", spnTime.StandardValue) ;
  pl.add("Pressure", spnPress.StandardValue) ;
  pl.add("CycleRate", cyclesVal) ;
  pl.add("Temperature", 72.0) ; //spnTemp.StandardValue) ;
  pl.add("MaxDeflection", 99.0) ; //spnDefl.StandardValue) ;

  pl.add("CGDirection", cgDir) ;

  pl.add("CGForward", forwardVal) ;
  pl.add("CGToSide", toSideVal) ;
  pl.add("CGFromTop", fromTopVal) ;

  pl.add("AEOption", AppElement(dum, "cbAE").checked) ;
  pl.add("Q6Option", AppElement(dum, "cbQ6").checked) ;
  pl.add("H11_H12Option", AppElement(dum, "cbH11").checked) ;
//  pl.add("SIPRearPattern", AppElement(dum, "cbRear").checked) ;
  pl.add("SIPRearPattern", fm.rbSaddle.checked) ;
  
  

  pl.add("MultiPosMidStops", spnMPStops.StandardValue) ;
  pl.add("MultiPosAdjustStopExtend", AppElement(dum, "rbExtendAdj").checked) ;
  pl.add("MultiPosAdjustStopRetract", AppElement(dum, "rbRetractAdj").checked) ;
  
  var
	mpIn = (app2Flg ? App2multiPosInputs : multiPosInputs) ;

  pl.add("MultiPosSEHitsPerCycle", mpIn[0][0]) ;
  pl.add("MultiPosSEMaxLoad", mpIn[0][1]) ;
  pl.add("MultiPosSEMaxAvgVelocity", mpIn[0][2]) ;
  pl.add("MultiPosSECGForward", mpIn[0][3]) ;
  pl.add("MultiPosSECGToSide", mpIn[0][4]) ;
  pl.add("MultiPosSECGFromTop", mpIn[0][5]) ;
  
  pl.add("MultiPosSRHitsPerCycle", mpIn[1][0]) ;
  pl.add("MultiPosSRMaxLoad", mpIn[1][1]) ;
  pl.add("MultiPosSRMaxAvgVelocity", mpIn[1][2]) ;
  pl.add("MultiPosSRCGForward", mpIn[1][3]) ;
  pl.add("MultiPosSRCGToSide", mpIn[1][4]) ;
  pl.add("MultiPosSRCGFromTop", mpIn[1][5]) ;
  
  pl.add("MultiPosCEHitsPerCycle", mpIn[2][0]) ;
  pl.add("MultiPosCEMaxLoad", mpIn[2][1]) ;
  pl.add("MultiPosCEMaxAvgVelocity", mpIn[2][2]) ;
  pl.add("MultiPosCECGForward", mpIn[2][3]) ;
  pl.add("MultiPosCECGToSide", mpIn[2][4]) ;
  pl.add("MultiPosCECGFromTop", mpIn[2][5]) ;
  
  pl.add("MultiPosCRHitsPerCycle", mpIn[3][0]) ;
  pl.add("MultiPosCRMaxLoad", mpIn[3][1]) ;
  pl.add("MultiPosCRMaxAvgVelocity", mpIn[3][2]) ;
  pl.add("MultiPosCRCGForward", mpIn[3][3]) ;
  pl.add("MultiPosCRCGToSide", mpIn[3][4]) ;
  pl.add("MultiPosCRCGFromTop", mpIn[3][5]) ;
  
  pl.add("ThreePosition", fm.rb3Pos.checked) ;
  
  if (app2Flg)
  {
	App2needCalc = false ;
	App2busy = true ;
  }
  else
  {
	needCalc = false ;
	busy = true ;
  }

  document.body.style.cursor = "wait" ;

	SOAPClient.invoke("SlideService.asmx", "ListSlides", pl, true, list_callback) ;

}


var
  inputsId = 0,
  App2inputsId = 0 ;

function list_callback(r)
{
  if (r)
  {
	var
	  dum = new DummyEvent(r.appColumn == 1 ? "rbImperial" : "App2rbImperial") ;
	  
	if (!IsApp2(dum))
	  busy = false ;
	else
	  App2busy = false ;
	  
	if (!busy && !App2busy)
	  document.body.style.cursor = "default" ;
	  
	if ((!IsApp2(dum) && needCalc) || (IsApp2(dum) && App2needCalc))
	{
	  StartCalc(dum) ;
	  return ;
	}

	if (!IsApp2(dum))
	  inputsId = r.inputsId ;
	else
	  App2inputsId = r.inputsId ;

	var
	  sr = AppElement(dum, "selResults"),
	  series = "",
	  optGroup,
	  srSels = new Array(),
	  selCount = 0 ;

	for (var m = 0; m < sr.options.length; m++)
	{
	  if (sr.options[m].selected)
	  {
		srSels[selCount] = sr.options[m].value ;
		selCount++ ;
	  }
	}

	sr.innerHTML = "" ;

	for (var i = 0; i < r.slideList.length; i++)
	{

	    var langStatus = "";


	    var sld = r.slideList[i];
		var srs = (r.slideList[i].s.substring(0,2) == "Sx" ? "SxH/SxL" : r.slideList[i].s);
		var note = (sld.w.n != null ? (sld.w.n.length > 38 ? sld.w.n.substring(0, 35) + "..." : sld.w.n) : "");

		// rename status varialbes per languate state
		// check lang setting
		if (Language == null) {
		    Language = element("UserLanguageStorage").value;
		}
		// adjust lang input to correct name so the picky thing runs...
		if (Language == "English") {
		    if (sld.w.s == "Successful") {
		        langStatus = "Successful";
		    }
		    if (sld.w.s == "Marginal") {
		        langStatus = "Marginal";
		    }
		    if (sld.w.s == "Failed") {
		        langStatus = "Failed";
		    }
		}
		else if (Language == "German") {
		    if (sld.w.s == "Successful") {
		        langStatus = "Erfolgreich";
		    }
		    if (sld.w.s == "Marginal") {
		        langStatus = "Grenzwertig";
		    }
		    if (sld.w.s == "Failed") {
		        langStatus = "Fehlgeschlagen";
		    }
		}
		else if (Language == "Spanish") {
		    if (sld.w.s == "Successful") {
		        langStatus = "Exitoso";
		    }
		    if (sld.w.s == "Marginal") {
		        langStatus = "Marginale";
		    }
		    if (sld.w.s == "Failed") {
		        langStatus = "Falla";
		    }
		}

		//var ot = sld.n + " - " + sld.w.s + (sld.w.n != null ? " (" + note + ")" : "") ;
		var ot = sld.n + " - " + langStatus + (sld.w.n != null ? " (" + note + ")" : "");

	  if (AppElement(dum, "cbShowFailed").checked || (AppElement(dum, "cbShowMarginal").checked && sld.w.s != "Failed") || (sld.w.s == "Successful"))
	  {
		if (srs != series)
		{
		  series = srs ;

		  var
			optGroup = document.createElement("optgroup") ;

		  optGroup.label = series + "..." ;

		  sr.appendChild(optGroup) ;
		}

		var
		  opt = document.createElement("option") ;

		opt.value = sld.s + ":" + sld.n ;
		opt.appendChild(document.createTextNode(ot)) ;

		optGroup.appendChild(opt) ;
	  }
	}

	var
	  numSel = 0 ;
		
	if (srSels.length > 0)
	{
	  for (var n = 0; n < sr.options.length; n++)
	  {
		for (var p = 0; p < srSels.length; p++)
		{
		  if (sr.options[n].value == srSels[p])
		  {
			numSel++ ;

			sr.options[n].selected = true ;
			break ;
		  }
		}
	  }
	}

	if (sr.options.length > 0)
	{
	  if (numSel == 0)
	  {
		try
		{
		  sr.options[0].selected = true ;
		}
		catch (e)
		{
//          alert(e.message) ;
		}
	  }
	  
	  SlideSelected(dum) ;
	}
	
	if (!IsApp2(dum))
	  element("divResults1").style.display = "block" ;
	else
	  element("divResults2").style.display = "block" ;
	
	AppElement(dum, "divResultsMsg").style.display = "none" ;
	AppElement(dum, "divResultsList").style.display = "block" ;
  }
  else
	alert("No response from ListSlides.") ;
}


function SlideSelected(e)
{
  var
	tabOuts = AppElement(e, "tabOuts") ;
	
  while (tabOuts.rows.length > 0)
	tabOuts.deleteRow(0) ;

  tabOuts.style.display = "inline" ;

  if (IsApp2(e))
  {
	App2nextSlideIndex = 0 ;
	App2colCount = 0 ;
	App2selUrlParams = "" ;
  }
  else
  {
	nextSlideIndex = 0 ;
	colCount = 0 ;
	selUrlParams = "" ;
  }

  element("btnPrint").disabled = true ;
  
  NextSlideSelection(e, true) ;
}


var
  nextSlideIndex,
  colCount,
  selUrlParams,

  App2nextSlideIndex,
  App2colCount,
  App2selUrlParams ;

function NextSlideSelection(evt, first)
{
  var
	sr = AppElement(evt, "selResults"),
	slideOpt,
	nx = (IsApp2(evt) ? App2nextSlideIndex : nextSlideIndex) ;

  if (nx < sr.options.length)
  {
	slideOpt = sr.options[nx] ;
	
	if (IsApp2(evt))
	  App2nextSlideIndex++ ;
	else
	  nextSlideIndex++ ;

	if ((slideOpt.selected) && (/(\w+)\:(.+)/.test(slideOpt.value)))
	{
	  if (IsApp2(evt))
		App2colCount++ ;
	  else
		colCount++ ;

	  var
		pl = new SOAPClientParameters() ;

	  pl.add("first", first) ;
	  pl.add("appColumn", (IsApp2(evt) ? 2 : 1)) ;
	  pl.add("inputsId", (IsApp2(evt) ? App2inputsId : inputsId)) ;
	  pl.add("series", RegExp.$1) ;
	  pl.add("name", RegExp.$2) ;
	  
	  if (IsApp2(evt))
		App2selUrlParams += "&s" + App2colCount + "=" + escape(RegExp.$2) ;
	  else
		selUrlParams += "&s" + colCount + "=" + escape(RegExp.$2) ;

	  document.body.style.cursor = "wait" ;

	  SOAPClient.invoke("SlideService.asmx", "GetSlide", pl, true, get_slide_callback) ;

	}
	else
	{
	  if ((IsApp2(evt) ? App2colCount : colCount) < 3)
		NextSlideSelection(evt, first) ;
	  else
		finishResultsTable(evt) ;
	}
  }
  else
	finishResultsTable(evt) ;
}


function finishResultsTable(e)
{
  try
  {
	var
	  tabOuts = AppElement(e, "tabOuts"),
	  lastCol = tabOuts.rows[0].cells.length ;

  //  alert(tabOuts.rows[0].cells[1].style.backgroundColor) ;
  //  tabOuts.rows[0].cells[0].style.backgroundColor = tabOuts.rows[0].cells[1].style.backgroundColor ;
		
	for (var i = 1; i < tabOuts.rows.length; i++)
	{
	  while (tabOuts.rows[i].cells.length < lastCol)
	  {
		tabOuts.rows[i].insertCell(tabOuts.rows[i].cells.length) ;
	  }
	  
	  for (var j = 0; j < tabOuts.rows[i].cells.length; j++)
	  {
		tabOuts.rows[i].cells[j].style.backgroundColor = tabOuts.rows[i-1].cells[j].style.backgroundColor ;
		
		if (j == 0)
		{
		tabOuts.rows[i].cells[j].className = "leftCol";
		}
		else
		{
		tabOuts.rows[i].cells[j].className = "rightCol";
		}
		
	  }
	}
  }
  catch(ex1)
  {
	// ingore this error
  }
  
  element("btnPrint").disabled = false ;
}


function get_slide_callback(r)
{
  if (r)
  {
	var
	  dum = new DummyEvent(r.a == 1 ? "rbImperial" : "App2rbImperial") ;
	  
	AddSlideToOutputTable(r, (r.a == 1 ? colCount : App2colCount), AppElement(dum, "rbMetric").checked) ;

	if ((r.a == 1 ? colCount : App2colCount) < 3)
	  NextSlideSelection(dum, false) ;
	else
	  finishResultsTable(dum) ;
  }

  document.body.style.cursor = "default" ;
}


function FailedClick(e)
{
  var
	cbFail = AppElement(e, "cbShowFailed"),
	cbMarg = AppElement(e, "cbShowMarginal") ;
	
  if (cbFail.checked)
	cbMarg.checked = true ;

  cbMarg.disabled = cbFail.checked ;

  InputChanged(e) ;
}


function MarginalClick(e)
{
  InputChanged(e) ;
}

var tabOuts;
function PrintClick()
{
//  fm.style.display = "none" ;
//  element("divPrint").style.display = "block" ;
  tabOuts = element("tabOuts");
  var divOuts = element("divOuts");
  var
	printWin = window.open("print.aspx?" 
		+ "app1=" + inputsId
		+ "&app2=" + (fm.rbCompMode.checked ? App2inputsId : "-1")
		
		) ;  
}


function DoneClick()
{
  element("divPrint").style.display = "none" ;
  fm.style.display = "block" ;
}


function CopyClick()
{
  if (window.clipboardData)
  {
	var
	  s = document.title + "\r\n\r\n\r\n" + element("hf18").value + "\r\n\r\n",
	  orDesc = "" ;
	  
	switch (orientName)
	{
	  case "HorizontalNormal": orDesc = element("hf19").value; break ;
	  case "HorizontalOnSide": orDesc = element("hf20").value; break ;
	  case "VerticalUp": orDesc = element("hf21").value; break ;
	  case "VerticalDown": orDesc = element("hf22").value; break ;
	}
	
	s += element("hf23").value + ":\t" + orDesc + "\r\n" ;
	s += element("hf24").value + ":\t" + element("spnUCTravel").DisplayValue() + "\r\n" ;
	s += element("hf25").value + ":\t" + element("spnUCLoad").DisplayValue() + "\r\n" ;
	s += element("hf26").value + ":\t" + element("spnUCTime").DisplayValue() + "\r\n" ;
	s += element("hf27").value + ":\t" + element("spnUCPress").DisplayValue() + "\r\n" ;
//    s += "Temperature:\t" + element("spnUCTemp").DisplayValue() + "\r\n" ;
//    s += "Max. Deflection:\t" + element("spnUCDefl").DisplayValue() + "\r\n" ;
	s += element("hf28").value + ":\t" + element("spnUCCycles").DisplayValue() + "\r\n" ;
	s += element("hf29").value + ":\t" + (element("rbPush").checked ? element("hf30").value : element("hf31").value) + "\r\n" ;

	if (SFPSelected())
	{
	  s += element("hf32").value + "\r\n" ;
	  
	  s += element("hf33").value + " (b):\t" + element("spnUCSFPForward").DisplayValue() + "\r\n" ;
	  s += element("hf34").value + " (j):\t" + element("spnUCSFPToSide").DisplayValue() + "\r\n" ;
	  s += element("hf35").value + " (c):\t" + element("spnUCSFPFromTop").DisplayValue() + "\r\n" ;
	}
	else
	{ // TO DO: figure out what this is doing and fix it so it works with the new CG calcs.
	  if (element("trForward").style.display != "none") 
	  {
		  s += element("hf33").value + " (b):\t" + element("spnUCForward").DisplayValue() + "\r\n" ;
	  }
	  else if (element("trToSide").style.display != "none") 
	  {
		s += element("hf34").value + " (j):\t" + element("spnUCToSide").DisplayValue() + "\r\n" ;
	  }
	  else if (element("trFromTop").style.display != "none")
	  {
		s += element("hf35").value + " (c):\t" + element("spnUCFromTop").DisplayValue() + "\r\n" ;
	  }
	}
	
	if (element("spnOpts").style.display == "inline")
	{
	  if (
		fm.cbAE.checked
		|| fm.cbH11.checked
		|| fm.cbQ6.checked
		|| fm.cbRear.checked )
	  {
		s += element("hf37").value + "...\r\n" ;
		
		if (fm.cbAE.checked)
		  s += "\t" + element("hf38").value + "\r\n" ;
		
		if (fm.cbH11.checked)
		  s += "\t" + element("hf39").value + "\r\n" ;

		if (fm.cbQ6.checked)
		  s += "\t" + element("hf40").value + "\r\n" ;

		if (fm.cbRear.checked)
		  s += "\t" + element("hf41").value + "\r\n" ;
	  }
	}

	s += "\r\n\r\n" + element("hf42").value + ":\r\n" ;
	
	var
	  tabOuts = element("tabOuts") ;
	  
	for (var j = 0; j < tabOuts.childNodes.length; j++)
	{
	  var
		outX = tabOuts.childNodes[j] ;
		
	  for (var k = 0; k < outX.childNodes.length; k++)
	  {
		s += "\r\n" ;
	  
		var
		  outRow = outX.childNodes[k] ;
		  
		for (var m = 0; m < outRow.childNodes.length; m++)
		{
		  var
			outCell = outRow.childNodes[m] ;
		  
		  for (var n = 0; n < outCell.childNodes.length; n++)
		  {
			var
			  outNode = outCell.childNodes[n] ;
			  
			if (outNode.nodeType == 3)
			{
			  if (outNode.nodeValue != " ")
				s += outNode.nodeValue + "\t" ;
			}
			else
			{
			  if (outNode.DisplayValue)
			  {
				s+= outNode.DisplayValue() + "\t" ;
			  }
			}
		  }
		}
	  }
	}
	
	window.clipboardData.setData("Text", s);
	alert(element("hf43").value) ;
  }
  else
	alert(element("hf44").value) ;
}


function CompModeClick()
{
  var
	dum = new DummyEvent("App2rbImperial") ;
	
  App2orientName = orientName ;
  App2cgDirection = cgDirection ;

  fm.App2rbImperial.checked = fm.rbImperial.checked ;
  fm.App2rbMetric.checked = fm.rbMetric.checked ;
  
  UnitsChanged(dum) ;

  fm.App2rbPush.checked = fm.rbPush.checked ;
  fm.App2rbPull.checked = fm.rbPull.checked ;

  fm.App2cbAE.checked = fm.cbAE.checked ;
  fm.App2cbH11.checked = fm.cbH11.checked ;
  fm.App2cbQ6.checked = fm.cbQ6.checked ;
  fm.App2cbRear.checked = fm.cbRear.checked ;
  
  fm.App2cbShowFailed.checked = fm.cbShowFailed.checked ;
  fm.App2cbShowMarginal.checked = fm.cbShowMarginal.checked ;
  fm.App2cbShowMarginal.disabled = fm.cbShowMarginal.disabled ;
  
  
  setApp2(
  element("App2imgTravelMinus"), 
  element("App2txtTravel"), 
  element("App2imgTravelPlus"), 
  element("App2spnUCTravel"), 
  element("spnUCTravel") 
  ); // testing new function
  //Exited(new DummyEvent("App2txtTravel")) ;  
  
   setApp2(
   element("App2imgLoadMinus"), 
   element("App2txtLoad"), 
   element("App2imgLoadPlus"), 
   element("App2spnUCLoad"), 
   element("spnUCLoad") 
   ); // testing new function
  //Exited(new DummyEvent("App2txtLoad")) ;  
  
   setApp2(
   element("App2imgTimeMinus"), 
   element("App2txtTime"), 
   element("App2imgTimePlus"), 
   element("App2spnUCTime"), 
   element("spnUCTime") 
   ); // testing new function
  //Exited(new DummyEvent("App2txtTime")) ;  
  
 setApp2(
 element("App2imgPressMinus"), 
 element("App2txtPress"), 
 element("App2imgPressPlus"), 
 element("App2spnUCPress"), 
 element("spnUCPress") 
 ); // testing new function
 //Exited(new DummyEvent("App2txtPress")) ;  
 
 setApp2(
 element("App2imgCyclesMinus"), 
 element("App2txtCycles"), 
 element("App2imgCyclesPlus"), 
 element("App2spnUCCycles"), 
 element("spnUCCycles") 
 ); // testing new function
// Exited(new DummyEvent("App2txtCycles")) ;  
 
 setApp2(
 element("App2imgForwardMinus"), 
 element("App2txtForward"), 
 element("App2imgForwardPlus"), 
 element("App2spnUCForward"), 
 element("spnUCForward") 
 ); // testing new function
// Exited(new DummyEvent("App2txtForward")) ; 
  
 setApp2(
 element("App2imgToSideMinus"), 
 element("App2txtToSide"), 
 element("App2imgToSidePlus"), 
 element("App2spnUCToSide"), 
 element("spnUCToSide") 
 ); // testing new function
// Exited(new DummyEvent("App2txtToSide")) ; 

 
 setApp2(
 element("App2imgFromTopMinus"), 
 element("App2txtFromTop"), 
 element("App2imgFromTopPlus"), 
 element("App2spnUCFromTop"), 
 element("spnUCFromTop") 
 ); // testing new function
// Exited(new DummyEvent("App2txtFromTop")) ; 
  
  
 setApp2(
 element("App2imgMultiPosForwardMinusTop"), 
 element("App2txtMultiPosForwardTop"), 
 element("App2imgMultiPosForwardPlusTop"), 
 element("App2spnUCMultiPosForwardTop"), 
 element("spnUCMultiPosForwardTop") 
 ); // testing new function
 var x = element("txtMultiPosForwardTop").readOnly ; 
 element("App2spnUCMultiPosForwardTop").SetReadOnly(x);
 //Exited(new DummyEvent("App2txtMultiPosForwardTop")) ; 
  
 setApp2(
 element("App2imgMultiPosToSideMinusTop"), 
 element("App2txtMultiPosToSideTop"), 
 element("App2imgMultiPosToSidePlusTop"), 
 element("App2spnUCMultiPosToSideTop"), 
 element("App2txtMultiPosToSideTop") 
 ); // testing new function
 var x = element("txtMultiPosToSideTop").readOnly ; 
 element("App2spnUCMultiPosToSideTop").SetReadOnly(x);
// Exited(new DummyEvent("App2txtMultiPosToSideTop")) ; 


 x = element("txtMultiPosFromTopTop").readOnly ; 
 setApp2(
 element("App2imgMultiPosFromTopMinusTop"), 
 element("App2txtMultiPosFromTopTop"), 
 element("App2imgMultiPosFromTopPlusTop"), 
 element("App2spnUCMultiPosFromTopTop"), 
 element("spnUCMultiPosFromTopTop") 
 ); // testing new function
// Exited(new DummyEvent("App2txtMultiPosFromTopTop")) ; 
 element("App2spnUCMultiPosFromTopTop").SetReadOnly(x); 
 
  
 setApp2(
 element("App2imgSFPForwardMinus"), 
 element("App2txtSFPForward"), 
 element("App2imgSFPForwardPlus"), 
 element("App2spnUCSFPForward"), 
 element("spnUCSFPForward") 
 ); // testing new function
 //Exited(new DummyEvent("App2txtSFPForward")) ;
 
 setApp2(
 element("App2imgSFPToSideMinus"), 
 element("App2txtSFPToSide"), 
 element("App2imgSFPToSidePlus"), 
 element("App2spnUCSFPToSide"), 
 element("spnUCSFPToSide") 
 ); // testing new function
// Exited(new DummyEvent("App2txtSFPToSide")) ;


 setApp2(
 element("App2imgSFPFromTopMinus"), 
 element("App2txtSFPFromTop"), 
 element("App2imgSFPFromTopPlus"), 
 element("App2spnUCSFPFromTop"), 
 element("spnUCSFPFromTop") 
 ); // testing new function
 //Exited(new DummyEvent("App2txtSFPFromTop")) ;   
  
  var x = element("txtMultiPosHits").readOnly ;   
  setApp2(
 element("App2imgMultiPosHitsMinus"), 
 element("App2txtMultiPosHits"), 
 element("App2imgMultiPosHitsPlus"), 
 element("App2spnUCMultiPosHits"), 
 element("spnUCMultiPosHits") 
 ); // testing new function
 // Exited(new DummyEvent("App2txtMultiPosHits")) ;
  element("App2spnUCMultiPosHits").SetReadOnly(x); 
  
  x = element("txtMultiPosLoad").readOnly ; 
  setApp2(
  element("App2imgMultiPosLoadMinus"), 
  element("App2txtMultiPosLoad"), 
  element("App2imgMultiPosLoadPlus"), 
  element("App2spnUCMultiPosLoad"), 
  element("spnUCMultiPosLoad") 
  ); // testing new function
 // Exited(new DummyEvent("App2txtMultiPosLoad")) ;
  element("App2spnUCMultiPosLoad").SetReadOnly(x); 
  
  x = element("txtMultiPosVel").readOnly ; 
  setApp2(
  element("App2imgMultiPosVelMinus"), 
  element("App2txtMultiPosVel"), 
  element("App2imgMultiPosVelPlus"), 
  element("App2spnUCMultiPosVel"), 
  element("spnUCMultiPosVel") 
  ); // testing new function
//  Exited(new DummyEvent("App2txtMultiPosVel")) ;
  element("App2spnUCMultiPosVel").SetReadOnly(x); 
  
  x = element("txtMultiPosForward").readOnly ; 
  setApp2(
  element("App2imgMultiPosForwardMinus"), 
  element("App2txtMultiPosForward"), 
  element("App2imgMultiPosForwardPlus"), 
  element("App2spnUCMultiPosForward"), 
  element("spnUCMultiPosForward") 
  ); // testing new function
 // Exited(new DummyEvent("App2txtMultiPosForward")) ;
  element("App2spnUCMultiPosForward").SetReadOnly(x);
  
  x = element("txtMultiPosToSide").readOnly ; 
  setApp2(
  element("App2imgMultiPosToSideMinus"), 
  element("App2txtMultiPosToSide"), 
  element("App2imgMultiPosToSidePlus"), 
  element("App2spnUCMultiPosToSide"), 
  element("spnUCMultiPosToSide") 
  ); // testing new function
 // Exited(new DummyEvent("App2txtMultiPosToSide")) ;
  element("App2spnUCMultiPosToSide").SetReadOnly(x);

  x = element("txtMultiPosFromTop").readOnly ; 
  setApp2(
  element("App2imgMultiPosFromTopMinus"), 
  element("App2txtMultiPosFromTop"), 
  element("App2imgMultiPosFromTopPlus"), 
  element("App2spnUCMultiPosFromTop"), 
  element("spnUCMultiPosFromTop") 
  ); // testing new function
 // Exited(new DummyEvent("App2txtMultiPosFromTop")) ; 
  element("App2spnUCMultiPosFromTop").SetReadOnly(x);  
  
  /*x = element("txtMultiPosFromTop").readOnly ; 
  setApp2(
  element("App2imgMultiPosFromTopMinus"), 
  element("App2txtMultiPosFromTop"), 
  element("App2imgMultiPosFromTopPlus"), 
  element("App2spnUCMultiPosFromTop"), 
  element("spnUCMultiPosFromTop") 
  ); // testing new function
  Exited(new DummyEvent("App2txtMultiPosFromTop")) ; 
  element("App2spnUCMultiPosFromTop").SetReadOnly(x);  
  */ 
  SetOrientation(dum, orientName) ;
  
  if (cgDirection == 1)
	CG1Click(dum) ;
  else
	CG2Click(dum) ;
  
  element("divApp2").style.display = (AnySeries() ? "block" : "none") ;
  
  element("divApp1").style.width = "360px" ;
  element("divApp1").style.height = "" ;

  element("divInputs1").style.width = "350px" ;
  
  var
	dr1 = element("divResults1") ;
  
  dr1.style.width = "350px" ;
  dr1.style.marginLeft = "" ;
  dr1.style.marginTop = "3px" ;
  
  element("selResults").style.width = "330px" ;
  
  HideAnimations() ;

}


function StdModeClick()
{
	if (document.body.clientWidth<=800)
	{
		CompModeClick();
		element("divApp2").style.display="none";
	}
	else
	{
		element("divApp2").style.display = "none" ;
		element("divApp1").style.width = "730px" ;
		element("divApp1").style.height = "737px" ;
		element("divInputs1").style.width = "290px" ;
		var dr1 = element("divResults1") ;
		dr1.style.width = "420px" ;
		dr1.style.marginLeft = "3px" ;
		dr1.style.marginTop = "" ;
  
		element("selResults").style.width = "400px" ;
	}
	ShowAnimation() ;  
	return;
}


function HideAnimations()
{
  // set 1...
  element("pDiaCantHorPitch").style.display = "none" ;
}


function OLDAnimationObject(swf)
{
  return "<object height=\"200px\" width=\"200px\">" +
	  "<param name=\"movie\" value=\"" + "images\\Flash\\" + swf + "\" />" +
	  "<embed src=\"" + "images\\Flash\\" + swf + "\" width=\"200px\" height=\"200px\">" +
	  "</embed></object>" ;
}

function ShowAnimation()
{
	HideAnimations() ;
	if (fm.rbStdMode.checked)
	{
		element("pDiaCantHorPitch").style.display = "block" ;
	
		var sel = element("selImageSet");
		var setName;
	
		setName = sel.options[sel.selectedIndex].value ;	
		if (fm.rbCantilever.checked /*|| fm.rbCantRail.checked*/)
		{
			switch (orientName)
			{
				case "HorizontalNormal":
					if (setName == "set1")
					{
						if (cgDirection == 1)
						{
							AnimationObject("SAL_SAH_HorizPitch.swf") ;
							selectedFlash = "SAL_SAH_HorizPitch.swf";
						}
						else
						{
							AnimationObject("SAL_SAH_HorizRoll.swf") ;
							selectedFlash = "SAL_SAH_HorizRoll.swf";
						}
					}
					else
					{
						if (cgDirection == 1)
						{
							AnimationObject("STP_SADDLE_Hor_Pitch.swf") ;
							selectedFlash = "STP_SADDLE_Hor_Pitch.swf";
						}
						else
						{
							AnimationObject("STP_SADDLE_Hor_Roll.swf") ;
							selectedFlash = "STP_SADDLE_Hor_Roll.swf";
						}
					}
					break ;

				case "HorizontalOnSide":
					if (setName == "set1")
					{
						if (cgDirection == 1)
						{
							AnimationObject("SAL_SAH_HorizYaw.swf") ;
							selectedFlash = "SAL_SAH_HorizYaw.swf";
						}
						else
						{
							AnimationObject("SAL_SAH_Side.swf") ;
							selectedFlash = "SAL_SAH_Side.swf";
						}
					}
					else
					{
						if (cgDirection == 1)
						{
							AnimationObject("STP_SADDLE_Hor_Yaw.swf") ;
							selectedFlash = "STP_SADDLE_Hor_Yaw.swf";
						}
						else
						{
							AnimationObject("STP_SADDLE_Hor_SIDE.swf") ;
							selectedFlash = "STP_SADDLE_Hor_SIDE.swf";
						}
					}
					break ;

				case "VerticalUp":
					if (setName == "set1")
					{
						if (cgDirection == 1)
						{
							AnimationObject("SAL_SAH_VertYawPUSHUP.swf") ;
							selectedFlash = "SAL_SAH_VertYawPUSHUP.swf";
						}
						else
						{
							AnimationObject("SAL_SAH_VertPitchPUSHUP.swf") ;
							selectedFlash = "SAL_SAH_VertPitchPUSHUP.swf";
						}
					}
					else
					{
						if (cgDirection == 1)
						{
							AnimationObject("STP_Vertical_PushUp.swf") ;
							selectedFlash = "STP_Vertical_PushUp.swf";
						}
						else
						{
							AnimationObject("STP_SADDLE_Vert_Pitch_Push.swf") ;
							selectedFlash = "STP_SADDLE_Vert_Pitch_Push.swf";
						}
					}
					break ;

				case "VerticalDown":
					if (setName == "set1")
					{
						if (cgDirection == 1)
						{
							AnimationObject("SAL_SAH_VertYaw.swf") ;
							selectedFlash = "SAL_SAH_VertYaw.swf";
						}
						else
						{
							AnimationObject("SAL_SAH_VertPitch.swf") ;
							selectedFlash = "SAL_SAH_VertPitch.swf";
						}
					}
					else
					{
						if (cgDirection == 1)
						{
							AnimationObject("STP_Vertical_PullUp.swf") ;
							selectedFlash = "STP_Vertical_PullUp.swf";
						}
						else
						{
							AnimationObject("STP_SADDLE_Vert_Pitch_Pull.swf") ;
							selectedFlash = "STP_SADDLE_Vert_Pitch_Pull.swf";
						}                        
					}
					break ;
				}
			}
			else
			{
				switch (orientName)
				{
					case "HorizontalNormal":
						switch (setName)
						{
							case "set2":            
								AnimationObject("SFP_Horizontal_Top.swf") ;
								selectedFlash = "SFP_Horizontal_Top.swf";
								break ;
				
							case "set4":
								if (cgDirection == 1)
								{
							AnimationObject("SG_Horizontal_PitchFLAT.swf") ;
							selectedFlash = "SG_Horizontal_PitchFLAT.swf";
						}
						else
						{
							AnimationObject("SG_Horizontal_RollFLAT.swf") ;	
							selectedFlash = "SG_Horizontal_RollFLAT.swf";			
						} 
						break ;
			
					case "set4b":
						if (cgDirection == 1)
						{
							AnimationObject("SM_Horizontal_PitchFLAT.swf") ;
							selectedFlash = "SM_Horizontal_PitchFLAT.swf";	
						}
						else
						{
							AnimationObject("SM_Horizontal_RollFLAT.swf") ;
							selectedFlash = "SM_Horizontal_RollFLAT.swf";	
						} 
						break ;
				
					default:
						if (cgDirection == 1)
						{
							AnimationObject("STP_SADDLE_Hor_Pitch.swf") ;
							selectedFlash = "STP_SADDLE_Hor_Pitch.swf";	
						}
						else
						{
							AnimationObject("STP_SADDLE_Hor_Roll.swf") ;
							selectedFlash = "STP_SADDLE_Hor_Roll.swf";	
						}
						break ;
					}
		  
		  break ;
		  
		case "HorizontalOnSide":
		  switch (setName)
		  {
			case "set2":
			  AnimationObject("SFP_Horizontal_Side.swf") ;
			  selectedFlash = "SFP_Horizontal_Side.swf";	
			  break ;
				
			case "set4":
			  if (cgDirection == 1){
				AnimationObject("SG_Horizontal_Yaw.swf") ;
				selectedFlash = "SG_Horizontal_Yaw.swf";	
				}
			  else
			  {
				AnimationObject("SG_HorizontalSIDE.swf") ;
				selectedFlash = "SG_HorizontalSIDE.swf";	
			  }
				
			  break ;
			
			case "set4b":
			  if (cgDirection == 1)
			  {
				AnimationObject("SM_Horizontal_Yaw.swf") ;
				selectedFlash = "SM_Horizontal_Yaw.swf";
			  }
			  else
			  {
				AnimationObject("SM_HorizontalSIDE.swf") ;
				selectedFlash = "SM_HorizontalSIDE.swf";
			  }
				
			  break ;
			
			default:
			  if (cgDirection == 1)
			  {
				AnimationObject("STP_SADDLE_Hor_Side.swf") ;
				selectedFlash = "STP_SADDLE_Hor_Side.swf";
}
			  else
			  {
				AnimationObject("STP_SADDLE_Hor_Yaw.swf") ;
				selectedFlash = "STP_SADDLE_Hor_Yaw.swf";
}

			  break ;
		  }
		  
		  break ;
		  
		case "VerticalUp":
		  switch (setName)
		  {
			case "set2":
			  AnimationObject("SFP_Vertical.swf") ;
			  selectedFlash = "SFP_Vertical.swf";
			  break ;
				
			case "set4":
			  if (cgDirection == 1)
			  {
				AnimationObject("SG_Vertical_Yaw_Up.swf") ;
				selectedFlash = "SG_Vertical_Yaw_Up.swf";
}
			  else
			  {
				AnimationObject("SG_Vertical_Pit_Push.swf") ;
				selectedFlash = "SG_Vertical_Pit_Push.swf";
}
				
			  break ;
			
			case "set4b":
			  if (cgDirection == 1)
			  {
				AnimationObject("SM_Vertical_Yaw.swf") ;
				selectedFlash = "SM_Vertical_Yaw.swf";
}
			  else{
				AnimationObject("SM_Vertical_Pit_Push.swf") ;
				selectedFlash = "SM_Vertical_Pit_Push.swf";
}
				
			  break ;
			
			default:
			  if (cgDirection == 1)
			  {
				AnimationObject("STP_SADDLE_Vert_Yaw_Up.swf") ;
				selectedFlash = "STP_SADDLE_Vert_Yaw_Up.swf";
}
			  else
			  {
				AnimationObject("STP_SADDLE_Vert_Pitch_Push.swf") ;
				selectedFlash = "STP_SADDLE_Vert_Pitch_Push.swf";
}

			  break ;
		  }
		  
		  break ;
		  
		case "VerticalDown":
		  switch (setName)
		  {
			case "set2":
			  AnimationObject("SFP_Vertical.swf") ;
			  selectedFlash = "SFP_Vertical.swf";
			  break ;
				
			case "set4":
			  if (cgDirection == 1)
			  {
				AnimationObject("SG_Vertical_Yaw.swf") ;
				selectedFlash = "SG_Vertical_Yaw.swf";
}
			  else
			  {
				AnimationObject("SG_Vertical_Pit_Pull.swf") ;
				selectedFlash = "SG_Vertical_Pit_Pull.swf";
}
				
			  break ;
			
			case "set4b":
			  if (cgDirection == 1)
			  {
				AnimationObject("SM_Vertical_Yaw.swf") ;
				selectedFlash = "SM_Vertical_Yaw.swf";
}
			  else
			  {
				AnimationObject("SM_Vertical_Pit_Pull.swf") ;
				selectedFlash = "SM_Vertical_Pit_Pull.swf";
}
				
			  break ;
			
			default:
			  if (cgDirection == 1)
			  {
				AnimationObject("STP_SADDLE_Vert_Yaw.swf") ;
				selectedFlash = "STP_SADDLE_Vert_Yaw.swf";
//                element("pDiaSTPSaddleVertYaw").style.display = "block" ;
}
			  else
			  {
				AnimationObject("STP_SADDLE_Vert_Pitch_Pull.swf") ;
				selectedFlash = "STP_SADDLE_Vert_Pitch_Pull.swf";
//                element("pDiaSMVertRoll").style.display = "block" ;
}
			  
			  break ;
		  }
		  
		  break ;
	  }
	}
  }
}


function setSFPFlash()
{
	// save previously displayed flash
	// display SFP flash
	// when regular CG field selected (or other field, actually) go back and select that one instead
	// flashID = element("flashID");
	// element("divdivdiv").innerText = debugProperties(flashID);
	// alert("flashID: " + flashID.Movie);
	// AnimationObjectNoPath();
	// oldFlash = element("flashID").Movie;
	switch(orientName)
	{
		case "HorizontalNormal":     
			AnimationObject("SFP_Horizontal_Top.swf") ;
			break ;
		
		case "HorizontalOnSide":
			AnimationObject("SFP_Horizontal_Side.swf") ;
			break ;
		case "VerticalUp":        
			AnimationObject("SFP_Vertical.swf") ;
			break ;
		
		case "VerticalDown":
			AnimationObject("SFP_Vertical.swf") ;
			break ;
	}

	return;
}



function SeriesClick()
{
	var dum = new DummyEvent("App2spnUCForward") ;	
	SFPCGDisplay(dum)
	return;
}

function SFPCGDisplay(e)
{
	var cgDir;
	// if forward is main CG, show others
	// if from top, show others
	// if to side, show others
	cgDir = getCgDir(e);     
	var dum = new DummyEvent(IsApp2(e) ? "App2spnUCForward" : "spnUCForward") ;	
	syncInputs(e);
	
	if (SFPOnly())
	{
		AppElement(dum, "trToSide").style.display = "none";
		AppElement(dum, "trForward").style.display = "none";
		AppElement(dum, "trFromTop").style.display = "none";
			
		AppElement(dum, "trSFPToSide").style.display = "block";
		AppElement(dum, "trSFPForward").style.display = "block";
		AppElement(dum, "trSFPFromTop").style.display = "block";
		
		/* AppElement(dum2, "trToSide").style.display = "none";
		AppElement(dum2, "trForward").style.display = "none";
		AppElement(dum2, "trFromTop").style.display = "none";
			
		AppElement(dum2, "trSFPToSide").style.display = "inline";
		AppElement(dum2, "trSFPForward").style.display = "inline";
		AppElement(dum2, "trSFPFromTop").style.display = "inline"; */
	}
	else if (SFPSelected())
	{   
		if (cgDir == "ToSide")
		{        
			AppElement(dum, "trSFPToSide").style.display = "none";
			AppElement(dum, "trSFPForward").style.display = "block";
			AppElement(dum, "trSFPFromTop").style.display = "block";
			
			AppElement(dum, "trToSide").style.display = "block";
			AppElement(dum, "trForward").style.display = "none";
			AppElement(dum, "trFromTop").style.display = "none";
			
			/*AppElement(dum2, "trSFPToSide").style.display = "none";
			AppElement(dum2, "trSFPForward").style.display = "inline";
			AppElement(dum2, "trSFPFromTop").style.display = "inline";
			
			AppElement(dum2, "trToSide").style.display = "inline";
			AppElement(dum2, "trForward").style.display = "none";
			AppElement(dum2, "trFromTop").style.display = "none"; */
		}
		else if (cgDir == "FromTop")
		{        
			AppElement(dum, "trSFPToSide").style.display = "block";
			AppElement(dum, "trSFPForward").style.display = "block";
			AppElement(dum, "trSFPFromTop").style.display = "none";
			
			AppElement(dum, "trToSide").style.display = "none";
			AppElement(dum, "trForward").style.display = "none";
			AppElement(dum, "trFromTop").style.display = "block";
			
			/*AppElement(dum2, "trSFPToSide").style.display = "inline";
			AppElement(dum2, "trSFPForward").style.display = "inline";
			AppElement(dum2, "trSFPFromTop").style.display = "none";
			
			AppElement(dum2, "trToSide").style.display = "none";
			AppElement(dum2, "trForward").style.display = "none";
			AppElement(dum2, "trFromTop").style.display = "inline";*/
		}
		else
		{
		// default to "Forward"
			AppElement(dum, "trSFPToSide").style.display = "block";
			AppElement(dum, "trSFPForward").style.display = "none";
			AppElement(dum, "trSFPFromTop").style.display = "block";
			
			AppElement(dum, "trToSide").style.display = "none";
			AppElement(dum, "trForward").style.display = "block";
			AppElement(dum, "trFromTop").style.display = "none";

		}
	}
	else
	{
		// if SFP not selected, don't display any of them.
		AppElement(dum, "trSFPToSide").style.display = "none";
		AppElement(dum, "trSFPForward").style.display = "none";
		AppElement(dum, "trSFPFromTop").style.display = "none";
		
				
		if (cgDir == "ToSide")
		{              
			AppElement(dum, "trToSide").style.display = "block";
			AppElement(dum, "trForward").style.display = "none";
			AppElement(dum, "trFromTop").style.display = "none";
		}
		else if (cgDir == "FromTop")
		{              
			AppElement(dum, "trToSide").style.display = "none";
			AppElement(dum, "trForward").style.display = "none";
			AppElement(dum, "trFromTop").style.display = "block";
		}
		else
		{
			// default to "Forward"
			AppElement(dum, "trToSide").style.display = "none";
			AppElement(dum, "trForward").style.display = "block";
			AppElement(dum, "trFromTop").style.display = "none";
		}       
	}    	
	
	return true;
}

function getCgDir(e)
{
	var cgDir;
	var appOrient;
	var cgDirVal;
	if (IsApp2(e) )
	{	    
		appOrient = App2orientName;
		cgDirVal = App2cgDirection;
	}
	else
	{
		appOrient = orientName ;
		cgDirVal = cgDirection;
	}
	
	if (appOrient == "HorizontalNormal" && (cgDirVal == 2))
	{
		cgDir = "ToSide" ;
	}
	else if (appOrient == "HorizontalOnSide" && (cgDirVal == 2))
	{
		cgDir = "FromTop" ;
	}
	else if (appOrient == "VerticalUp" || appOrient == "VerticalDown")
	{
		cgDir = (cgDirVal == 1) ? "ToSide" : "FromTop" ;
	}
	else
	{
		cgDir = "Forward";
	}
	return cgDir;
}

//ADDED function 5/7/08 - Sets bottom B, C, and J inputs to top input or top inputs to bottom
function updateShockInputs(e)
{
     var 
        spn = Sender(e).SpnUC,
        x = Sender(e).value,    
        
        mpIn = (IsApp2(e) ? App2multiPosInputs : multiPosInputs);    
     
    if (x < spn.MinValue)
    {        
        x = spn.MinValue  ;        
    }   
    
    // Set bottom B, C, and J inputs to match the top
    if (Sender(e) == AppElement(e, "txtMultiPosForwardTop"))
    {       
        AppElement(e, "spnUCMultiPosForward").SetValue(x) ; 
        for (var m = 0; m < 4; m++)
        {
            mpIn[m][3] = x ;
        }
              
    }    
    if (Sender(e) == AppElement(e, "txtMultiPosToSideTop"))
    { 
        AppElement(e, "spnUCMultiPosToSide").SetValue(x) ;
        for (var m = 0; m < 4; m++)
        {
            mpIn[m][4] = x ;
        }
    }
    if (Sender(e) == AppElement(e, "txtMultiPosFromTopTop"))
    {
        AppElement(e, "spnUCMultiPosFromTop").SetValue(x) ;  
        for (var m = 0; m < 4; m++)
        {
            mpIn[m][5] = x ;
        }  
    }    
    //*****  
     
     
    // Set top B, C, and J inputs to match the bottom
    if (Sender(e) == AppElement(e, "txtMultiPosForward"))
    {
        AppElement(e, "spnUCMultiPosForwardTop").SetValue(x) ;       
    }    
    if (Sender(e) == AppElement(e, "txtMultiPosToSide"))
    { 
        AppElement(e, "spnUCMultiPosToSideTop").SetValue(x) ;
    }
    if (Sender(e) == AppElement(e, "txtMultiPosFromTop"))
    {
        AppElement(e, "spnUCMultiPosFromTopTop").SetValue(x) ;    
    }      
   
}
//**********

function syncInputs(e)
{ 
	// now synchronize input fields:
	cgDir = getCgDir(e);
	
	var dum = new DummyEvent(IsApp2(e) ? "App2spnUCForward" : "spnUCForward") ;
	
	var spnUCForward = AppElement(dum, "spnUCForward");
	var spnUCSFPForward = AppElement(dum, "spnUCSFPForward");
	
	var spnUCToSide = AppElement(dum, "spnUCToSide");
	var spnUCSFPToSide = AppElement(dum, "spnUCSFPToSide");
	
	var spnUCFromTop = AppElement(dum, "spnUCFromTop");
	var spnUCSFPFromTop = AppElement(dum, "spnUCSFPFromTop");
	
	var trimmed;
	
	if (IsApp2(e))
	{
		if (AppElement(dum, "trForward").style.display != "none")
		{
			trimmed = getText(spnUCForward).replace(/^\s+|\s+$/g, '') ;    
			SetupUC("App2imgSFPForwardMinus", "App2txtSFPForward", "App2imgSFPForwardPlus", "App2spnUCSFPForward", "length", trimmed, spnUCForward.StandardValue, 1, 1, 4, 0) ;
		   
		}
		else
		{	  
		  trimmed = getText(spnUCSFPForward).replace(/^\s+|\s+$/g, '') ;
		  SetupUC("App2imgForwardMinus", "App2txtForward", "App2imgForwardPlus", "App2spnUCForward", "length", trimmed, spnUCSFPForward.StandardValue, 1, 1, 4) ;
		}
		
		if (AppElement(dum, "trToSide").style.display != "none")
		{
			trimmed = getText(spnUCToSide).replace(/^\s+|\s+$/g, '') ;
			SetupUC("App2imgSFPToSideMinus", "App2txtSFPToSide", "App2imgSFPToSidePlus", "App2spnUCSFPToSide", "length", trimmed, spnUCToSide.StandardValue, 1, 1, 4, 0) ;
		}
		else
		{    
			trimmed = getText(spnUCSFPToSide).replace(/^\s+|\s+$/g, '') ;
			SetupUC("App2imgToSideMinus", "App2txtToSide", "App2imgToSidePlus", "App2spnUCToSide", "length", trimmed, spnUCSFPToSide.StandardValue, 1, 1, 4, 0) ;
		}
		
		if (AppElement(dum, "trFromTop").style.display != "none")
		{
			trimmed = getText(spnUCFromTop).replace(/^\s+|\s+$/g, '') ;
			SetupUC("App2imgSFPFromTopMinus", "App2txtSFPFromTop", "App2imgSFPFromTopPlus", "App2spnUCSFPFromTop", "length", trimmed, spnUCFromTop.StandardValue, 1, 1, 4, 0) ;
		} 
		else
		{
			trimmed = getText(spnUCSFPFromTop).replace(/^\s+|\s+$/g, '') ;
			SetupUC("App2imgFromTopMinus", "App2txtFromTop", "App2imgFromTopPlus", "App2spnUCFromTop", "length", trimmed, spnUCSFPFromTop.StandardValue, 1, 1, 4, 0) ;  
		}

	}
	else
	{
		if (AppElement(dum, "trForward").style.display != "none")
		{
			trimmed = getText(spnUCForward).replace(/^\s+|\s+$/g, '') ;    
			SetupUC("imgSFPForwardMinus", "txtSFPForward", "imgSFPForwardPlus", "spnUCSFPForward", "length", trimmed, spnUCForward.StandardValue, 1, 1, 4, 0) ;
		   
		}
		else
		{	  
		  trimmed = getText(spnUCSFPForward).replace(/^\s+|\s+$/g, '') ;
		  SetupUC("imgForwardMinus", "txtForward", "imgForwardPlus", "spnUCForward", "length", trimmed, spnUCSFPForward.StandardValue, 1, 1, 4) ;
		}
		
		if (AppElement(dum, "trToSide").style.display != "none")
		{
			trimmed = getText(spnUCToSide).replace(/^\s+|\s+$/g, '') ;
			SetupUC("imgSFPToSideMinus", "txtSFPToSide", "imgSFPToSidePlus", "spnUCSFPToSide", "length", trimmed, spnUCToSide.StandardValue, 1, 1, 4, 0) ;
		}
		else
		{    
			trimmed = getText(spnUCSFPToSide).replace(/^\s+|\s+$/g, '') ;
			SetupUC("imgToSideMinus", "txtToSide", "imgToSidePlus", "spnUCToSide", "length", trimmed, spnUCSFPToSide.StandardValue, 1, 1, 4, 0) ;
		}
		
		if (AppElement(dum, "trFromTop").style.display != "none")
		{
			trimmed = getText(spnUCFromTop).replace(/^\s+|\s+$/g, '') ;
			SetupUC("imgSFPFromTopMinus", "txtSFPFromTop", "imgSFPFromTopPlus", "spnUCSFPFromTop", "length", trimmed, spnUCFromTop.StandardValue, 1, 1, 4, 0) ;
		} 
		else
		{
			trimmed = getText(spnUCSFPFromTop).replace(/^\s+|\s+$/g, '') ;
			SetupUC("imgFromTopMinus", "txtFromTop", "imgFromTopPlus", "spnUCFromTop", "length", trimmed, spnUCSFPFromTop.StandardValue, 1, 1, 4, 0) ;  
		}
	}
	return;
}

function TwoPos()
{
	element("trMidpoint").style.display = "none";
	element("App2trMidpoint").style.display = "none";	
	element("Label45").innerText = "Travel: ";
	element("Label102").innerText = "Travel: ";
	return;
}

function ThreePos()
{     
    
    element("trMidpoint").style.display = "inline";
	element("App2trMidpoint").style.display = "inline";	
	 
	
	element("Label45").innerText = "Total Travel: ";
	element("Label102").innerText = "Total Travel: ";
	return;
}

function MultiPos()
{
	element("trMidpoint").style.display = "none";
	element("App2trMidpoint").style.display = "none";  
	element("Label45").innerText = "Travel: ";
	element("Label102").innerText = "Travel: ";
	return;
}

function CGLabel(lbl)
{
	if (selectedFlash.indexOf("SFP")>=0)
	{
		flashLabel(lbl);
	}
	else
	{
		flashLabel("CG");
	}
	return;
}

function CheckResolution()
{
	if (document.body.clientWidth>800) 
	{
		//alert("high res");
		setActiveStyleSheet("default");
	}
	else
	{
		setActiveStyleSheet("LowRes");
		CompModeClick();
		element("divApp2").style.display="none";
	}
	return;
}

function SOAPErrorRecovery()
{
	var dum = new DummyEvent("rbImperial") ;
	StartCalc(dum) ;
	return;
}