var
  uc_curUCID = null,
  uc_inPop = false,
  uc_popSpn,
  uc_curFldVal,
  uc_divUCPop ;


function SetupDivPop(dpId)
{
  uc_divUCPop = element(dpId) ;
  uc_divUCPop.onmouseover = popMouseOver ;
  uc_divUCPop.onmouseout = popMouseOut ;
}


function SetupUC(minusId, txtId, plusId, spnId, measUnits, defUnits, defVal, conv, incDec, prec, minVal, maxVal, readOnly)
{
  var
	spn = element(spnId),
	plus = element(plusId),
	minus = element(minusId),
	edit = element(txtId) ;
	
  SetupUCByRefs(minus, edit, plus, spn, measUnits, defUnits, defVal, conv, incDec, prec, minVal, maxVal, readOnly) ;
}


function SetupUCByRefs(minusRef, txtRef, plusRef, spnRef, measUnits, defUnits, defVal, conv, incDec, prec, minVal, maxVal, readOnly)
{
  var
	uc = spnRef ;

  uc.onmouseover = ucMouseOver ;
  uc.onmouseout = ucMouseOut ;
  uc.onclick = ucClick ;
  uc.style.cursor = "default" ;
	
  // "new" properties...
  uc.MeasureUnits = measUnits ;
  uc.IncDecAmt = incDec ;  
  
  uc.ConvFact = conv ;
  uc.DecPrec = prec ;
  uc.MinValue = minVal ;
  uc.MaxValue = maxVal ;
  
  // jcw test: - needed for firefox. You actually need to specify the creation of an attribute.
  var newatt=document.createAttribute("ActualValue");
  newatt.value=defVal;
  uc.setAttributeNode(newatt);
  // end jcw test
  
  
  uc.ActualValue = defVal ;

  uc.SetMetric = function(m)
  {
	uc_popSpn = this ;

	switch (this.MeasureUnits)
	{
	  case "Length":
	  case "length": ucSelect(m ? element("hidCM").value : element("hidIn").value) ; break ;

	  case "Mass":
	  case "mass":
	  case "Weight":
	  case "weight": ucSelect(m ? element("hidG").value : element("hidLb").value) ; break ;

	  case "Pressure":
	  case "pressure": ucSelect(m ? element("hidBar").value : element("hidPSI").value) ; break ;

	  case "Torque":
	  case "torque": ucSelect(m ? element("hidNM").value : element("hidInLb").value) ; break ;

	  case "TorqueRate":
	  case "torque_rate": ucSelect(m ? element("hidNMHr").value : element("hidInLbHr").value) ; break ;

	  case "LifeSpan":
	  case "life_span": ucSelect(m ? element("hidMillionCM").value : element("hidMillionIn").value) ; break ;

	  case "Velocity":
	  case "velocity": ucSelect(m ?  element("hidMMSec").value : element("hidInSec").value) ; break ;

	  case "Time":
	  case "time": ucSelect(element("hidSec").value) ; break ;

	  case "CycleRate":
	  case "cycle_rate": 
	  case "cyclerate":
		element("hidPerMin").value ; break ;
	  
	  case "Angle":
	  case "angle": ucSelect(m ? element("hidRadian").value : element("hidDegree").value); break;
			
	  case element("hidUnits").value:
	  case "Units":
	  case "units": ucSelect(element("hidUnits").value); break;
	  
	  case "Temperature":
	  case "temperature": ucSelect(m ? element("hidCelsius").value : element("hidFahrenheit").value) ; break ;
	  
	  case "FlowRate":
	  case "flowrate": ucSelect(m ? element("hidLPM").value : element("hidSCFM").value); break;
	  
	  case "Cv":
	  case "cv":
	  case "Friction":
	  case "friction": ucSelect(""); break;
	  
	  case element("hidSuccess").value:
	  case "Success":
	  case "success":  ucSelect("(" + element("hidSuccess").value + ")" ); break;
	  case element("hidFailure").value:
	  case "Failure":
	  case "failure":  ucSelect("(" + element("hidFailure").value + ")" ); break;
	  
	  
	  /*case "Erfolgreich":
	  case "erfolgreich":  ucSelect("(Erfolgreich)"); break;
	  case "Fehler":
	  case "fehler":  ucSelect("(Fehler)"); break;
	  */
	  default: ucSelect(""); break;
	}
  }

  uc.ImgPlus = plusRef ;
  uc.ImgMinus = minusRef ;
  uc.TxtValue = txtRef ;

  uc.TxtValue.onfocus = Entered ;
  uc.TxtValue.onblur = Exited ;
  uc.TxtValue.onkeyup = KeyUp ;  
  uc.TxtValue.SpnUC = uc ;		// new

  uc.ImgPlus.onmouseover = PlusMouseOver ;
  uc.ImgPlus.onmouseout = PlusMouseOut ;
  uc.ImgPlus.onclick = PlusClick ;
  uc.ImgPlus.SpnUC = uc ;		// new

  uc.ImgMinus.onmouseover = MinusMouseOver ;
  uc.ImgMinus.onmouseout = MinusMouseOut ;
  uc.ImgMinus.onclick = MinusClick ;
  uc.ImgMinus.SpnUC = uc ;		// new

  if (readOnly)
  {
	uc.TxtValue.readOnly = true ;
	uc.TxtValue.style.color = "#666" ;   

	uc.ImgPlus.style.display = "none" ;
	uc.ImgMinus.style.display = "none" ;
  }
  
  uc_popSpn = uc ;
  ucSelect(defUnits, conv, incDec, prec) ;
  
  return;
}


