﻿//////////////////////////////////////////////////////////////////////////////////////////////////
// John Warner (warnerj5000@gmail.com)
// PHD, Inc 2007
// Purpose: This javascript file handles the rotary.html file.
//          Rotary.html is subdivided into RotLeftCol.html, RotCenterCol.html and RotRightCol.html
//          Those have their own javascript files, so this one is kept simple.
//////////////////////////////////////////////////////////////////////////////////////////////////

var objInputs; // inputs object (center column stuff.)
var agreed = false;

var imgAORMinus = element("imgAORMinus");
var imgAORPlus = element("imgAORPlus");
var spnUCAOR = element("spnUCAOR");
var txtAOR = element("txtAOR");

var columnName = "";
var waitColumnName = "";

var
  busy = false,
  needCalc = false,
  calcTime = 0,

  App2busy = false,
  App2needCalc = false,
  App2calcTime = 0;


function writeInnerHTML(id, text, language) {
    var front = "<center>";
    var close = "</center>";

    text = front + text + close;

    var id = element(id);
    id.innerHTML = text;
}


function writeLabel(labelID, labelText, labelLanguage) // look, a nod to foreign language!
{
	// write label text, browser independent.
	if (whichBrs() == "Firefox")
	{
		var id = element(labelID);        
		id.textContent = labelText;   
		
	}
	else
	{
		element(labelID).innerText = labelText;
	}
}

function readLabel(labelID)
{
	// return label text, browser independent. Should also work with span?
	var labelText;
	
	if (whichBrs() == "Firefox")
	{
		labelText = element(labelID).textContent;               
	}
	else
	{
		labelText = element(labelID).innerText;
	}
	return labelText;
}

function element(id) // find control regardless of web-browser.
{    
	if (document.getElementById != null)
	{
		return document.getElementById(id) ;
	}
	if (document.all != null)  // for old IE
	{
		return document.all[id] ;
	}
	if (document.layers != null)  // for old NS
	{
		return document.layers[id] ;
	}
	return null ;  // give up
}

function setActiveStyleSheet(title) 
{ 
	var i, a;
	for(i=0; (a = document.getElementsByTagName("link")[i]); i++) 
	{
		if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) 
		{
			a.disabled = true;
			if (a.getAttribute("title") == title)    
				a.disabled = false;
		}
	} 
	return;
}

