var xmlResults = 
{
    partSearchMenus: function(req)
    {
        if (req.readyState == 4) 
        {
            if (req.status == 200) 
            {
                var results = req.responseText;
                
                if (results.indexOf('sqlerror') != -1) 
                {
                    alert('There was an error retrieving the part information.\r\n Refresh this page and try again or call 800-523-2576 for help.');
                    return;
                }
                
                if (results.indexOf('empty') != -1) 
                {
                    alert('There are no parts with those specs.');
                    $('getPartnoBtn').value = "Search";
                    searchAgain.value = "Search Again";
                    doneMsg = $('done');
                    loadMsg = $('loading');
                    pageMsg = $('pages');
                    doneMsg.innerHTML = "Done";
                    loadMsg.innerHTML = "There are no parts with those specs.";
                    //loadImgD = browserName == 'msie' ? loadImg.style.display = 'none' : bcm = 0;
                    $('loadingImg').hide();
                }
                else 
                {
                    ////The table info is broken up this way:
                    ////   0                  1                                2             3          4         5         6       7       8        9            10           11         12       13      14      15     16       17       18
                    ////header]allOfThePartsAndTheirSpecs(delimitedBy(*))]Materials]MaterialSelected]Pitches]PitchSelected]PDs]PDselected]Teeth]TeethSelected]Style(AorB)]styleSelected]orderBy]errorMsg]HPOWER]pageNum]maxPage]gearType]pitchType
                    ////   0        1        2           3        4           5
                    ////needinfo]partno]numberOfResults]gearTypes]materials]teeth
                    var tableInfo = results.split(']');
                    var needInfo = tableInfo[0];
                    $('getPartnoBtn').value = "Search";
                    $('finishSearch').value = "Search Again";
                    if (needInfo == 'needInfo') 
                    {
                        var searchedPartno = tableInfo[1];
                        var numberOfResults = tableInfo[2];
                        foundGearTypes = tableInfo[3].split(',');
                        foundMaterials = tableInfo[4].split(',');
                        gearTypeTeeth = tableInfo[5].split('|');
                        var gtTeeth = '';
                        initialTeeth = new Array();
                        initTeeth = new Array();
                        gtMatTeeth = new Array();
                        //assocTeeth = {};
                        assocTeeth = new Array();
                        matl1 = new Array();
                        var gt1 = '';
                        initialGT = foundGearTypes[0];
                        initialMat = foundMaterials[0];
                        
                        for (x = 0; x < gearTypeTeeth.length - 1; x++) 
                        {
                            gtMatTeeth[x] = gearTypeTeeth[x].split(',');
                            initTeeth[x] = gearTypeTeeth[x].split(',');
                        }
                        
                        initialTeeth[0] = initTeeth[0];
                        iTeeth = initialTeeth[0].shift();
                        iTeeth = initialTeeth[0].shift();
                        
                        partNumberSearched.innerHTML = searchedPartno;
                        numSearchParts.innerHTML = numberOfResults;
                        numSearchGearTypes.innerHTML = foundGearTypes.length;
                        numSearchMaterials.innerHTML = foundMaterials.length;
                        fillSelects(searchedMaterialObj, foundMaterials, gtMatTeeth[0][1]);
                        fillSelects(searchedGearTypeObj, foundGearTypes, gtMatTeeth[0][0]);
                        fillSelects(searchedTeethObj, initialTeeth[0], '');
                        $('partnoResults').style.display = '';
                        return;
                    }
                    
                    if ($('partnoResults').style.display == '') 
                    {
                        $('partnoResults').style.display = 'none';
                    }
                    
                    var tableHeader = tableInfo[0].split(',');
                    var tableBody = $('tableBody');
                    var partInfo = tableInfo[1].split('*');
                    var materials = tableInfo[2].split(',');
                    var lastMaterial = tableInfo[3];
                    var pitches = tableInfo[4].split(',');
                    var lastPitch = tableInfo[5];
                    var PDs = tableInfo[6].split(',');
                    var lastPD = tableInfo[7];
                    var teeth = tableInfo[8].split(',');
                    var lastTeeth = tableInfo[9];
                    var hubStyle = tableInfo[10].split(',');
                    var lastHubStyle = tableInfo[11];
                    lastHubStyle = lastHubStyle.replace(/^\s*|\s*$/g, "");
                    orderBy = tableInfo[12];
                    orderBy = orderBy.replace(/^\s*|\s*$/g, "")
                    var errorMsg = tableInfo[13];
                    var hpLink = tableInfo[14];
                    var pageNum = tableInfo[15];
                    var maxPage = tableInfo[16];
                    var usingGearType = tableInfo[17];
                    var usingPitchType = tableInfo[18].replaceWS();
                    doneMsg = $('done');
                    loadMsg = $('loading');
                    updateInfo2 = $('updateInfo');
                    //loadImgD = browserName == 'msie' ? loadImg.style.display = '' : bcm = 0;
                    $('loadingImg').show();
                    pitchTypeElem = $('mainPitchType');
                    gearTypeElem = $('mainGearType');
                    unitsElem = $('mainUnits');
                    paElem = $('mainPA');
                    
                    /////controls the page numbering for database paging system
                    pageMsg = $('pages');
                    pageMsg.innerHTML = dbPaging(maxPage, pageNum);
                    pageMsg2 = $('pages2');
                    pageMsg2.innerHTML = dbPaging(maxPage, pageNum);
                    
                    ////controls the current settings status
                    pTypeElem = pitchTypeElem.value.toUpperCase() == 'DP' ? "Diametral Pitch" : "Module Pitch";
                    unitsElemName = unitsElem.value.toUpperCase() == 'MM' ? "Millimeters" : "Inches";
                    pt1 = pTypeElem;
                    gt1 = gearTypeElem.value.toUpperCase();
                    u1 = unitsElemName;
                    lm1 = lastMaterial.toUpperCase();
                    p1 = lastPitch.toUpperCase();
                    lt1 = lastTeeth.toUpperCase();
                    pa1 = paElem.value.toUpperCase();
                    hub1 = lastHubStyle.toUpperCase();
                    currSettings1 = $('currSettings');
                    cs2 = $('currSetting2');
                    currSettings1.innerHTML = currentSearchSettings(pt1, gt1, lm1, u1, p1, lt1, pa1, hub1);
                    cs2.innerHTML = currentSearchSettings(pt1, gt1, lm1, u1, p1, lt1, pa1, hub1);
                    
                    if (errorMsg.indexOf('Done') == -1) 
                    {
                        $('mainPA').options[0].selected = true;
                    }
                    
                    /////fill in pitchtypes menu
                    
                    for (x = 0; x < pitchTypeElem.length; x++) 
                    {
                        if (pitchTypeElem.options[x].value.replaceWS() == usingPitchType) 
                        {
                            pitchTypeElem.options[x].selected = true;
                        }
                    }
                    
                    /////fill in geartypes menu
                    switch (usingGearType)
                    {
                        case "BEVEL":
                            usingGearType = "BEVEL/MITER";
                            break;
                        case "WORMGEAR":
                            usingGearType = "WORM GEAR";
                            break;
                        case "SPIRALMITER":
                            usingGearType = "SPIRAL MITER";
                            break;
                        case "PINIONWIRE":
                            usingGearType = "PINION WIRE";
                            break;
                        case "STEMPINION":
                            usingGearType = "STEM PINION";
                            break;
                        case "TIMINGPULLEY":
                            usingGearType = "TIMING PULLEY";
                            break;
                    }
                    
                    for (x = 0; x < gearTypeElem.length; x++) 
                    {
                        if (gearTypeElem.options[x].value.toUpperCase() == usingGearType.toUpperCase()) 
                        {
                            gearTypeElem.options[x].selected = true;
                        }
                    }
                    
                    /////fill in the materials menu
                    materialObj = $('mainMaterial');
                    fillSelects(materialObj, materials, lastMaterial);
                    
                    /////fill in the pitches menu
                    pitchObj = $('mainPitch');
                    fillSelects(pitchObj, pitches, lastPitch);
                    
                    /////fill in the teeth menu
                    teethObj = $('mainTeeth');
                    fillSelects(teethObj, teeth, lastTeeth);
                    
                    /////fill in the hubStyles menu
                    hubStyleObj = $('mainHubStyle');
                    fillSelects(hubStyleObj, hubStyle, lastHubStyle);
                    
                    ////create header row
                    var headerRow = document.createElement('tr');
                    headerRow.setAttribute('id', 'headerRow');
                    headerRow.setAttribute(attrClass, 'headerRow');
                    var existingHeader = $('headerRow');
                    var mainTable = $('mainTable');
                    var allTableTRs = mainTable.getElementsByTagName('tr');
                    var trCount = allTableTRs.length;
                    
                    //////if a header exists clear it to make room for a new one
                    if (existingHeader) 
                    {
                        var parent = $('tableBody');
                        var rowIDs = new Array();
                        parent.removeChild(existingHeader);
                        ///had to make it -2 to account for the blank row which had to be used to make xhtml compliant
                        for (a = 0; a < trCount - 2; a++) 
                        {
                            parent.removeChild($('row' + a));
                        }
                    }
                    
                    /////fill in the table header
                    for (x = 0; x < tableHeader.length; x++) 
                    {
                        headerRow.appendChild(createCellWithText(tableHeader[x], 'th', tableHeader[x], orderBy));
                        $('tableBody').appendChild(headerRow);
                    }
                    
                    /////fill main part of the table with gear specs
                    z = 0;
                    for (x = 0; x < partInfo.length; x++) 
                    {
                        if (browserName != 'msie') 
                        {
                            z++;
                            percLeft = 100 * (z / parseInt(partInfo.length));
                            updateInfo2.value = percLeft.toFixed(0) + "%";
                        }
                        
                        var bodyRow = document.createElement('tr');
                        bodyRow.setAttribute(attrClass, 'allRows');
                        bodyRow.setAttribute('id', 'row' + x);
                        
                        bodyRow.onmouseover = function()
                        {
                            changeBackground('#666666', this.id);
                            if ('QUOTE' + this.id.substr(3)) 
                            {
                                changeBackground('#3333cc', 'QUOTE' + this.id.substr(3));
                            }
                            
                            //changeBackground('#3333cc','PRICE'+this.id.substr(3));
                            if (gt1 == 'SPUR') 
                            {
                                changeBackground('#3333cc', 'CUSTOMIZE' + this.id.substr(3));
                            }
                            if (gt1 == 'SPUR' || gt1 == 'HELICAL') 
                            {
                                changeBackground('#3333cc', 'HT' + this.id.substr(3));
                            }
                            if (gt1 == 'SPUR' || gt1 == 'WORM GEAR' || gt1 == 'WORM' || gt1 == 'RACK' || gt1 == 'INTERNAL' || 'HELICAL') 
                            {
                                changeBackground('#3333cc', 'CAD' + this.id.substr(3));
                            }
                        }
                        
                        bodyRow.onmouseout = function()
                        {
                            var rowID = 'row' + x;
                            changeBackground('#333333', this.id);
                            changeBackground('#343C63', 'QUOTE' + this.id.substr(3));
                            
                            if (gt1 == 'SPUR') 
                            {
                                changeBackground('#343C63', 'CUSTOMIZE' + this.id.substr(3));
                            }
                            if (gt1 == 'SPUR' || gt1 == 'HELICAL') 
                            {
                                changeBackground('#343C63', 'HT' + this.id.substr(3));
                            }
                            if (gt1 == 'SPUR' || gt1 == 'WORM GEAR' || gt1 == 'WORM' || gt1 == 'RACK' || gt1 == 'INTERNAL' || 'HELICAL') 
                            {
                                changeBackground('#343C63', 'CAD' + this.id.substr(3));
                            }
                        }
                        partSpecs = partInfo[x].split(',');
                        bodyRow.setAttribute('id', 'row' + x);
                        for (y = 0; y < partSpecs.length - 1; y++) 
                        {
                            cellId = tableHeader[y] + x;
                            bodyRow.appendChild(createCellWithText(partSpecs[y], 'td', cellId));
                            $('tableBody').appendChild(bodyRow);
                        }
                        
                        //////adds or removes checks in the quote column based on the partnos in the quote form
                        for (ct = 1; ct < 10; ct++) 
                        {
                            if (quotePart[ct].value == $('PARTNO' + x).innerHTML) 
                            {
                                document.forms[0].elements['QUOTE' + x + 'a'].checked = true;
                            }
                        }
                    }
                    
                    ///control the "loading" text and the progress meter image
                    loadMsg.innerHTML = "Updating Table...";
                    loadMsg.style.display = 'none';
                    //loadImgD = browserName == 'msie' ? loadImg.style.display = 'none' : bcm = 0;
                    $('loadingImg').hide();
                    doneMsg.style.display = '';
                    doneMsg.innerHTML = errorMsg;
                }
                
                ///enable menus that were disabled in the changeMenus function   
                gearTypeElem.disabled = false;
                materialElem.disabled = false;
                pitchElem.disabled = false;
                teethElem.disabled = false;
                paElem.disabled = false;
                hubStyleElem.disabled = false;
                if (gearTypeElem.value != "SPUR") 
                {
                    pitchTypeElem.disabled = true;
                }
                else 
                {
                    pitchTypeElem.disabled = false;
                }
                unitsElem.disabled = false;
                loadImages();
            }
            else 
            {
                alert("There was a problem retrieving the data: " + req.statusText + "\n An alert was just emailed to the staff at Rush Gears.");
                /////////put a call to an email xml email page to send an alert that the page is not working properly
            }
        }
    },
    
    showHP: function(req)
    {
        if (req.readyState == 4) 
        {
            if (req.status == 200) 
            {
                var results = req.responseText;
                allresults = results.split("*");
                for (counter = 0; counter < allresults.length - 1; counter++) 
                {
                    var torque = allresults[0];
                    var stress = allresults[1];
                    var velocity = allresults[2];
                    var hp = allresults[3];
                    var torqueinlbs = allresults[4];
                    var pd = allresults[5];
                    var od = allresults[6];
                    var sf = allresults[7];
                    var partno = allresults[8];
                    var cellId = allresults[9];
                }
                
                var scr_w = screen.availWidth;
                var scr_h = screen.availHeight;
                var browseWidth, browseHeight;
                
                if (document.layers || (document.getElementById && !document.all)) 
                {
                    browseWidth = window.outerWidth;
                    browseHeight = window.outerHeight;
                }
                else 
                    if (document.all) 
                    {
                        browseWidth = document.body.clientWidth;
                        browseHeight = document.body.clientHeight;
                    }
                
                var cellBox = $(cellId);
                var hpBox = $('hpTable');
                var cellPosX = findPosX(cellBox);
                var cellPosY = findPosY(cellBox);
                var cellBoxH = cellBox.offsetHeight;
                
                var hpTitleVal = $('hpTitle');
                hpTitleVal.innerHTML = "Horsepower &amp; Torque Info for " + partno + " <span id=\"close\">&nbsp;&nbsp;&nbsp;[close]</span>";
                var torqueVal = $('torque');
                torqueVal.innerHTML = torque;
                var stressVal = $('stress');
                stressVal.innerHTML = stress;
                var torqueInLbsVal = $('torqueInLbs');
                torqueInLbsVal.innerHTML = torqueinlbs;
                var velocityVal = $('velocity');
                velocityVal.innerHTML = velocity;
                var hpVal = $('horsepower');
                hpVal.innerHTML = hp;
                var rpmVal = $('rpm');
                rpmVal.innerHTML = rpms;
                var sfVal = $('sf');
                sfVal.innerHTML = sf;
                var svcFact = $('svcf');
                svcFact.innerHTML = svcFactor;
                
                
                //iframe for ie -- doesn't allow select boxes to show through hp popup
                var ieIframe = browserName == 'msie' ? $('HPiframeForIE') : 0;
                
                //control the positioning of the hp popup
                hpBox.style.display = '';
                showIEiframe = browserName == 'msie' ? ieIframe.style.display = '' : 0;
                var hpBoxW = hpBox.offsetWidth;
                var hpBoxH = hpBox.offsetHeight;
                var pageOff = browserName == 'msie' ? document.body.scrollTop : window.pageYOffset;
                
                if (parseInt(cellPosY) - parseInt(pageOff) < 250) 
                {
                    cellPosY += 2 + cellBoxH;
                    hpBox.style.top = parseInt(cellPosY) + 'px';
                    hpBox.style.left = parseInt(cellPosX + 35) + 'px';
                    ieIframeTop = browserName == 'msie' ? ieIframe.style.top = parseInt(cellPosY) + 'px' : 0;
                    ieIframeLeft = browserName == 'msie' ? ieIframe.style.left = parseInt(cellPosX + 35) + 'px' : 0;
                }
                else 
                {
                    cellPosY -= cellBoxH;
                    hpBox.style.top = parseInt(cellPosY) - parseInt(hpBoxH) + parseInt(cellBoxH) + 'px';
                    hpBox.style.left = parseInt(cellPosX + 35) + 'px';
                    ieIframeTop = browserName == 'msie' ? ieIframe.style.top = parseInt(cellPosY) - parseInt(hpBoxH) + parseInt(cellBoxH) + 'px' : 0;
                    ieIframeLeft = browserName == 'msie' ? ieIframe.style.left = parseInt(cellPosX + 35) + 'px' : 0;
                    ieIframeWidth = browserName == 'msie' ? ieIframe.style.width = hpBoxW : 0;
                    ieIframeHeight = browserName == 'msie' ? ieIframe.style.height = hpBoxH : 0;
                }
            }
        }
    },
    
    getDownload: function(req)
    {
        if (req.readyState == 4) 
        {
            if (req.status == 200) 
            {
                var cadDownload = req.responseText;
				
                if (cadDownload.substr(0, 4).toLowerCase() == 'http') 
                {
                    cadDownload = cadDownload.split(']');
                    var downloadLink = cadDownload[0];
					$('cadSid').value = cadDownload[1];
                    var downloadMsg = $('downloadMsg');
                    //downloadMsg.style.display = 'none';
                    var drawingOrModel = new findRadioBtn(formInfo.drawingModel);
                    var drawingOrModelVal = drawingOrModel.buttonValue;
                    
                    if (drawingOrModelVal == 'drawing') 
                    {
                        dFormat = $('fExtension2D').value;
                    }
                    else 
                    {
                        dFormat = $('fExtension3D').value;
                    }
                    
                    if (browserName == 'msie') 
                    {
                        if (dFormat == 'pdf' || dFormat == 'jpg' || dFormat == 'jpeg' || dFormat == 'tif' || dFormat == 'tiff') 
                        {
                        
                            win = window.open(downloadLink);
                            if (win) 
                            {
                                setTimeout("controlButtons()", 3000);
                                $('downloadMsg').hide();
                            }
                        }
                        else 
                        {
                            $('downloadLinkLink').innerHTML = '<label class="medwhite">Your cad file is ready to be downloaded:</label><br /><br /><a id="dLoadLink" href="' + downloadLink + '">Download CAD file </a>';
                            
                            if ($('cadIframeBox').visible()) 
                            {
                                $('cadChoice').style.zIndex = 400;
                                $('downloadLinkWin').style.zIndex = 1000;
                                $('downloadLinkWin').style.backgroundColor = '#cc0033';
                            }
                            
                            if (!$('cadChoice').visible()) 
                            {
                                $('cadChoice').show();
                            }
                            $('downloadLinkWin').show();
                            
                            //cadIframe.location.replace(downloadLink);
                            setTimeout("controlButtons()", 3000);
                            $('downloadMsg').hide();
                        }
                    }
                    else 
                    {
                        if (dFormat == 'pdf' || dFormat == 'jpg' || dFormat == 'jpeg') 
                        {
                            win = window.open(downloadLink);
                            if (win) 
                            {
                                setTimeout("controlButtons()", 3000);
                                $('downloadMsg').hide();
                            }
                        }
                        else 
                        {
                            cadIframe.src = downloadLink;
                            setTimeout("controlButtons()", 3000);
                            $('downloadMsg').hide();
                        }
                    }
                    $('cadChoiceMeterDiv').hide();
                    clearInterval(cadTimer);
                    setCadTimer('setZero');
                }
                else 
                {
                    $('cadChoiceMeterDiv').hide();
                    setTimeout("controlButtons()", 3000);
                    $('downloadMsg').hide();
                    clearInterval(cadTimer);
                    setCadTimer('setZero');
                    var email = readCookie('cgID');
                    getPage('Tech_Tools/' + folder + '/bugReport.php?report=There was an error getting the link for a CAD model. function=getDownload error= '+cadDownload+'&e=' + email, '');
                    if (cadDownload.toLowerCase() == 'errorserverdown') 
					{
						alert('The server that produces the models is down.  We are aware of the problem and will try to fix it as soon as possible. Please try again later today.');
					}
					else 
					{
						alert('There was a fatal error producing that part. A bug report was sent to our staff. \r\nWe will begin working on a solution right away. Call 800-523-2576 if you have any questions.\r\nYou can try clearing your cache then refreshing the page.');
					}
                }
            }
        }
    },
    
    getLink: function(req)
    {
        if (req.readyState == 4) 
        {
            if (req.status == 200) 
            {
                ///////  0      1        2        3                4              5               6
                ///////$link]$sessId]$cellId]$_2DformatCSV]$_2DformatExtsCSV]$_3DformatCSV]$_3DformatExtsCSV;
                var cadResults = req.responseText;
                if (cadResults.substr(0, 4).toLowerCase() == 'http' || cadResults.substr(0, 4).toLowerCase() == 'none') 
                {
                    cadResults = cadResults.split(']');
                    var cadLink = cadResults[0];
                    var cadSessId = cadResults[1];
                    var cellId = cadResults[2];
                    var $2DformatStr = cadResults[3];
                    $2DformatStr = '--#' + $2DformatStr;
                    $2DformatExtensionsStr = cadResults[4];
                    var $3DformatStr = cadResults[5];
                    $3DformatStr = '--#' + $3DformatStr;
                    $3DformatExtensionsStr = cadResults[6];
                    var cadChoiceLoadingObj = $('cadChoiceLoading');
                    cadChoiceLoadingObj.innerHTML = '';
                    
                    //////check for xml errors sent back from 3Dlinks2 OR cadFormats
                    if (cadLink.substr(0, 5) == 'Error') 
                    {
                        cadLink = 'partSearchError.php?error=' + cadLink;
                        if (browserName == 'msie') 
                        {
                            cadIframe.location.replace(cadLink);
                        }
                        else 
                        {
                            cadIframe.src = cadLink;
                        }
                        return;
                    }
                    
                    if (!filledCadFormats) 
                    {
                        //////get the 2D model formats and corresponding versions
                        //$2DformatExtensionsStr = $2DformatExtensionsStr.substr(0,$2DformatExtensionsStr.length-1);
                        $2DformatExtensions = $2DformatExtensionsStr.split(',');
                        var $2DformatsVersions = new Array();
                        $2DformatsVersions = $2DformatStr.split('#');
                        $2DfCount = $2DformatsVersions.length;
                        var get2DFormats = new Array;
                        $2Dformats = '';
                        $2Dversions = new Array();
                        //$2Dversions[0] = '';
                        
                        for (x = 0; x < $2DfCount; x++) 
                        {
                            get2DFormats[x] = $2DformatsVersions[x].split(',');
                            $2Dversions[x] = get2DFormats[x].length > 1 ? '--,' : '';
                            for (z = 1; z < get2DFormats[x].length; z++) 
                            {
                                if (get2DFormats[x][z]) 
                                {
                                    $2Dversions[x] += get2DFormats[x][z] + ',';
                                    $2Dversions[x] = $2Dversions[x].split(',');
                                }
                            }
                            
                            $2Dformats += get2DFormats[x][0] + ',';
                        }
                        
                        $2DformatsObj = $('t2Dformats');
                        $2DcadChoiceFormatsObj = $('cadChoice2Dformats');
                        $2Dformats = $2Dformats.substr(0, $2Dformats.length - 1).split(',');
                        fillFormatSelects('2D', $2DformatsObj, $2Dformats);
                        fillFormatSelects('2D', $2DcadChoiceFormatsObj, $2Dformats);
                        
                        //////get the 3D model formats and corresponding versions
                        //$3DformatExtensionsStr = $3DformatExtensionsStr.substr(0,$3DformatExtensionsStr.length-1);
                        $3DformatExtensions = $3DformatExtensionsStr.split(',');
                        var $3DformatsVersions = new Array();
                        $3DformatsVersions = $3DformatStr.split('#');
                        $3DfCount = $3DformatsVersions.length;
                        var get3DFormats = new Array;
                        $3Dformats = '';
                        $3Dversions = new Array();
                        //$3Dversions[0] = '';
                        
                        for (x = 0; x < $3DfCount; x++) 
                        {
                            get3DFormats[x] = $3DformatsVersions[x].split(',');
                            $3Dversions[x] = get3DFormats[x].length > 1 ? '--,' : '';
                            for (z = 1; z < get3DFormats[x].length; z++) 
                            {
                                if (get3DFormats[x][z]) 
                                {
                                    $3Dversions[x] += get3DFormats[x][z] + ',';
                                    $3Dversions[x] = $3Dversions[x].split(',');
                                }
                            }
                            
                            $3Dformats += get3DFormats[x][0] + ',';
                        }
                        
                        $3DformatsObj = $('t3Dformats');
                        $3DcadChoiceFormatsObj = $('cadChoice3Dformats');
                        $3Dformats = $3Dformats.substr(0, $3Dformats.length - 1).split(',');
                        fillFormatSelects('3D', $3DformatsObj, $3Dformats);
                        fillFormatSelects('3D', $3DcadChoiceFormatsObj, $3Dformats);
                    }
                    //////store the cad session id for re-use
                    cadSessIdHolder = $('cadSid');
                    cadSessIdHolder.value = cadSessId;
                    //cadIframe = $('cadIframe');
                    cadBox = $('cadIframeBox');
                    
                    //display the download controls
                    $('downloadControls').show();;
                    $('cadView').show();
                    if (cadLink == 'none-true') 
                    {
                        $('cadIframeBox').show();
                    }
                    
                    $('cadChoiceMeterDiv').hide();
                    clearInterval(cadTimer);
                    setCadTimer('setZero');
                    
                    if (usingCustom) 
                    {
                        view2Dbtn1.disabled = true;
                    }
                    else 
                    {
                        view2Dbtn1.disabled = false;
                    }
                    
                    if (browserName == 'msie') 
                    {
                        if (cadLink.substr(0, 4) != 'none') 
                        {
                            cadIframe.location.replace(cadLink);
                            setTimeout("controlButtons()", 3000);
                        }
                        else 
                        {
                            controlButtons();
                            //cadIframe.src = '/Tech_Tools/' + folder + '/downloadText.php';
                        }
                    }
                    else 
                    {
                        if (cadLink.substr(0, 4) != 'none') 
                        {
                            cadIframe.src = cadLink;
                            cadIframe.onload = function()
                            {
                                setTimeout("controlButtons()", 3000);
                            }
                        }
                        else 
                        {
                            controlButtons();
                            //cadIframe.src = '/Tech_Tools/' + folder + '/downloadText.php';
                        }
                    }
                    
                    if (cadLink == 'none-false') 
                    {
                        filledCadFormats = true;
                    }
                }
                else 
                {
                    $('cadChoiceMeterDiv').hide();
                    setTimeout("controlButtons()", 3000);
                    $('downloadMsg').hide();
                    clearInterval(cadTimer);
                    setCadTimer('setZero');
                    var email = readCookie('cgID');
                    getPage('Tech_Tools/' + folder + '/bugReport.php?report=There was an error getting the link for a CAD model. function=getLink&e=' + email +'&info=' + cadResults, '');
                    alert('There was a fatal error producing that part. A bug report was sent to our staff. \r\nWe will begin working on a solution right away. Call 800-523-2576 if you have any questions.')
                }
            }
        }
        return;
    },
    
    showToothRange: function(req)
    {
        if (req.readyState == 4) 
        {
            if (req.status == 200) 
            {
                var results = req.responseText;
                if (results.indexOf('empty') != -1) 
                {
                    doNothing = true;
                }
                else 
                {
                    ////The table info is broken up this way:
                    ////   0                  1                               2            3            4         5         6       7       8        9            10           11         12       13      14      15     16
                    ////header]allOfThePartsAndTheirSpecs(delimitedBy(*))]Materials]MaterialSelected]Pitches]PitchSelected]PDs]PDselected]Teeth]TeethSelected]Style(AorB)]styleSelected]orderBy]errorMsg]HPOWER]pageNum]maxPage
                    
                    var tableInfo2 = results.split(']');
                    var tableHeader2 = new Array();
                    var toothArray = new Array();
                    tableHeader2 = tableInfo2[0].split(',');
                    toothPos = tableHeader2.indexOf('TEETH');
                    partInfo2 = tableInfo2[1].split('*');
                    for (z = 0; z < partInfo2.length; z++) 
                    {
                        partSpecs2 = partInfo2[z].split(',');
                        toothArray[z] = partSpecs2[toothPos];
                    }
                    tCount = toothArray.length;
                    if (tCount > 1) 
                    {
                        toothRangeTxt = "Tooth range on this page is " + toothArray[0] + " to " + toothArray[tCount - 1];
                    }
                    else 
                    {
                        toothRangeTxt = "The tooth range on this page is " + toothArray[0] + " (only one part on this page)";
                    }
                    toothDiv = $('toothRange');
                    toothDiv.innerHTML = toothRangeTxt;
                    toothDiv.style.top = parseInt(yMousePos) - 50 + 'px';
                    toothDiv.style.left = parseInt(xMousePos) - 90 + 'px';
                    toothDiv.style.display = '';
                }
            }
        }
    },
    
    processEmail: function(req)
    {
        if (req.readyState == 4) 
        {
            if (req.status == 200) 
            {
                var results = req.responseText;
                var quoteInfo = results.split('|');
                var loggedIn = quoteInfo[0];
                
                switch (loggedIn)
                {
                    case "error":
                        alert('Your email address was not properly formatted. Please re-enter your email address and try again.');
                        break;
                    case "needToLogIn":
                        regTable.style.display == 'none' ? regTable.style.display = '' : '';
                        email1.value.length > 0 && email2.value.length < 1 ? email2.value = email1.value : '';
                        browserName == 'msie' ? quoteT.filters.alpha.opacity = 80 : quoteT.style.MozOpacity = .8;
                        break;
                    case "loggedIn":
                        var Qemail = quoteInfo[1];
                        Qemail.length > 0 ? email2.value = Qemail : '';
                        var Qfname = quoteInfo[2];
                        Qfname.length > 0 ? fname.value = Qfname : '';
                        var Qlname = quoteInfo[3];
                        Qlname.length > 0 ? lname.value = Qlname : '';
                        var Qcompany = quoteInfo[4];
                        Qcompany.length > 0 ? company.value = Qcompany : '';
                        var Qstreet = quoteInfo[5];
                        Qstreet.length > 0 ? street.value = Qstreet : '';
                        var Qcity = quoteInfo[6];
                        Qcity.length > 0 ? city.value = Qcity : '';
                        var Qstate = quoteInfo[7];
                        for (x = 0; x < state.length; x++) 
                        {
                            if (state.options[x].value.toLowerCase() == Qstate.toLowerCase()) 
                            {
                                state.options[x].selected = true;
                            }
                        }
                        var Qzip = quoteInfo[8];
                        Qzip.length > 0 ? zip.value = Qzip : '';
                        var Qphone = quoteInfo[9];
                        Qphone.length > 0 ? phone.value = Qphone : '';
                        var Qfax = quoteInfo[10];
                        Qfax.length > 0 ? fax.value = Qfax : '';
                        var Qcountry = quoteInfo[11];
                        for (x = 0; x < country.length; x++) 
                        {
                            if (country.options[x].value.toLowerCase() == Qcountry.toLowerCase()) 
                            {
                                country.options[x].selected = true;
                            }
                        }
                        var QemailOrFaxIt = quoteInfo[12];
                        if (QemailOrFaxIt) 
                        {
                            switch (QemailOrFaxIt.toLowerCase())
                            {
                                case "faxit":
                                    faxIt.checked = true;
                                    break;
                                case "emailit":
                                    emailIt.checked = true;
                                    break;
                                default:
                                    emailIt.checked = true;
                            }
                        }
                        
                        setTimeout("quoteControl('none')", 2000);
                        break;
                }
            }
            else 
            {
                var emailCode = new Array(115, 97, 108, 101, 115, 115, 116, 97, 102, 102, 64, 114, 117, 115, 104, 103, 101, 97, 114, 115, 46, 99, 111, 109);
                var postEmailCode = '';
                for (i = 0; i < emailCode.length; i++) 
                {
                    postEmailCode += String.fromCharCode(emailCode[i]);
                }
                
                alert('An internal Server Error occured: PQd. Could not connect to Rush Gears. \n\n Try pressing Send again or email us at ' + postEmailCode + '.');
            }
        }
    },
    
    processQuote: function(req)
    {
        if (req.readyState == 4) 
        {
            if (req.status == 200) 
            {
                var results = req.responseText;
                if (results == 'error') 
                {
                    alert('There was an error processing the RFQ.');
                }
                else 
                {
                    if (regTable.style.display == '') 
                    {
                        regTable.style.display = 'none';
                        regSendMsg.style.display = 'none';
                        regSendMeter.style.display = 'none';
                        
                        if (browserName == 'msie') 
                        {
                            quoteT.filters.alpha.opacity = 100;
                        }
                        else 
                        {
                            quoteT.style.MozOpacity = 1;
                        }
                    }
                    else 
                    {
                        //quoteSendMsg.style.display = 'none';
                        quoteSendMeter.style.display = 'none';
                    }
                    
                    lastRefNumber = results;
                    sendRFQbtn1.value = "Successfully Sent";
                    sendRFQbtn1.disabled = true;
                    quoteSendMsg.style.display = '';
                    quoteSendMsg.innerHTML = "Quote Sent!<br />Reference# " + results;
                    alert('We received your request for quote.  Your reference number is ' + results);
                    sendCell.style.background = "#cc3333";
                    setTimeout('sendRFQbtn1.disabled=false;sendRFQbtn1.value = "Send"', 3000);
                    
                }
            }
        }
    },
    
    getBacklash: function(req)
    {
        if (req.readyState == 4) 
        {
            if (req.status == 200) 
            {
                var results = req.responseText;
                var backlashArr = results.split("]");
                var pitch = '';
                var letterID = '';
                var ID = '';
                
                for (x = 0; x < backlashArr.length - 1; x++) 
                {
                
                    backlashSubArr = backlashArr[x].split(",");
                    pitch = backlashSubArr[0];
                    ID = backlashSubArr[1];
                    letterID = backlashSubArr[2];
                    pitchBacklash[pitch] = ID;
                    backlashID[pitch] = letterID;
                }
            }
        }
    },
    
    bugReportOK: function(req)
    {
        if (req.readyState == 4) 
        {
            if (req.status == 200) 
            {
                var results = req.responseText;
                var args = arguments.callee;
                if (!args.uid) 
                {
                    args.uid = 0;
                }
                args.uid++;
                var rnum = 5 - parseInt(args.uid);
                $('betaBugsBtn').value = 'Send Feedback';
                if (results == 'done') 
                {
                    //alert('Thank you for helping us make this a better program. We will begin working on this issue right away. \r\n\r\n You may submit up to ' + rnum + ' more reports.');
                    var thanks = new Mprompt('', '', '');
                    thanks.msg('Thank you for helping us make this a better program. <br />We will begin working on this issue right away. <br /> You may submit up to ' + rnum + ' more reports.');
                    thanks.hideElement(thanks.noBtn);
                    thanks.hideElement(thanks.cancelBtn);
                    thanks.hideElement(thanks.textInputHolder);
                    thanks.yesBtn.value = 'OK';
                    thanks.show();
                }
                else 
                {
                    alert('A problem on our end occured.  Please call 800-523-2576 x230');
                }
                
            }
            else 
            {
                alert('A problem on our end occured.  Please call 800-523-2576 x230.');
                $('betaBugsBtn').value = 'Send Feedback';
            }
        }
    },
    
    showUserParts: function(req)
    {
        if (req.readyState == 4) 
        {
            if (req.status == 200) 
            {
                var results = req.responseText;
                var mainList = $('cgUserPartsList');
                var spacer = new Array();
                for (var xx = 0; xx < 1000; xx++) 
                {
                    spacer[xx] = document.createElement('span');
                    spacer[xx].setAttribute('class', 'space2');
                    spacer[xx].appendChild(document.createTextNode(' '));
                }
                
                var userPartsSubArr = new Array();
                
                if (results != 'error' && results.substr(0, 8) != 'sqlerror' && results.length > 0) 
                {
                    var removePart = '';
                    var partPos = '';
                    var tt = 0;
                    
                    $$('#cgUserPartsList a').each(function(s)
                    {
                        id = s.id;
                        removePart = s.innerHTML;
                        partPos = results.indexOf(removePart);
                        if (partPos > -1) 
                        {
                            delimPos = results.indexOf(']');
                            results = results.substr(delimPos + 1);
                        }
                        
                        tt++;
                    })
                    
                    var userParts = results.split("]");
                    
                    var y = 0;
                    var labelColor = '#999999';
                    if (userParts.length < 2) 
                    {
                        $('loginBtn').disabled = false;
                        $('loginBtn').innerHTML = 'Get Parts';
                    }
                    
                    for (x = 0; x < userParts.length - 1; x++) 
                    {
                        var email = getEmail(true);
                        var partLabel = document.createElement('label');
                        partLabel.setAttribute('class', 'partLabelLI');
                        partLabel.appendChild(document.createTextNode('Part#: '));
                        partLabel.style.color = labelColor;//////////////had to add the style like this because internet explorer sucks
                        var partLink = document.createElement('a');
                        partLink.setAttribute('class', 'partLink');
                        partLink.setAttribute('id', 'partLink' + x);
                        partLink.onclick = function()
                        {
                            var bcm = '';
                            var y = 0;
                            var skipIt = false;
                            
                            for (var x = 0; x < gear.length - 1; x++) 
                            {
                                y++;
                                if (this.innerHTML == gear[y]['partno']) 
                                {
                                    skipIt = true;
                                }
                            }
                            if (skipIt) 
                            {
                                if (!$('customGearDiv').visible()) 
                                {
                                    justOpenCG();
                                }
                            }
                            else 
                            {
                                savePartsInCookie(this.innerHTML);
                                getPage('Tech_Tools/' + folder + '/findCustomParts.php?partno=' + this.innerHTML + '&email=' + email, 'fillCustomParts');
                            }
                        }
                        partLink.style.cursor = 'pointer';
                        partLink.style.textDecoration = 'underline';
                        var pitchLabel = document.createElement('label');
                        pitchLabel.setAttribute('class', 'partLabelLI');
                        pitchLabel.appendChild(document.createTextNode('Pitch: '));
                        pitchLabel.style.color = labelColor;
                        var pitchInfo = document.createElement('label');
                        pitchInfo.setAttribute('class', 'medwhite');
                        var gearTypeLabel = document.createElement('label');
                        gearTypeLabel.appendChild(document.createTextNode('Type: '));
                        gearTypeLabel.setAttribute('class', 'partLabelLI');
                        gearTypeLabel.style.color = labelColor;
                        var gearTypeInfo = document.createElement('label');
                        gearTypeInfo.setAttribute('class', 'medwhite');
                        var paLabel = document.createElement('label');
                        paLabel.appendChild(document.createTextNode('PA: '));
                        paLabel.setAttribute('class', 'partLabelLI');
                        paLabel.style.color = labelColor;
                        var paInfo = document.createElement('label');
                        paInfo.setAttribute('class', 'medwhite');
                        var teethLabel = document.createElement('label');
                        teethLabel.appendChild(document.createTextNode('Teeth: '));
                        teethLabel.setAttribute('class', 'partLabelLI');
                        teethLabel.style.color = labelColor;
                        var teethInfo = document.createElement('label');
                        teethInfo.setAttribute('class', 'medwhite');
                        
                        
                        userPartsSubArr = userParts[x].split(",");
                        partLink.appendChild(document.createTextNode(userPartsSubArr[0]));
                        pitchInfo.appendChild(document.createTextNode(userPartsSubArr[1]));
                        paInfo.appendChild(document.createTextNode(userPartsSubArr[2]));
                        teethInfo.appendChild(document.createTextNode(userPartsSubArr[3]));
                        gearTypeInfo.appendChild(document.createTextNode(userPartsSubArr[4]));
                        
                        var li = document.createElement('li');
                        li.setAttribute('class', 'cgLgListItem');
                        li.setAttribute('id', 'partLI' + x);
                        li.appendChild(partLabel);
                        li.appendChild(partLink);
                        li.appendChild(spacer[y]);
                        y++;
                        li.appendChild(gearTypeLabel);
                        li.appendChild(gearTypeInfo);
                        li.appendChild(spacer[y]);
                        y++;
                        li.appendChild(pitchLabel);
                        li.appendChild(pitchInfo);
                        li.appendChild(spacer[y]);
                        y++
                        li.appendChild(paLabel);
                        li.appendChild(paInfo);
                        li.appendChild(spacer[y]);
                        y++
                        li.appendChild(teethLabel);
                        li.appendChild(teethInfo);
                        li.appendChild(spacer[y]);
                        y++
                        li.appendChild(document.createElement('br'));
                        //li.appendChild(document.createElement('br'));
                        //li.appendChild(document.createElement('hr'));
                        mainList.appendChild(li);
                        $('loginBtn').disabled = false;
                        $('loginBtn').innerHTML = 'Get Parts';
                        
                        
                        
                    }
                    //clone the user parts div to show them in the cgCustomGearDiv
                    if ($('myParts')) 
                    {
                        $('myPartsOuterDiv').removeChild($('myParts'));
                    }
                    var cloneDiv = $('usersParts').cloneNode(true);
                    cloneDiv.id = 'myParts';
                    var cloneElements = cloneDiv.childNodes;
                    
                    for (var z = 0; z < cloneElements.length; z++) 
                    {
                        var theID = cloneElements[z].id;
                        if (theID) 
                        {
                            cloneElements[z].id += 'a';
                            if (cloneElements[z].hasChildNodes) 
                            {
                                changeChildNodeID(cloneElements[z].childNodes);
                            }
                        }
                    }
                    
                    var insertHere = $('myPartsDiv');
                    insertHere.parentNode.insertBefore(cloneDiv, insertHere);
                    
                    $$('#myParts a').each(function(s)
                    {
                        var id = s.id;
                        $(id).onclick = function()
                        {
                            var y = 0;
                            var skipIt = false;
                            for (var x = 0; x < gear.length - 1; x++) 
                            {
                                y++;
                                
                                if (this.innerHTML == gear[y]['partno']) 
                                {
                                    skipIt = true;
                                }
                            }
                            if (skipIt) 
                            {
                                if (!$('customGearDiv').visible()) 
                                {
                                    justOpenCG();
                                }
                            }
                            else 
                            {
                                savePartsInCookie(this.innerHTML);
                                getPage('Tech_Tools/' + folder + '/findCustomParts.php?partno=' + this.innerHTML + '&email=' + email, 'fillCustomParts');
                                if (keepMyPartsOpen == 'off') 
                                {
                                    slideOpenParts('myPart');
                                }
                            }
                        }
                    })
                    
                    if ($('customGearDiv').visible()) 
                    {
                        slideOpenParts('myPart');
                        $('cgLogin').hide();
                    }
                }
                else 
                {
                    $('loginBtn').disabled = false;
                    $('loginBtn').innerHTML = 'Get Parts';
                    if (results == 'error') 
                    {
                        alert('We could not find any part numbers with your email address');
                    }
                    else 
                    {
                        alert('There was an error retrieving the data.  Try again or call 800-523-2576 ext. 230 8am-5pm EDT');
                    }
                }
            }
        }
    },
    
    fillInPartnos: function(req)
    {
        if (req.readyState == 4) 
        {
            if (req.status == 200) 
            {
                var results = req.responseText;
                results = results.split(',');
                var partno = results[0];
                var gearIndex = results[1];
                var saved = results[2];
                saved = saved.replaceWS();
                gearIndex = gearIndex.replaceWS();
                var id = 'cgMainPN' + gearIndex;
                
                if (partno.substr(0, 8) != 'sqlerror') 
                {
                    savePartsInCookie(partno);
                    
                    if ($('cgPartBox' + gearIndex).checked || $('savePartEmailBtn').innerHTML.length > 0) 
                    {
                        $(id).innerHTML = partno;
                        $('savePartEmailBtn').innerHTML.indexOf('Saving') > -1 ? doNothing() : addToQuoteFile('cgPartBox' + gearIndex, partno);
                        $('lock' + gearIndex).src = '/images/locked.gif';
                        $('modifyButton' + gearIndex).value = 'modify';
                        $('modifyButton' + gearIndex).style.backgroundImage = '';
                        $('modifyButton' + gearIndex).disabled = false;
                        $('modifyButton' + gearIndex).style.backgroundColor = '#708090';
                        $('savePartEmailBtn').innerHTML = 'Save';
                        $('savePartEmailDiv').hide();
                        $('savePartEmailBtn1').innerHTML = '<img src="/images/cgSave.gif" alt="" class="cgSaveButton" /> Save Selected Item';
                        $('savePartEmailBtn1').value = '<img src="/images/cgSave.gif" alt="" class="cgSaveButton" /> Save Selected Item';
                        var emailCookie = readCookie('cgID');
                        if (saved == 'saved') 
                        {
                            $('savedLabel' + gearIndex).innerHTML = 'saved';
                            $('savedLabel' + gearIndex).style.color = '#990099';
                            $('savedLabel' + gearIndex).title = 'This item has been saved using your email address. You can retrieve whenever you come back to this site.';
                        }
                        
                    }
                    
                    
                    if (gear[CGN]) 
                    {
                        updateGear();
                    }
                    var x3 = findPosX($('hexBoreTab'));
                    var y3 = findPosY($('hexBoreTab'));
                    $('lockInfo').style.left = parseInt(x3) + 105 + 'px';
                    $('lockInfo').style.top = 290 + 'px';
                    $('lockInfo').show();
                    clearCover('show');
                }
                else 
                {
                    alert('There was an error. Please try again. \r\n If you get this error again please call\r\n 800-523-2576 and ask for website support.')
                }
            }
        }
    },
    
    fillCustomParts: function(req)
    {
        if (req.readyState == 4) 
        {
            if (req.status == 200) 
            {
                var results = req.responseText;
                
                if ($('getPartnoBtn').value == 'Searching') 
                {
                    $('getPartnoBtn').value = 'Search';
                }
                if (results.replaceWS() == 'error') 
                {
                    alert('There was an error reading that part number from the database. Please try again');
                    return;
                }
                $('cgUseStdKwy').checked = false;
                $('customGearDiv').style.top = 120 + findScrollY($(window)) + 'px';
                $('customGearDiv').show();
                $('opaqBack').show();
                if ($('startHere').visible()) 
                {
                    $('startHere').hide();
                    $('cgCover').hide();
                }
                results = results.split('|');
                var keys = results[0];
                
                var values = results[1];
                var savedOrNot = results[2];
                var forMod = results[3].replaceWS();
                eachKey = keys.split(']');
                var gearTypePos = eachKey.indexOf("GEARTYPE");
                var teethPos = eachKey.indexOf("TEETH");
                var pitchPos = eachKey.indexOf("PITCH");
                var partnoPos = eachKey.indexOf("PARTNO");
                var haPos = eachKey.indexOf("HA");
                var handPos = eachKey.indexOf("HAND");
                
                eachValue = values.split(']');
                var gearNum = gear.push(99) - 1;
                if (gearNum == 0) 
                {
                    gearNum = 1;
                }
                CGN = gearNum;
                gearCounter++;
                var teethVal = eachValue[teethPos];
                var pitchVal = eachValue[pitchPos];
                var partnoVal = eachValue[partnoPos];
                var haVal = eachValue[haPos];
                var handVal = eachValue[handPos];
                $('cgGearType').value = eachValue[gearTypePos].toUpperCase();
                switch (eachValue[gearTypePos].toLowerCase())
                {
                    case "spur":
                        gear[gearCounter] = new Spur(teethVal, pitchVal);
                        break;
                    case "helical":
                        gear[gearCounter] = new Helical(teethVal, pitchVal, haVal, handVal);
                        break;
                }
                var bcmm = "";
                
                
                var id = 'cgMainPN' + CGN;
                var x = 0;
                var bcm = '';
                var bcm2 = '';
                var bcm3 = '';
				var keyName = '';
                for (x = 0; x < eachKey.length; x++) 
                {
                    zz = x;
                    bcm += 'x=' + x + '  zz=' + zz + '  eachkey=' + eachKey[x] + '  eachVal=' + eachValue[x] + '\r\n';
                    if (eachKey[zz] != "valuestr3") 
                    {
                        if (eachKey[zz] == 'material' || eachKey[zz] == 'MATERIAL') 
                        {
                            switch (eachValue[x])
                            {
                                case "HARDTEETH":
                                    eachValue[x] = "HARD TEETH";
                                    break;
                                case "STAINLESSSTEEL":
                                    eachValue[x] = "STAINLESS STEEL";
                                    break;
                                case "17-4PHCOND1150":
                                    eachValue[x] = "17-4 PH COND 1150";
                                    break;
                                case "CASTIRON":
                                    eachValue[x] = "CAST IRON";
                                    break;
                                default:
                                    eachValue[x] = eachValue[x];
                            }
                        }
                    }
                    
                    //get and set the values for keyways and setscrews
                    if (eachKey[x].length == 4 && eachKey[x].substr(0, 3).toLowerCase() == 'key') 
                    {
						keyName = eachKey[x].toLowerCase();
                        gear[gearCounter][keyName] = eachValue[x].toLowerCase();
                    }					
                }
                //alert(bcm);								
                
                $$('input.cgGearSpec', 'select.cgGearSpec').each(function(s)
                {
                    var newID = s.id.substr(2).toLowerCase();
                    var newValPos = eachKey.indexOf(s.id.substr(2).toUpperCase());
                    var newVal = eachValue[newValPos];
                    
                    if (typeof gear[CGN][newID] != 'function') 
                    {
                        if (newID.toLowerCase() == 'usestdkwy') 
                        {
                            if (newVal.toLowerCase() == 'true') 
                            {
                                $('cgUseStdKwy').checked = true;
                            }
                            else 
                            {
                                $('cgUseStdKwy').checked = false;
                            }
                        }
                        if (newID.toLowerCase() == 'usestdss') 
                        {
                            if (newVal.toLowerCase() == 'true') 
                            {
                                $('cgUseStdSS').checked = true;
                            }
                            else 
                            {
                                $('cgUseStdSS').checked = false;
                            }
                        }
                        
                        gear[CGN][newID] = newVal;
                    }
                    
                    $(s.id).value = newVal;
                });
                
                //turn on/off the keyway and setscrew images
                $$('img.cgGearSpecImg').each(function(s)
                {
                    var newID = s.id.substr(2).toLowerCase();
                    newID = newID.replaceThis('on');
                    var newValPos = eachKey.indexOf(newID.toUpperCase());
                    var newVal = eachValue[newValPos];
                    if (newVal) 
                    {
                        gear[CGN][newID] = newVal.toLowerCase();
                    }
                });
                
                if (forMod == 'true') 
                {
                    gear[CGN].partno = '';
                }
                else 
                {
                    gear[CGN].partno = partnoVal;
                }
                
                
                createCGpartList('Item ' + CGN, 'cgPart' + CGN, CGN, gear[CGN].partno);
                updateGear();
                
                $('savedLabel' + CGN).innerHTML = savedOrNot;
                if (savedOrNot.replaceWS() == 'saved') 
                {
                    $('savedLabel' + CGN).style.color = '#990099';
                    $('savedLabel' + CGN).innerHTML = 'saved';
                    $('savedLabel' + CGN).style.color = '#990099';
                    $('savedLabel' + CGN).title = 'This item has been saved using your email address. You can retrieve it whenever you come back to this site.';
                    gear[CGN].saved = true;
                }
                else 
                {
                    $('savedLabel' + CGN).style.color = '#666666';
                }
                
                $('savePartEmailBtn1').innerHTML = '<img src="/images/cgSave.gif" alt="" class="cgSaveButton" /> Save Selected Item';
                $('savePartEmailBtn1').value = '<img src="/images/cgSave.gif" alt="" class="cgSaveButton" /> Save Selected Item';
                var x3 = findPosX($('hexBoreTab'));
                var y3 = findPosY($('hexBoreTab'));
                $('lockInfo').style.left = parseInt(x3) + 105 + 'px';
                $('lockInfo').style.top = 290 + 'px';
                $('lockInfo').show();
                
                //highlight the current gear
                
                highlightCurrentGear(CGN);
                $('allCGparts').scrollTop = $('allCGparts').scrollHeight + 100;
                
                if (forMod != 'true') 
                {
                    $(id).innerHTML = eachValue[1];
                    
                    $('lock' + CGN).src = '/images/locked.gif';
                    $('modifyButton' + CGN).value = 'modify';
                    $('modifyButton' + CGN).style.backgroundImage = '';
                    $('modifyButton' + CGN).disabled = false;
                    $('modifyButton' + CGN).style.backgroundColor = '#708090';
                    clearCover('show');
                }
            }
        }
    },
    
    getCustomGear: function(req)
    {
        if (req.readyState == 4) 
        {
            if (req.status == 200) 
            {
                var results = req.responseText;
                results = results.split(',');
                var partno = results[0];
                var gearIndex = results[1].replaceWS();
                var id = 'cgMainPN' + gearIndex;
                id = id.replaceWS();
                $(id).innerHTML = partno;
                savePartsInCookie(partno);
                //the clear cover is used to block all selects and text inputs
                clearCover('show');
                $('lock' + gearIndex).src = '/images/locked.gif';
                $('modifyButton' + gearIndex).value = 'modify';
                $('modifyButton' + gearIndex).style.backgroundImage = '';
                $('modifyButton' + gearIndex).disabled = false;
                $('modifyButton' + gearIndex).style.backgroundColor = '#708090';
                
                if (partno.substr(0, 8) != 'sqlerror') 
                {
                    var cadId = $('cadSid').value;
                    var gtype = get3Dgeartype(gear[CGN].geartype);
                    var downloadFormat = $('fExtension3D').value;
                    var downloadVersion = $('t3Dversions').value;
                    
                    if (platform == 'linux') 
                    {
                        platform = 'unix';
                    }
                    
                    os = platform
                    //var units = new findRadioBtn(formInfo.cgUnitsRad);
                    //var unitsVal = units.buttonValue;
                    //gear[CGN].units = unitsVal;
                    usingCustom = true;
                    showCustomCadChoice(partno);
                    var x3 = findPosX($('hexBoreTab'));
                    var y3 = findPosY($('hexBoreTab'));
                    $('lockInfo').style.left = parseInt(x3) + 105 + 'px';
                    $('lockInfo').style.top = 290 + 'px';
                    $('lockInfo').show();
                    //getCadLink('CAD0', 'view');
                
                
                }
                else 
                {
                    alert('There was an error. Please try again. \r\n If you get this error again please call\r\n 800-523-2576 and ask for website support.')
                }
            }
        }
    }
};