function Entered(e)
{
  uc_curFldVal = Sender(e).value.replace(/\,/g, "") ;
  Sender(e).value = uc_curFldVal ;
  Sender(e).select(); // added jcw 12/12/06
}


function Exited(e)
{
  KeyUp(e) ;

  var
	x = parseFloat(Sender(e).value),
	spn = Sender(e).SpnUC ;

  Sender(e).value = FormatNumber(spn.ActualValue, spn.DecPrec) ;

  if (uc_IsBadValue(x, spn))
  {
	Sender(e).style.backgroundColor = "" ;
	InputChanged() ;
  }
}


function uc_IsBadValue(x, spn)
{
  return (isNaN(x) 
	|| (spn.MaxValue != null && x > spn.MaxValue) 
	|| (spn.MinValue != null && x < spn.MinValue) ) ;
}


function KeyUp(e)
{
  var
	newFldVal ;

  newFldVal = Sender(e).value.replace(/\,/g, "") ;

  if (newFldVal != uc_curFldVal)
  {
	uc_curFldVal = newFldVal ;

	var
	  x = parseFloat(newFldVal),
	  spn = Sender(e).SpnUC ;

	if (uc_IsBadValue(x, spn))
	{
/*      var
		dr = element("divResults") ;

	  dr.innerHTML = "Illegal number in input field." ;
	  dr.style.fontWeight = "bold" ;
	  dr.style.fontStyle = "normal" ;*/

	  Sender(e).style.backgroundColor = "#ff9999" ;
	}
	else
	{
	  Sender(e).style.backgroundColor = "" ;
	  spn.ActualValue = x ;
	  InputChanged() ;
	}
  }
}


function MinusMouseOver(e)
{
  Sender(e).src = "images/minus2.gif" ;
}


function MinusMouseOut(e)
{
  Sender(e).src = "images/minus.gif" ;
}


function PlusMouseOver(e)
{
  Sender(e).src = "images/plus2.gif" ;
}


function PlusMouseOut(e)
{
  Sender(e).src = "images/plus.gif" ;
}


function MinusClick(e)
{
  var
	spn = Sender(e).SpnUC,
	x = spn.ActualValue - spn.IncDecAmt ;

  if (spn.MinValue != null && x < spn.MinValue)
  {
	x = spn.MinValue ;
  }
  spn.defaultValue = x;
  spn.ActualValue = x ;
  spn.TxtValue.value = FormatNumber(x, spn.DecPrec) ;
  spn.TxtValue.defaultValue = x;
  InputChanged() ;
}


function PlusClick(e)
{
  var
	spn = Sender(e).SpnUC,
	x = spn.ActualValue + spn.IncDecAmt ;

  if (spn.MaxValue != null && x > spn.MaxValue)
  {
	x = spn.MaxValue ;
  }
  spn.ActualValue = x ;
  spn.defaultValue = x;
  spn.TxtValue.value = FormatNumber(x, spn.DecPrec) ;
  spn.TxtValue.defaultValue = x;
  InputChanged(); 

}