// function iframeText returns innerHTML of iframe element
// parameter: id of the iframe you want the innerHTML from
// this should work for both IE and FireFox.
function iframeText(id)
{
	var sText;
	if(window.frames[id])
	{
		sText = window.frames[id].document.body.innerHTML;
	}
	else
	{
		sText = document.getElementById(id).contentDocument.body.innerHTML;
	}
	
	return sText;
}
function ChangeSeries()
{
    // sets availabllity of each series based on number of positions and pnuematic/hydraulic selection. 
   
	if (element("rbTwo").checked == true)
	{
	    if (element("rbPneumatic").checked == true)
	    {   
	        element("trRCC").style.display = "block";   
	        element("cbRCC").checked = true;  
	        element("trRF").style.display = "block";  
	        element("cbRF").checked = true; 
	        element("trRL").style.display = "block";  
	        element("cbRL").checked = true; 
	        element("trRA").style.display = "block";  
	        element("cbRA").checked = true; 
	        element("trRI").style.display = "block";  
	        element("cbRI").checked = true; 
	        element("trR1K8K").style.display = "block";  
	        element("cbR1K8K").checked = true; 
	        element("trRAO2K8K").style.display = "block";  
	        element("cbRAO2K8K").checked = true; 
	        element("trRMP2K8K").style.display = "none";  
	        element("cbRMP2K8K").checked = false; 
	        
	    }
	    else
	    {
	        element("trRCC").style.display = "none";   
	        element("cbRCC").checked = false;  
	        element("trRF").style.display = "none";  
	        element("cbRF").checked = false; 
	        element("trRL").style.display = "none";  
	        element("cbRL").checked = false; 
	        element("trRA").style.display = "none";  
	        element("cbRA").checked = false; 
	        element("trRI").style.display = "none";  
	        element("cbRI").checked = false; 
	        element("trR1K8K").style.display = "block";  
	        element("cbR1K8K").checked = true; 
	        element("trRAO2K8K").style.display = "none";  
	        element("cbRAO2K8K").checked = false; 
	        element("trRMP2K8K").style.display = "block";  
	        element("cbRMP2K8K").checked = true; 
	    }
	     
	    
	}
	else if (element("rbThree").checked == true)
	{
	    if (element("rbPneumatic").checked == true)
	    {   
	        element("trRCC").style.display = "none";   
	        element("cbRCC").checked = false;  
	        element("trRF").style.display = "none";  
	        element("cbRF").checked = false; 
	        element("trRL").style.display = "none";  
	        element("cbRL").checked = false; 
	        element("trRA").style.display = "none";  
	        element("cbRA").checked = false; 
	        element("trRI").style.display = "block";  
	        element("cbRI").checked = true; 
	        element("trR1K8K").style.display = "none";  
	        element("cbR1K8K").checked = false; 
	        element("trRAO2K8K").style.display = "block";  
	        element("cbRAO2K8K").checked = true; 
	        element("trRMP2K8K").style.display = "block";  
	        element("cbRMP2K8K").checked = true; 
	        
	    }
	    else
	    {
	        element("trRCC").style.display = "none";   
	        element("cbRCC").checked = false;  
	        element("trRF").style.display = "none";  
	        element("cbRF").checked = false; 
	        element("trRL").style.display = "none";  
	        element("cbRL").checked = false; 
	        element("trRA").style.display = "none";  
	        element("cbRA").checked = false; 
	        element("trRI").style.display = "none";  
	        element("cbRI").checked = false; 
	        element("trR1K8K").style.display = "none";  
	        element("cbR1K8K").checked = false; 
	        element("trRAO2K8K").style.display = "none";  
	        element("cbRAO2K8K").checked = false; 
	        element("trRMP2K8K").style.display = "block";  
	        element("cbRMP2K8K").checked = true; 
	    }	    
	}
	else
	{
	    if (element("rbPneumatic").checked == true)
	    {   
	        element("trRCC").style.display = "none";   
	        element("cbRCC").checked = false;  
	        element("trRF").style.display = "none";  
	        element("cbRF").checked = false; 
	        element("trRL").style.display = "none";  
	        element("cbRL").checked = false; 
	        element("trRA").style.display = "none";  
	        element("cbRA").checked = false; 
	        element("trRI").style.display = "none";  
	        element("cbRI").checked = false; 
	        element("trR1K8K").style.display = "none";  
	        element("cbR1K8K").checked = false; 
	        element("trRAO2K8K").style.display = "none";  
	        element("cbRAO2K8K").checked = false; 
	        element("trRMP2K8K").style.display = "block";  
	        element("cbRMP2K8K").checked = true; 
	        
	    }
	    else
	    {
	        element("trRCC").style.display = "none";   
	        element("cbRCC").checked = false;  
	        element("trRF").style.display = "none";  
	        element("cbRF").checked = false; 
	        element("trRL").style.display = "none";  
	        element("cbRL").checked = false; 
	        element("trRA").style.display = "none";  
	        element("cbRA").checked = false; 
	        element("trRI").style.display = "none";  
	        element("cbRI").checked = false; 
	        element("trR1K8K").style.display = "none";  
	        element("cbR1K8K").checked = false; 
	        element("trRAO2K8K").style.display = "none";  
	        element("cbRAO2K8K").checked = false; 
	        element("trRMP2K8K").style.display = "block";  
	        element("cbRMP2K8K").checked = true; 
	    }	       
	}
	
	// SET MAX PRESSURE FOR HYDRAULIC CHANGES
	var pressureLimit = element("rbPneumatic").checked ? 150 : 1500;
	element("spnUCPressure").MaxValue = pressureLimit;
	if (compMode)
	    element("App2spnUCPressure").MaxValue = pressureLimit;
	    
	return;
}

function ExternalClick(e)
{
    if (Sender(e) != null)
    {
        columnName = getColName(Sender(e).id);        
    }
    
    InputChanged(e);
}

