// btnOrgActions() - Check the org type select statement
function btnOrgActions() {
    var oOrgName, oOrgType, fldEntry, oCountry, oCLabel
    oCLabel  = idObj('CountryLabel');
    oCountry = idObj('cCountry');
    oOrgName = idObj('cOrgNameLabel');
    oOrgType = idObj("cOrgType");

    // Which did they choose
    fldEntry = getSelectedValue(oOrgType);
    switch (fldEntry) {
    case 'UM':
        oCLabel.innerHTML  = "Country Stationed at";
        oOrgName.innerHTML = "Agency/Base/Unit Name:";
        if (!hasClass(oOrgName, 'red'))  {
            addClass(oOrgName, "red");
        }
        break;
    case 'UG':
        oCLabel.innerHTML  = "Country Stationed at";
        oOrgName.innerHTML = "Agency Name:";
        if (!hasClass(oOrgName, 'red'))  {
            addClass(oOrgName, "red");
        }
        break
    default:
        oCLabel.innerHTML  = "Country";
        oOrgName.innerHTML = "Organization Name:";
        if (hasClass(oOrgName, 'red'))  {
            removeClass(oOrgName, "red");
        }
    }

    if (!Empty(fldEntry))   {

        // If this is the U.S. Military or Foreign Gov't, hide the CAGE field
        var oPara = document.getElementById('CageField');
        var oFld = document.getElementById('cCAGECode');
        var oSpan = document.getElementById('CageOpt');     // optional notice
        if (fldEntry == 'UM' || fldEntry == 'FG' || fldEntry == 'UG')   {
            removeClass(oFld, "chkReqd");
            addClass(oPara, "hidden");
        } else {

            // All others have the CAGE visible but it's required for foreign
            //  companies
            removeClass(oPara, "hidden");
            if (fldEntry == 'FC')   {
                addClass(oFld, "chkReqd");
                addClass(oSpan, "hidden");
            } else {
                removeClass(oFld, "chkReqd");
                removeClass(oSpan, "hidden");
            }
        }
        fldUnlite(oFld);

        // If this is Foreign Company or Gov't, remove the 'U.S.A.' country
        oCountry = idObj('cCountry');
        var theValue = oCountry.value.toUpperCase();
        if (fldEntry == 'FC' || fldEntry == 'FG')   {
            if (theValue == "U.S.A." || theValue == "USA") {
                oCountry.value = "";
            }
        }  else  {
            oCountry.value = "USA";
        }
    }
    return '';
}

// checkOrgLabel() - Check the Org Name label according to the Org Type
function checkOrgLabel() {
    var oOrgName, oOrgType, cTypeVal, oCountry, cCountry
    oCountry = idObj('cCountry');
    oOrgName = idObj('cOrgNameLabel');
    oOrgType = idObj("cOrgType");

    // Which did they choose
    cCountry = 'USA';
    cTypeVal = getSelectedValue(oOrgType);
    switch (cTypeVal) {
    case 'UM':
        oOrgName.innerHTML = "Agency/Base/Unit Name:";
        break;
    case 'UG':
        oOrgName.innerHTML = "Agency Name:";
        break
    default:
        oOrgName.innerHTML = "Organization Name:";
        if (cTypeVal == 'FC' || cTypeVal == 'FG') {
            cCountry = '';
        }
    }
    oCountry.value = cCountry;

    // Done
}

// GetCAGEInfo() - Do a web request to get the rest of a CAGE's data
function GetCAGEInfo()  {

    // Don't bother unless it's 5 chars long
    var oCage = document.getElementById("cCAGECode");
    var cValue = oCage.value.toUpperCase().AllTrim();
    var nLen = cValue.length;
    if (nLen == 5) {
        var url = "cps/svc/GetCAGEInfo.wwsoap";
        url = currentDomain() + url;
        var pl = new SOAPClientParameters();
        var oStepL = document.getElementById("cKey1");
        var cStepL = oStepL.value;
        var oStepP = document.getElementById("cKey2");
        var cStepP = oStepP.value;
        pl.add("cLogin", cStepL);
        pl.add("cPassword", cStepP);
        pl.add("cCAGE", cValue.toString());
	    SOAPClient._sendSoapRequest(url, "GetCAGEInfo", pl, true, loadCAGEInfo, null);
    }
    return true;
}

// loadCAGEInfo() - Do a web request to get the rest of a CAGE's data
function loadCAGEInfo(cXML)  {

    // Clean up the XML
    var cClnXML = cXML.StrTran('&lt;','<');
    cClnXML = cClnXML.StrTran('&gt;','>');

    // We may have an error
    if (cClnXML.length > 0 && cClnXML.StrAt("Invalid") == 0 &&
      cClnXML.StrAt("not in ALI's files") == 0)   {

        // Get the rest of the values we need
        var cOrgName = SOAPClient.getValuesByTagName(cClnXML, 'Name');
        var cPhone = SOAPClient.getValuesByTagName(cClnXML, 'Phone');
        var cFax = SOAPClient.getValuesByTagName(cClnXML, 'Fax');
        var oOrgName = document.getElementById("cOrgName");
        oOrgName.value = cOrgName.deCode();
        var oPhone = document.getElementById("cPhone");
        oPhone.value = formatPhone(cPhone);
        var oFax = document.getElementById("cFax");
        oFax.value = formatPhone(cFax);
    }
}

// setupCageField()
function setupCageField()   {
    oFld = document.getElementById('cCAGECode');
    if (oFld)  {
        oFld.onchange = function()    {
            GetCAGEInfo()
        }
    }
}

addLoadListener(setupCageField);