function ucMouseOver(e)
{
  var
	spn = (Sender(e).src != null ? Sender(e).parentNode : Sender(e)) ;

  spn.style.backgroundColor = "#fff" ;
  uc_curUCID = spn.id ;
  // alert(uc_curUCID);
}


function ucMouseOut(e)
{
  uc_curUCID = null ;

  var
	spn = (Sender(e).src != null ? Sender(e).parentNode : Sender(e)) ;
	
  window.setTimeout("ucMouseOutTimer('" + spn.id + "');", 100) ;
}


function ucMouseOutTimer(id)
{
  if ((id != uc_curUCID) && !uc_inPop)
  {
	element(id).style.backgroundColor = "" ;
	uc_divUCPop.style.visibility = "hidden" ;
  }
}


function popMouseOver()
{
  uc_inPop = true ;
}


function popMouseOut()
{
  uc_inPop = false ;
  window.setTimeout("popMouseOutTimer();", 100) ;
}


function popMouseOutTimer()
{
  if (!uc_inPop)
  {
	uc_divUCPop.style.visibility = "hidden" ;
	uc_popSpn.style.backgroundColor = "" ;
  }
}


function ucClick(e)
{
  var
	isIE = (navigator.appName.indexOf("Microsoft Internet Explorer") != -1),
	xAdj = (isIE ? 2 : 0),
	yAdj = (isIE ? 5: 0) ;

	var version = 0;
	if (navigator.appVersion.indexOf("MSIE 7") != -1)
	{
		version = 7;
	}
	
	
	if (isIE && version != 7)
	{
		var x=event.clientX; 
		var y=event.clientY;
		
		y += document.body.scrollTop;
		y += document.documentElement.scrollTop;   
	}
	else if (isIE && version == 7)
	{
		var x=event.clientX; 
		var y=event.clientY;
		
		y += document.documentElement.scrollTop;        
	}
	else
	{
		var x = e.layerX;
		var y = e.layerY;     
		
		x = e.pageX;
		y = e.pageY;
	}
	
  
	var CompareMode;
	CompareMode = element("rbCompareMode");
	/* if (CompareMode.checked) // unused?
	{
		yAdj += 10;
	}
	else
	{
		yAdj += 80;
	} */
   
	uc_popSpn = (Sender(e).src != null ? Sender(e).parentNode : Sender(e)) ;

	if (CompareMode.checked || !CompareMode.checked) // not just for compare mode anymore
	{ 
		uc_divUCPop.style.left = x + "px";        
		uc_divUCPop.style.top = y + "px"; // scrolling the window threw this off.
	}
	/*
	alert("document.documentElement.scrollTop: " + document.documentElement.scrollTop);
	alert("document.body.scrollTop: " + document.body.scrollTop);
	*/
	
  switch (uc_popSpn.MeasureUnits)
  {
	case "Length":
	case "length":
	  uc_divUCPop.innerHTML =
		"<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('"+ element("hidIn").value+ "'); return false;\">"+ element("hidIn").value+ "</a>"
		+ "<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('"+ element("hidFt").value+"'); return false;\">"+ element("hidFt").value+"</a>"
		+ "<hr />"
		+ "<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('"+ element("hidMM").value+"'); return false;\">"+ element("hidMM").value+"</a>"
		+ "<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('"+ element("hidCM").value+"'); return false;\">"+ element("hidCM").value+"</a>"
		+ "<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('"+ element("hidM").value+"'); return false;\">"+ element("hidM").value+"</a>" ;

	  break ;

	case "Mass":
	case "mass":
	case "Weight":
	case "weight":
	  uc_divUCPop.innerHTML =
		"<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('"+ element("hidOz").value+ "'); return false;\">"+ element("hidOz").value+ "</a>"
		+ "<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('"+ element("hidLb").value+ "'); return false;\">"+ element("hidLb").value+ "</a>"
		+ "<hr />"
		+ "<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('"+ element("hidG").value+ "'); return false;\">"+ element("hidG").value+ "</a>"
		+ "<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('"+ element("hidKg").value+ "'); return false;\">"+ element("hidKg").value+ "</a>"
		+ "<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('"+ element("hidN").value+ "'); return false;\">"+ element("hidN").value+ "</a>" ;

	  break ;

	case "Time":
	case "time":
	  uc_divUCPop.innerHTML =		
		"<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('"+ element("hidMs").value+ "'); return false;\">"+ element("hidMs").value+ "</a>"
		+ "<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('"+ element("hidSec").value+ "'); return false;\">"+ element("hidSec").value+ "</a>"
		+ "<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('"+ element("hidMin").value+ "'); return false;\">"+ element("hidMin").value+ "</a>" ;

	  break ;

	case "Pressure":
	case "pressure":
	  uc_divUCPop.innerHTML =		
		"<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('"+ element("hidPSI").value+ "'); return false;\">"+ element("hidPSI").value+ "</a>"
		+ "<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('"+ element("hidInHg").value+ "'); return false;\">"+ element("hidInHg").value+ "</a>"
		+ "<hr />"
		+ "<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('"+ element("hidBar").value+ "'); return false;\">"+ element("hidBar").value+ "</a>"
		+ "<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('"+ element("hidMMHg").value+ "'); return false;\">"+ element("hidMMHg").value+ "</a>" ;

	  break ;

	case "CycleRate":
	case "cycle_rate":
	case "cyclerate":
	  uc_divUCPop.innerHTML =
		"<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('"+ element("hidPerHr").value+ "'); return false;\">"+ element("hidPerHr").value +"</a>"
		+ "<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('"+ element("hidPerMin").value+ "'); return false;\">"+ element("hidPerMin").value+ "</a>"
		+ "<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('"+ element("hidPerSec").value+ "'); return false;\">"+ element("hidPerSec").value+ "</a>" ;

	  break ;

	case "Torque":
	case "torque":
	  uc_divUCPop.innerHTML =
		"<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('"+ element("hidInLb").value+ "'); return false;\">"+ element("hidInLb").value+ "</a>"
		+ "<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('"+ element("hidOzIn").value+ "'); return false;\">"+ element("hidOzIn").value+ "</a>"
		+ "<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('"+ element("hidLbFt").value+ "'); return false;\">"+ element("hidLbFt").value+ "</a>"
		+ "<hr />"
		+ "<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('"+ element("hidNM").value+ "'); return false;\">"+ element("hidNM").value+ "</a>"
		+ "<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('"+ element("hidNMM").value+ "'); return false;\">"+ element("hidNMM").value+ "</a>";

	  break ;

	case "TorqueRate":
	case "torque_rate":
	  uc_divUCPop.innerHTML =
		"<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('"+ element("hidInLbHr").value+ "'); return false;\">"+ element("hidInLbHr").value+ "</a>"
		+ "<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('"+ element("hidOzInHr").value+ "'); return false;\">"+ element("hidOzInHr").value+ "</a>"
		+ "<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('"+ element("hidLbFtHr").value+ "'); return false;\">"+ element("hidLbFtHr").value+ "</a>"
		+ "<hr />"
		+ "<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('"+ element("hidNMHr").value+ "'); return false;\">"+ element("hidNMHr").value+ "</a>"
		+ "<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('"+ element("hidNMMHr").value+ "'); return false;\">"+ element("hidNMMHr").value+ "</a>";

	  break ;

	case "LifeSpan":
	case "life_span":
	  uc_divUCPop.innerHTML =
		"<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('"+ element("hidMillionIn").value+ "'); return false;\">"+ element("hidMillionIn").value+ "</a>"
		+ "<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('"+ element("hidMillionFt").value+ "'); return false;\">"+ element("hidMillionFt").value+ "</a>"
		+ "<hr />"
		+ "<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('"+ element("hidMillionCM").value+ "'); return false;\">"+ element("hidMillionCM").value+ "</a>"
		+ "<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('"+ element("hidMillionM").value+ "'); return false;\">"+ element("hidMillionM").value+ "</a>";

	  break ;

	case "Velocity":
	case "velocity":
	  uc_divUCPop.innerHTML =
		"<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('"+ element("hidInSec").value+ "'); return false;\">"+ element("hidInSec").value+ "</a>"
		+ "<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('"+ element("hidFtSec").value+ "'); return false;\">"+ element("hidFtSec").value+ "</a>"
		+ "<hr />"
		+ "<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('"+ element("hidMMSec").value+ "'); return false;\">"+ element("hidMMSec").value+ "</a>"
		+ "<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('"+ element("hidCMSec").value+ "'); return false;\">"+ element("hidCMSec").value+ "</a>"
		+ "<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('"+ element("hidMSec").value+ "'); return false;\">"+ element("hidMSec").value+ "</a>" ;

	  break ;
	  
	  
	case "Angle":
	case "angle":
	  uc_divUCPop.innerHTML =
		"<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('"+ element("hidDegree").value+ "'); return false;\">"+ element("hidDegree").value+ "</a>" 
		+ "<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('"+ element("hidRadian").value+ "'); return false;\">"+ element("hidRadian").value+ "</a>" 
	  break ;
	  
	case element("hidUnits").value:
	case "Units":
	case "units":    
	  uc_divUCPop.innerHTML =
		"<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('"+ element("hidUnits").value+ "'); return false;\">"+ element("hidUnits").value+ "</a>" ;
	  break ;
	  
	case element("hidSuccess").value:
	  uc_divUCPop.innerHTML =
		"<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('(" + element("hidSuccess").value + "'); return false;\">(" + element("hidSuccess").value + ")</a>";
	  break ;
	  
	  /*case "Erfolgreich":
	  case "erfolgreich":
	  uc_divUCPop.innerHTML =
		"<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('(Erfolgreich)'); return false;\">(Erfolgreich)</a>";
	  break ;*/
	  
	  case "Failure":
	  case "failure":
	  case element("hidFailure").value:
	  uc_divUCPop.innerHTML =
		"<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('(" + element("hidFailure").value + "'); return false;\">(" + element("hidFailure").value + ")</a>";
	  break ;
	  
	  /*case "Fehler":
	case "fehler":
	  uc_divUCPop.innerHTML =
		"<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('(Fehler)'); return false;\">(Fehler)</a>";
	  break ;
	  */
	  
	case element("hidFlowRate").value:
	case "FlowRate":
	case "flowrate":
	  uc_divUCPop.innerHTML =
		"<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('"+ element("hidSCFM").value+ "'); return false;\">"+ element("hidSCFM").value+ "</a>" 
		+ "<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('"+ element("hidLPM").value+ "'); return false;\">"+ element("hidLPM").value+ "</a>" ;
	  break ;
	
	  
	case "Temperature":
	case "temperature":
	  uc_divUCPop.innerHTML =
		"<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('F'); return false;\">F</a>"
		+ "<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect('C'); return false;\">C</a>";
	  break ;
	  
	default: // none
	  uc_divUCPop.innerHTML =
		"<a class=\"menuLink\" href=\"#\" onclick=\"ucSelect(''); return false;\"></a>";
	  break ;
  }

  uc_divUCPop.style.visibility = "visible" ;
}