function InputChanged(e)
{
      
    if (compInit)
            compInit = false;        
        
   if (Sender(e) != null)
    {
        //columnName = getColName(Sender(e).id);
        waitColumnName = getColName(Sender(e).id);
        
        if (
            (Sender(e).id =="imgInertiaAddPlus") ||
            (Sender(e).id == "imgInertiaAddMinus") ||
            (Sender(e).id == "imgTorqueAddPlus") ||
            (Sender(e).id == "imgTorqueAddMinus") ||
            (Sender(e).id =="App2imgInertiaAddPlus") ||
            (Sender(e).id == "App2imgInertiaAddMinus") ||
            (Sender(e).id == "App2imgTorqueAddPlus") ||
            (Sender(e).id == "App2imgTorqueAddMinus") 
            )
	    {
	        showTotals();
	    }
    }
    
    
    if (
            ( element("spnExternalShocks").style.backgroundColor != "#ddd") ||
            ( element("CompModespnExternalShocks").style.backgroundColor != "#ddd") ||
            ( element("App2spnExternalShocks").style.backgroundColor != "#ddd")
        )
    {
        element("spnExternalShocks").style.backgroundColor = "#ddd";
        element("CompModespnExternalShocks").style.backgroundColor = "#ddd";
        element("CompModespnExternalShocks").style.backgroundColor = "#ddd";
    }
    
    
	if (element("cbAutoCalc").checked)
	{	    
        if (waitColumnName == "App2")
        {
            if (App2busy)
                App2needCalc = true;
            else
            {
                columnName = waitColumnName;
                busy = true;
                StartCalc();            
            }
        }
        else
        {
            if (busy)
                needCalc = true;
            else
            {
                columnName = waitColumnName;
                App2busy = true;
                StartCalc();
            }
        }
    }

//    detailsUCSetup(""); // output details values
//    detailsUCSetup("", "C2"); // output details values
//    detailsUCSetup("", "C3"); // output details values

//    // Compare mode?
//    if (element("rbCompareMode").checked) 
//    {
//        detailsUCSetup("App2"); // output details values
//        detailsUCSetup("App2", "C2"); // output details values
//        detailsUCSetup("App2", "C3"); // output details values
//    }
    
	return;
}

var calcTime = 0;

function StartCalc(e)
{  
  if (calcTime == 0)
  {
	window.setTimeout("CalcTimer();", 100) ;
  }
  calcTime = 10 ; 
  return;
}


function CalcTimer(col)
{
     
  calcTime-- ;

  if (calcTime > 0)
	window.setTimeout("CalcTimer();", 100) ;
  else
  {
	rotList(columnName);
  }
  return;
}

function Sender(e)
{
  return (e != null ? e.target : event.srcElement) ;
}

function DummyEvent(elementId)
{
  this.target = element(elementId) ;
}

function AppNum(evt)
{
  if (Sender(evt).id.substr(0,4) == "App2")
    return 2;
  else if (Sender(evt).id.indexOf("CompMod") > -1)
    return 1;
 else
    return 0;
}

function getColName(id)
{
    if (id.substr(0,4) == "App2")
        return "App2";
    else if (id.indexOf("CompMod") > -1)
        return "CompMode";
    else
        return "";
} 

function AppElement(evt, elm)
{
  var
    appCol = "" ;

  if (AppNum(evt)==0)
    appCol = "";
  else if(AppNum(evt) == 1)
    appCol = "CompMode";
  else
    appCol = "App2";
  
  return element(appCol + elm) ;
}

function waitCursor()
{
    document.body.style.cursor = "wait" ;
}
function defCursor()
{
    document.body.style.cursor = "default" ;
}
function onLoad() {
    compMode = false; 
	var divLeftCol, divCenterCol, divRightCol, divHidden;
	
	var txtDisclaimer = element("hidDisclaimer").value;
	
	if (!agreed)
	{ 
		if (confirm(txtDisclaimer))
		{
			agreed = true ;
		}
		else
		{
			location = "http://www.phdinc.com/" ;
		return ;
		}
	}
	
    
	
	divLeftCol = element("divLeftCol");
	divCenterCol = element("divCenterCol");
	divRightCol = element("divRightCol");
	divHidden = element("divHidden");
	
	if (whichBrs() == "Firefox")
	{
	    divLeftCol.style.padding = "5px";
	    divCenterCol.style.padding = "5px";
	    divRightCol.style.padding = "5px";
	    divRightCol.style.paddingLeft = "7px";
	}
	
	divHidden.innerHTML     = iframeText("ifrHidden");
	divLeftCol.innerHTML    = iframeText("ifrLeftCol");
	divCenterCol.innerHTML  = iframeText("ifrCenterCol");
	divRightCol.innerHTML   = iframeText("ifrRightCol");
	
	SetupDivPop("divUCPop") ;
	
	divClick('divDiskOnCenter'); // init to look like the first image was clicked
    
    
    
	inputUCSetup(""); // inputs    
	outputUCSetup(""); // outputs critical values
	
	detailsUCSetup(""); // output details values
	detailsUCSetup("","C2"); // output details values
	detailsUCSetup("", "C3"); // output details values
	setOutputUnits('InputModeImperial');
	
	setFieldHeadings("");
	
	
	setC2Visibility(false);
	setC3Visibility(false);
	// load flash files:
	// setRotSWF();
	
	 
  
}