function ucSelect(unitName)
{
  uc_inPop = false ;
  uc_divUCPop.style.visibility = "hidden" ;

  uc_popSpn.style.backgroundColor = "" ;
  uc_popSpn.firstChild.nodeValue = unitName ;

  switch (unitName)
  {
	case element("hidIn").value: ucSetUnit(1, 1, 4) ; break ;    
	case element("hidFt").value: ucSetUnit(1/12, 1/12, 4) ; break ;
	case element("hidMM").value: ucSetUnit(25.4, 1, 2) ; break ;
	case element("hidCM").value: ucSetUnit(2.54, 1, 3) ; break ;
	case element("hidM").value: ucSetUnit(0.0254, 0.01, 4) ; break ;
	
	/*case "in": ucSetUnit(1, 1, 4) ; break ;
	case "ft": ucSetUnit(1/12, 1/12, 4) ; break ;
	case "mm": ucSetUnit(25.4, 1, 2) ; break ;
	case "cm": ucSetUnit(2.54, 1, 3) ; break ;
	case "m": ucSetUnit(0.0254, 0.01, 4) ; break ;
*/
/*
	case "oz": ucSetUnit(16, 1, 2); break ;
	case "lb": ucSetUnit(1, 0.5, 3); break ;
	case "g": ucSetUnit(453.59237, 1, 1); break ;
	case "kg": ucSetUnit(0.45359237, 0.1, 3); break ;
	case "N": ucSetUnit(4.44822161526, 0.5, 3); break ;
*/

    case element("hidOz").value: ucSetUnit(16, 1, 2); break ;
	case element("hidLb").value: ucSetUnit(1, 0.5, 3); break ;
	case element("hidG").value: ucSetUnit(453.59237, 1, 1); break ;
	case element("hidKg").value: ucSetUnit(0.45359237, 0.1, 3); break ;
	case element("hidN").value: ucSetUnit(4.44822161526, 0.5, 3); break ;

	case "/hour": ucSetUnit(60, 10, 2); break ;
	case "/min": ucSetUnit(1, 1, 2); break ;
	case "/sec": ucSetUnit(1/60, 1, 2); break ;
	
	
    case element("hidPerHr").value: ucSetUnit(60, 10, 2); break ;
	case element("hidPerMin").value: ucSetUnit(1, 1, 2); break ;
	case element("hidPerSec").value: ucSetUnit(1/60, 1, 2); break ;

	case element("hidMs").value: ucSetUnit(1000, 100, 1); break ;
	case element("hidSec").value: ucSetUnit(1, 1, 3); break ;
	case element("hidMin").value: ucSetUnit(1/60, 1/60, 3); break ;

	case element("hidPSI").value: ucSetUnit(1, 1, 2); break ;
	case element("hidInHg").value: ucSetUnit(2.03602096738, 1, 2); break ;
	case element("hidBar").value: ucSetUnit(0.06894757293, 0.1, 3); break ;
	case element("hidMMHg").value: ucSetUnit(51.7149325715, 1, 1); break ;


	

	case element("hidInLb").value: ucSetUnit(1, 1, 3); break ;
	case element("hidOzIn").value: ucSetUnit(16, 1, 3); break ;
	case element("hidLbFt").value: ucSetUnit(1/12, 1, 2); break ;
	case element("hidNM").value: ucSetUnit(0.1129848, 1, 3); break ;
	case element("hidNMM").value: ucSetUnit(112.9848, 1, 3); break ;

	case "in-lb / hr": ucSetUnit(1, 1, 3); break ;
	case "oz-in / hr": ucSetUnit(16, 1, 3); break ;
	case "lb-ft / hr": ucSetUnit(1/12, 1, 2); break ;
	case "N-m / hr": ucSetUnit(0.1129848, 1, 3); break ;
	case "N-mm / hr": ucSetUnit(112.9848, 1, 3); break ;
	
	case element("hidInLbHr").value: ucSetUnit(1, 1, 3); break ;
	case element("hidOzInHr").value: ucSetUnit(16, 1, 3); break ;
	case element("hidLbFtHr").value: ucSetUnit(1/12, 1, 2); break ;
	case element("hidNMHr").value: ucSetUnit(0.1129848, 1, 3); break ;
	case element("hidNMMHr").value: ucSetUnit(112.9848, 1, 3); break ;

	case "M in": ucSetUnit(1, 1, 2); break ;
	case "M ft": ucSetUnit(1/12, 1, 2); break ;
	case "M cm": ucSetUnit(2.54, 1, 2); break ;
	case "M m": ucSetUnit(0.0254, 0.1, 2); break ;
	
	case element("hidMillionIn").value: ucSetUnit(1, 1, 2); break ;
	case element("hidMillionFt").value: ucSetUnit(1/12, 1, 2); break ;
	case element("hidMillionCM").value: ucSetUnit(2.54, 1, 2); break ;
	case element("hidMillionM").value: ucSetUnit(0.0254, 0.1, 2); break ;

	case "in/sec": ucSetUnit(1, 1, 2); break ;
	case "ft/sec": ucSetUnit(1/12, 1, 2); break ;
	case "mm/sec": ucSetUnit(25.4, 1, 2); break ;
	case "cm/sec": ucSetUnit(2.54, 0.1, 2); break ;
	case "m/sec": ucSetUnit(0.0254, 0.1, 3); break ;
	
	case element("hidInSec").value: ucSetUnit(1, 1, 2); break ;
	case element("hidFtSec").value: ucSetUnit(1/12, 1, 2); break ;
	case element("hidMMSec").value: ucSetUnit(25.4, 1, 2); break ;
	case element("hidCMSec").value: ucSetUnit(2.54, 0.1, 2); break ;
	case element("hidMSec").value: ucSetUnit(0.0254, 0.1, 3); break ;
	
	case "deg": ucSetUnit(1, 1, 2); break ; // 1 degree = 0.0174532925 radian
	case "rad": ucSetUnit(0.01745, 0.1, 2); break ;
	
	case element("hidDegree").value: ucSetUnit(1, 1, 2); break ; // 1 degree = 0.0174532925 radian
	case element("hidRadian").value: ucSetUnit(0.01745, 0.1, 2); break ;
	
	case "SCFM": ucSetUnit(1, 1, 5); break ; // 1 SCFM = 28.31685 lpm
	case "LPM": ucSetUnit(28.31685, 1, 5); break ;
	
	case element("hidSCFM").value: ucSetUnit(1, 1, 5); break ; // 1 SCFM = 28.31685 lpm
	case element("hidLPM").value: ucSetUnit(28.31685, 1, 5); break ;
		
    case element("hidCelsius").value:
	case "C": ucConvertTemp("C", 1, 1); break; // not a straight conversion factor
	
	case element("hidFahrenheit").value:
	case "F": ucConvertTemp("F", 1, 1); break;
	
		
	case element("hidUnits").value: ucSetUnit(1, 1, 1); break;
	case "units": ucSetUnit(1, 1, 1); break;
	case "": ucSetUnit(1, 1, 4); break;
  }
}