function setFieldHeadings(col)
{
    element(col + "tdBasePart").innerHTML = element("hidRotary").value;
    
    element("tdConfigid").innerHTML = element("hidCADQUOTE").value;
    element("App2tdConfigid").innerHTML = element("hidCADQUOTE").value;

    element("lblConfig").innerHTML = element("hidConfigNow").value;
    element("App2lblConfig").innerHTML = element("hidConfigNow").value;
    element("lblConfigC2").innerHTML = element("hidConfigNow").value;
    element("App2lblConfigC2").innerHTML = element("hidConfigNow").value;
    element("lblConfigC3").innerHTML = element("hidConfigNow").value;
    element("App2lblConfigC3").innerHTML = element("hidConfigNow").value;
    
    element(col + "tdSer").innerHTML = element("hidSeries").value;
    element(col + "tdStat").innerHTML = element("hidStatus").value;
    element(col + "abcHeader").innerHTML = element("hidAxialBearingCap").value;
    element(col + "tdRadCap").innerHTML = element("hidRadialBearingCap").value;
    element(col + "tdBackLash").innerHTML = element("hidExpectedBacklash").value;
    element(col + "tdRotTolPos").innerHTML = element("hidRotTolPos").value;
    element(col + "tdRotTolNeg").innerHTML = element("hidRotTolNeg").value;
    element(col + "tdApprTorque").innerHTML = element("hidApprTorque").value;
    element(col + "tdDevWeight").innerHTML = element("hidDeviceWeight").value;
    element(col + "tdCvId").innerHTML = element("hidCv").value;
    element(col + "tdSCFMid").innerHTML = element("hidSCFM").value;
    element(col + "thKEStopLabel").innerHTML = element("hidKEStopCap").value;
    element(col + "tdPUKineticEnergy").innerHTML = element("hidPlainUnitKE").value;
    element(col + "tdSP").innerHTML = element("hidPadsKE").value;
    element(col + "tdCushionid").innerHTML = element("hidCushionsKE").value;
    element(col + "tdSAid").innerHTML = element("hidSOKE").value;
    element(col + "tdPUFRT").innerHTML = element("hidPlainUnitFRT").value;
    element(col + "tdSPFRTid").innerHTML = element("hidSOFRT").value;
    element(col + "tdCushionsid").innerHTML = element("hidCushionsFRT").value;
    element(col + "tdSAFRTid").innerHTML = element("hidSOFRT").value;
    element(col + "thPartSpecLbl").innerHTML = element("hidPartSpec").value;

    element(col + "tdPlainWarning").innerHTML = element("hidtdPlainWarning").value;
    element(col + "tdPlainWarningC2").innerHTML = element("hidtdPlainWarning").value;
    element(col + "tdPlainWarningC3").innerHTML = element("hidtdPlainWarning").value;

    element(col + "tdShockpadWarning").innerHTML = element("hidtdShockpadWarning").value;
    element(col + "tdShockpadWarningC2").innerHTML = element("hidtdShockpadWarning").value;
    element(col + "tdShockpadWarningC3").innerHTML = element("hidtdShockpadWarning").value;

    element(col + "tdCushionWarning").innerHTML = element("hidtdCushionWarning").value;
    element(col + "tdCushionWarningC2").innerHTML = element("hidtdCushionWarning").value;
    element(col + "tdCushionWarningC3").innerHTML = element("hidtdCushionWarning").value;

    element(col + "tdShockAbsorberWarning").innerHTML = element("hidtdShockAbsorberWarning").value;
    element(col + "tdShockAbsorberWarningC2").innerHTML = element("hidtdShockAbsorberWarning").value;
    element(col + "tdShockAbsorberWarningC3").innerHTML = element("hidtdShockAbsorberWarning").value;
    
    //App2
    element(col + "App2tdBasePart").innerHTML = element("hidRotary").value;
    element(col + "App2tdSer").innerHTML = element("hidSeries").value;
    element(col + "App2tdStat").innerHTML = element("hidStatus").value;
    element(col + "App2abcHeader").innerHTML = element("hidAxialBearingCap").value;
    element(col + "App2tdRadCap").innerHTML = element("hidRadialBearingCap").value;
    element(col + "App2tdBackLash").innerHTML = element("hidExpectedBacklash").value;
    element(col + "App2tdRotTolPos").innerHTML = element("hidRotTolPos").value;
    element(col + "App2tdRotTolNeg").innerHTML = element("hidRotTolNeg").value;
    element(col + "App2tdApprTorque").innerHTML = element("hidApprTorque").value;
    element(col + "App2tdDevWeight").innerHTML = element("hidDeviceWeight").value;
    element(col + "App2tdCvId").innerHTML = element("hidCv").value;
    element(col + "tdSCFMid").innerHTML = element("hidSCFM").value;
    element(col + "App2thKEStopLabel").innerHTML = element("hidKEStopCap").value;
    element(col + "App2tdPUKineticEnergy").innerHTML = element("hidPlainUnitKE").value;
    element(col + "App2tdSP").innerHTML = element("hidPadsKE").value;
    element(col + "App2tdCusionKEid").innerHTML = element("hidCushionsKE").value;
    element(col + "App2tdSAid").innerHTML = element("hidSOKE").value;
    element(col + "App2tdPUFRT").innerHTML = element("hidPlainUnitFRT").value;
    element(col + "App2tdSPFRTid").innerHTML = element("hidSOFRT").value;
    element(col + "App2tdCushionsid").innerHTML = element("hidCushionsFRT").value;
    element(col + "App2tdSAFRTid").innerHTML = element("hidSOFRT").value;
    element(col + "App2thPartSpecLbl").innerHTML = element("hidPartSpec").value;

    element(col + "App2tdPlainWarning").innerHTML = element("hidtdPlainWarning").value;
    element(col + "App2tdPlainWarningC2").innerHTML = element("hidtdPlainWarning").value;
    element(col + "App2tdPlainWarningC3").innerHTML = element("hidtdPlainWarning").value;
    
    element(col + "App2tdShockpadWarning").innerHTML = element("hidtdShockpadWarning").value;
    element(col + "App2tdShockpadWarningC2").innerHTML = element("hidtdShockpadWarning").value;
    element(col + "App2tdShockpadWarningC3").innerHTML = element("hidtdShockpadWarning").value;

    element(col + "App2tdCushionWarning").innerHTML = element("hidtdCushionWarning").value;
    element(col + "App2tdCushionWarningC2").innerHTML = element("hidtdCushionWarning").value;
    element(col + "App2tdCushionWarningC3").innerHTML = element("hidtdCushionWarning").value;

    element(col + "App2tdShockAbsorberWarning").innerHTML = element("hidtdShockAbsorberWarning").value;
    element(col + "App2tdShockAbsorberWarningC2").innerHTML = element("hidtdShockAbsorberWarning").value;
    element(col + "App2tdShockAbsorberWarningC3").innerHTML = element("hidtdShockAbsorberWarning").value;

//    element(col + "tdRotTolNeg").innerHTML = element("hidRotTolNeg").value;
//    element(col + "tdRotTolNeg").innerHTML = element("hidRotTolNeg").value;
//    element(col + "tdRotTolNeg").innerHTML = element("hidRotTolNeg").value;
    
    
}

function showTotals()
{
    element("trTotalInertia").style.display = "";
    element("trTotalReqTorque").style.display = "";
    
    element("CompModetrTotalInertia").style.display = "";
    element("App2trTotalInertia").style.display = "";
    element("CompModetrTotalReqTorque").style.display = "";
    element("App2trTotalReqTorque").style.display = "";
    
    element("trResultsDivider").style.display = "";
    element("trResultsDivider1").style.display = "";
    element("trResultsDivider2").style.display = "";
    
    element("CompModetrResultsDivider").style.display = "";
    element("CompModetrResultsDivider1").style.display = "";
    element("CompModetrResultsDivider2").style.display = "";
    
    element("App2trResultsDivider").style.display = "";
    element("App2trResultsDivider1").style.display = "";
    element("App2trResultsDivider2").style.display = "";
    
}

// unused in production, but useful in debugging- 
// returns all properties of an object.
// usually I'll just display them in an alert or put them in the clipboard.
function debugProperties(objParam)
{
	var props = "";
	for (var prop in objParam)
	{
		props += prop + "=" + objParam[prop] + "\n";
	}
   
	return props;
}
function setOutputUnits(modeChange) {

    // what mode?
    // "MasterMode" - this is a change of category from Imperial or Metric
    // "InputMode" - this is a change only of the inputs and the outputs should follow.
    
    // "MasterMode" tumps anything and will default the inputs to whatever "MasterMode" is selected

    if (modeChange == ("MasterModeImperial")) {
        // set the imperial input on for standard mode
        element("rbImperialInputs").checked = true;
        setUOM('');
        detailsOPUSetup(modeChange, "", ""); // output details values
        detailsOPUSetup(modeChange, "", "C2"); // output details values
        detailsOPUSetup(modeChange, "", "C3"); // output details values
    }
    else if (modeChange == ("MasterModeMetric")) {
        // set the metric input on for standard mode
        element("rbMetricInputs").checked = true;
        setUOM('');
        detailsOPUSetup(modeChange, "", ""); // output details values
        detailsOPUSetup(modeChange, "", "C2"); // output details values
        detailsOPUSetup(modeChange, "", "C3"); // output details values
    }
    else if (modeChange == ("InputModeImperial")) {
        // set the metric input on for standard mode
        detailsOPUSetup(modeChange, "", ""); // output details values
        detailsOPUSetup(modeChange, "", "C2"); // output details values
        detailsOPUSetup(modeChange, "", "C3"); // output details values
    }
    else if (modeChange == ("InputModeMetric")) {
        // set the metric input on for standard mode
        detailsOPUSetup(modeChange, "", ""); // output details values
        detailsOPUSetup(modeChange, "", "C2"); // output details values
        detailsOPUSetup(modeChange, "", "C3"); // output details values
    }


    if (compMode) {

        if (modeChange == ("MasterModeImperial")) {
            // set the imperial input on for standard mode
            element("App2rbImperialInputs").checked = true;
            setUOM('App2');
            detailsOPUSetup(modeChange, "App2", ""); // output details values
            detailsOPUSetup(modeChange, "App2", "C2"); // output details values
            detailsOPUSetup(modeChange, "App2", "C3"); // output details values
        }
        else if (modeChange == ("MasterModeMetric")) {
            // set the metric input on for standard mode
            element("App2rbMetricInputs").checked = true;
            setUOM('App2');
            detailsOPUSetup(modeChange, "App2", ""); // output details values
            detailsOPUSetup(modeChange, "App2", "C2"); // output details values
            detailsOPUSetup(modeChange, "App2", "C3"); // output details values
        }
        else if (modeChange == ("InputModeImperialApp2") ) {
            // set the metric input on for standard mode
            detailsOPUSetup("InputModeImperial", "App2", ""); // output details values
            detailsOPUSetup("InputModeImperial", "App2", "C2"); // output details values
            detailsOPUSetup("InputModeImperial", "App2", "C3"); // output details values
        }
        else if (modeChange == ("InputModeMetricApp2")) {
            // set the metric input on for standard mode
            detailsOPUSetup("InputModeMetric", "App2", ""); // output details values
            detailsOPUSetup("InputModeMetric", "App2", "C2"); // output details values
            detailsOPUSetup("InputModeMetric", "App2", "C3"); // output details values
        }

    }
    
}