function ucConvertTemp(ConvFact, incDecAmt, decPrec)
{
	
  if ((ConvFact == "C") && uc_popSpn.ConvFact != "C")   // convert from C to F
  { //alert("convert1: " + uc_popSpn.ConvFact + "->" + ConvFact);      
	uc_popSpn.ActualValue = (uc_popSpn.ActualValue - 32) * 5/9 ;

	if (uc_popSpn.MinValue != null)
	  uc_popSpn.MinValue = (uc_popSpn.MinValue - 32) * 5/9 ;

	if (uc_popSpn.MaxValue != null)
	  uc_popSpn.MaxValue = (uc_popSpn.MaxValue - 32) * 5/9 ;

	uc_popSpn.TxtValue.value = FormatNumber(uc_popSpn.ActualValue, decPrec) ;

	uc_popSpn.ConvFact = "C" ;
	uc_popSpn.IncDecAmt = incDecAmt ;
	uc_popSpn.DecPrec = decPrec ;
  }
  else if ((ConvFact == "F") && uc_popSpn.ConvFact != "F")  // convert from F to C 
  {
  //alert("convert2: " + uc_popSpn.ConvFact + "->" + ConvFact);    
  
	uc_popSpn.ActualValue = (uc_popSpn.ActualValue * 9/5) + 32 ;

	if (uc_popSpn.MinValue != null)
	  uc_popSpn.MinValue = (uc_popSpn.MinValue * 9/5) + 32 ;

	if (uc_popSpn.MaxValue != null)
	  uc_popSpn.MaxValue = (uc_popSpn.MaxValue * 9/5) + 32 ;

	uc_popSpn.TxtValue.value = FormatNumber(uc_popSpn.ActualValue, decPrec) ;

	uc_popSpn.ConvFact = "F" ;
	uc_popSpn.IncDecAmt = incDecAmt ;
	uc_popSpn.DecPrec = decPrec ;
  }
  else
  {
  //alert("convert3: " + uc_popSpn.ConvFact + "->" + ConvFact);
  // alert("uc_popSpn: " + uc_popSpn.ActualValue);  
	uc_popSpn.TxtValue.value = FormatNumber(uc_popSpn.ActualValue, decPrec) ;
	uc_popSpn.ConvFact = ConvFact ;
	uc_popSpn.IncDecAmt = incDecAmt ;
	uc_popSpn.DecPrec = decPrec ;
  }

   uc_popSpn.TxtValue.defaultValue = uc_popSpn.TxtValue.value;
}



function ucSetUnit(convFact, incDecAmt, decPrec)
{
  uc_popSpn.ActualValue = (uc_popSpn.ActualValue / uc_popSpn.ConvFact) * convFact ;

  if (uc_popSpn.MinValue != null)
	uc_popSpn.MinValue = (uc_popSpn.MinValue / uc_popSpn.ConvFact) * convFact ;

  if (uc_popSpn.MaxValue != null)
	uc_popSpn.MaxValue = (uc_popSpn.MaxValue / uc_popSpn.ConvFact) * convFact ;

  uc_popSpn.TxtValue.value = FormatNumber(uc_popSpn.ActualValue, decPrec) ;

  uc_popSpn.ConvFact = convFact ;
  uc_popSpn.IncDecAmt = incDecAmt ;
  uc_popSpn.DecPrec = decPrec ;
  
  // alert("uc_popSpn.ActualValue: " + uc_popSpn.ActualValue);

  uc_popSpn.TxtValue.defaultValue = uc_popSpn.TxtValue.value;
}