// Sizing to CAD
//######################################33
function divConfig(col, AppCol) {





    // set it to something if it is null (probably means initial load...)
    if (AppCol == null) {
        AppCol = '';
    }

    if (col == null) {
        col = '';
    }

    // figure out the gripper part string and then send it to something
    var sPickedPart;
    var sPickedPartLength;

    sPickedPart = element(AppCol + "td" + col).innerHTML;
    sPickedPartLength = sPickedPart.length;

    // Since that has html formatting strings in it we need to strip those out...
    var htmlCentered1 = "<CENTER>";
    var htmlCentered2 = "</CENTER>";

    // find htmlCentered1 and strip it out
    var pos1 = sPickedPart.indexOf(htmlCentered1);

    // rip it out
    sPickedPart = sPickedPart.substr(8, sPickedPartLength);

    // find htmlCentered2 and strip it out
    var pos2 = sPickedPart.indexOf(htmlCentered2);

    // rip it out
    sPickedPart = sPickedPart.substr(0, pos2);

    // read the series name picked and match it up with our product id from firebird
    var seriesId = getSeriesId(element(AppCol + 'lblSeries' + col).innerHTML);

    // set the iframe source to the part that is being configured... or at least try to...
    // http://config.phdinc.net/configurePart.asp?product_id=190&uniq=LuMagdnkn0mu4gxa5qmekpovwtvf633451505966640000&lang=en&orderData=grk-1-35x12
    // http://user.phdinc.net/?siteId=cad

    // check if the user is logged into CAD already...
    var bIsAuthed = false;
    var uniqID = getCookie('UniqueID');
    if (uniqID != null && uniqID != "") {
        //alert('Welcome again ' + uniqID + '!');
        bIsAuthed = true;
    }

    // if they are already logged in and/or the cookie is set use it
    if (bIsAuthed) {
        // popup method
        window.open('http://config.phdinc.com/configurePart.asp?product_id=' + seriesId + '&orderData=' + sPickedPart + "&fromSystem=Sizing", AppCol + 'configwindow' + col, 'width=850,height=800,scrollbars=1')

    } else {
        // user needs to auth first
        // popup method
    window.open('http://user.phdinc.com/?siteId=cad&fromApp=sizing&goingTo=http://config.phdinc.com/configurePart.asp?product_id=' + seriesId + '&orderData=' + sPickedPart + "&fromSystem=Sizing", AppCol + 'configwindow' + col, 'width=850,height=800,scrollbars=1')
    }

    // show the modal popup
    //$find("ConfMX").show();

    return;
}

function getCookie(c_name) {
    if (document.cookie.length > 0) {
        c_start = document.cookie.indexOf(c_name + "=");
        if (c_start != -1) {
            c_start = c_start + c_name.length + 1;
            c_end = document.cookie.indexOf(";", c_start);
            if (c_end == -1) c_end = document.cookie.length;
            return unescape(document.cookie.substring(c_start, c_end));
        }
    }
    return "";
}

function getSeriesId(series) {
    var id;
    switch (series) {
        case "RCC":
            {
                id = "131";
                break;
            }
        case "RF":
            {
                id = "80";
                break;
            }
        case "RL":
            {
                id = "82";
                break;
            }
        case "RA":
            {
                id = "79";
                break;
            }
        case "RI":
            {
                id = "81";
                break;
            }
        case "1000-8000":
            {
                id = "3";
                break;
            }
        case "Air/Oil<BR>Tandem<BR>2000/8000":
            {
                id = "12";
                break;
            }
        default:
            {
                alert("Transfer to CAD not configured for this Series... contact PHD for assistance configuring this product.");
                id = "";
                break;
            }
    }
    return id;
}


