// Original script: Copyright (c) 1996-1997 Tomer Shiran. All rights reserved.
// Courtesy of SimplytheBest.net - http://simplythebest.net/scripts/
// Improvements: Copyright (c) 2008 Ralph Sickinger, WILLCOR, Inc.

var caution = false
var nodecnt = 0
function setCookie(name, value, expires, path, domain, secure) {
  var curCookie = name + "=" + escape(value) +
    ((expires) ? "; expires=" + expires.toGMTString() : "") +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    ((secure) ? "; secure" : "")
  if (!caution || (name + "=" + escape(value)).length <= 4000)
    document.cookie = curCookie
  else
    if (confirm("Cookie exceeds 4KB and will be cut!"))
      document.cookie = curCookie
}
function getCookie(name) {
  var prefix = name + "="
  var cookieStartIndex = document.cookie.indexOf(prefix)
  if (cookieStartIndex == -1)
    return null
  var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex + prefix.length)
  if (cookieEndIndex == -1)
    cookieEndIndex = document.cookie.length
  return unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex))
}
function deleteCookie(name, path, domain) {
  if (getCookie(name)) {
    document.cookie = name + "=" +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    "; expires=Thu, 01-Jan-70 00:00:01 GMT"
  }
}
function fixDate(date) {
  var base = new Date(0)
  var skew = base.getTime()
  if (skew > 0)
    date.setTime(date.getTime() - skew)
}
function item(parent, caption, file, id, depth) {
  if (parent) { nodecnt++ }

  this.parent = parent
  this.text = caption
  this.id = id
  this.file = file
  this.depth = depth
}
function makeArray(length) {
  this.length = length
}
function makeDatabase() {
  var ix = 0
  outline = new makeArray(96)

//        outline[0] = new item(false, "<i>Summary</i>","summary","",0)

        outline[ix] = new item(true, "Acquisition Strategy Decision Guide","index","1",0)
        ix++
        outline[ix] = new item(false, "Introduction","11","",1)
        ix++
        outline[ix] = new item(false, "Background","12","",1)
        ix++
        outline[ix] = new item(true, "Key Concepts and General Approach","13","2",1)
        ix++
        outline[ix] = new item(false, "A. Systems Engineered Acquisition Strategies","131","",2)
        ix++
        outline[ix] = new item(false, "B. Each Strategic Dimension Is a Continuum...","132","",2)
        ix++
        outline[ix] = new item(false, "C. Basic Strategy Selection","133","",2)
        ix++
        outline[ix] = new item(false, "D. All Things Being Equal, Some Strategies Are Preferred","134","",2)
        ix++
        outline[ix] = new item(false, "E. Individual Core Strategies Must Be Further Defined...","135","",2)
        ix++
        outline[ix] = new item(false, "F. Individual Core Strategies Must Be Integrated and Balanced","136","",2)
        ix++
        outline[ix] = new item(true, "IV. Iterative Strategy Selection Process","14","3",1)
        ix++
        outline[ix] = new item(false, "A. Basic Process","141","",2)
        ix++
        outline[ix] = new item(false, "B. Spiral Strategy Selcetion Process","142","",2)
        ix++
        outline[ix] = new item(false, "C. Modification During Program Execution","143","",2)
        ix++
        outline[ix] = new item(true, "Acquisition Strategy Selection Process 1","144","4",2)
        ix++
        outline[ix] = new item(false, "Overall Process Step 1: Assemble Strategy Selection Resources","1441","",3)
        ix++
        outline[ix] = new item(true, "Acquisition Strategy Selection Process 2","145","5",2)
        ix++
        outline[ix] = new item(false, "Overall Process Step 2: Complie All Relevant Information","1451","",3)
        ix++
        outline[ix] = new item(true, "Acquisition Strategy Selection Process 3","146","6",2)
        ix++
        outline[ix] = new item(false, "Overall Process Step 3: Review and Discuss Compiled Information","1461","",3)
        ix++
        outline[ix] = new item(true, "Acquisition Strategy Selection Process 4","147","7",2)
        ix++
        outline[ix] = new item(false, "Overall Process Step 4: Identify Candidate Core Strategies","1471","",3)
        ix++
        outline[ix] = new item(true, "Acquisition Strategy Selection Process 5","148","8",2)
        ix++
        outline[ix] = new item(false, "Overall Process Step 5: Further Describe Core Stategy Candidates","1481","",3)
        ix++
        outline[ix] = new item(true, "Acquisition Strategy Selection Process 6","149","9",2)
        ix++
        outline[ix] = new item(false, "Overall Process Step 6: Compare and Select \"Best Fit\" Core Strategies","1491","",3)
        ix++
        outline[ix] = new item(true, "Acquisition Strategy Selection Process 7","14a","@",2)
        ix++
        outline[ix] = new item(false, "Overall Process Step 7: Expand Core Strategies","14a1","",3)
        ix++
        outline[ix] = new item(true, "Acquisition Strategy Selection Process 8","14b","A",2)
        ix++
        outline[ix] = new item(false, "Overall Process Step 8: Integrate Strategies","14b1","",3)
        ix++
        outline[ix] = new item(true, "Acquisition Strategy Selection Process 9","14c","B",2)
        ix++
        outline[ix] = new item(false, "Overall Process Step 9: Evaluate Against Need and Environmental Factors","14c1","",3)
        ix++
        outline[ix] = new item(true, "Acquisition Strategy Selection Process 10","14d","C",2)
        ix++
        outline[ix] = new item(false, "Overall Process Step 10: Reduce Risks","14d1","",3)
        ix++
        outline[ix] = new item(true, "V. Example of Use of Acquisition Strategy Decision Guide","15","D",1)
        ix++
        outline[ix] = new item(false, "The Threat","151","",2)
        ix++
        outline[ix] = new item(true, "The Possible Responces","152","E",2)
        ix++
        outline[ix] = new item(false, "Program Scenario One","1521","",3)
        ix++
        outline[ix] = new item(false, "Program Scenario Two","1522","",3)
        ix++
        outline[ix] = new item(false, "Program Scenario Three","1523","",3)
        ix++
        outline[ix] = new item(false, "VI . Strategy Review, Validation and Update","16","",1)
        ix++
        outline[ix] = new item(false, "VII. Strategy Documentation, Approval and Implementation","17","",1)
        ix++
        outline[ix] = new item(false, "VIII. Summary","18","",1)
        ix++
        outline[ix] = new item(false, "Appendix A Background - Acquisition Strategy Requirements","19","",1)
        ix++
        outline[ix] = new item(true, "Appendix B Outline of an Acquisition Strategy","1a","F",1)
        ix++
        outline[ix] = new item(false, "I. Requirements","1a1","",2)
        ix++
        outline[ix] = new item(false, "II. Program Structure","1a2","",2)
        ix++
        outline[ix] = new item(false, "III. Acquisition Approach","1a3","",2)
        ix++
        outline[ix] = new item(false, "IV. Risk","1a4","",2)
        ix++
        outline[ix] = new item(false, "V. Program Management","1a5","",2)
        ix++
        outline[ix] = new item(false, "VI. Design Considerations Affecting the Acquisition Strategy","1a6","",2)
        ix++
        outline[ix] = new item(false, "VII. Support Strategy","1a7","",2)
        ix++
        outline[ix] = new item(true, "VIII. Business Strategy","1a8","G",2)
        ix++
        outline[ix] = new item(false, "A. Potential Sources","1a81","",3)
        ix++
        outline[ix] = new item(false, "B. Competition","1a82","",3)
        ix++
        outline[ix] = new item(false, "C. Contracting Approach","1a83","",3)
        ix++
        outline[ix] = new item(false, "D. Warranty","1a84","",3)
        ix++
        outline[ix] = new item(false, "E. Component Breakout","1a85","",3)
        ix++
        outline[ix] = new item(true, "Appendix C Relevant Information","1b","H",1)
        ix++
        outline[ix] = new item(false, "A. Identify and Clarify the Mission Need","1b1","",2)
        ix++
        outline[ix] = new item(true, "B. Assess the Environmental Factors","1b2","I",2)
        ix++
        outline[ix] = new item(false, "1. What is the Threat Reality?","1b21","",3)
        ix++
        outline[ix] = new item(false, "2. What is the Economic Environment?","1b22","",3)
        ix++
        outline[ix] = new item(false, "3. What are the Political Realities?","1b23","",3)
        ix++
        outline[ix] = new item(false, "4. What is the Program's Relationship to Other Programs?","1b24","",3)
        ix++
        outline[ix] = new item(false, "5. What are the Technological Opportunities?","1b25","",3)
        ix++
        outline[ix] = new item(false, "6. What are the Cost, Schedule, and Performance Realities?","1b26","",3)
        ix++
        outline[ix] = new item(false, "7. What are the Review and Documentation Realities?","1b27","",3)
        ix++
        outline[ix] = new item(false, "C. Select System Concept(s) for Development","1b3","",2)
        ix++
        outline[ix] = new item(true, "Appendix D Acquisition Strategy Development Issues and Considerations","1c","J",1)
        ix++
        outline[ix] = new item(false, "1. How will the Program be Streamlined?","1c1","",2)
        ix++
        outline[ix] = new item(false, "2. How Many Sources Will be Used in Each Acquisition Phase?","1c2","",2)
        ix++
        outline[ix] = new item(false, "3. What Types of Contracts Will Be Used?","1c3","",2)
        ix++
        outline[ix] = new item(false, "4. How Long Will it Take to Award Contracts?","1c4","",2)
        ix++
        outline[ix] = new item(false, "5. What are Our Cost Goals?","1c5","",2)
        ix++
        outline[ix] = new item(false, "6. What Type of Testing and How Much Will Be Done and How Long Will it Take?","1c6","",2)
        ix++
        outline[ix] = new item(false, "7. What Logistics Support Approach Will Be Used?","1c7","",2)
        ix++
        outline[ix] = new item(false, "8. What Sotware Development Approach Will Be Taken?","1c8","",2)
        ix++
        outline[ix] = new item(false, "9. Based on the System Concept Selected, What are the Initial Technical, Cost, Schedule and Support Risks?","1c9","",2)
        ix++
        outline[ix] = new item(false, "10. What are the Options for Mitigating Identified Risk Areas?","1ca","",2)
        ix++
        outline[ix] = new item(true, "Additional Innovative Considerations and Methods","1cb","K",2)
        ix++
        outline[ix] = new item(false, "I. The following innovation techniques should be considered...","1cb1","",3)
        ix++
        outline[ix] = new item(true, "II. Checklist: Key Considerations","1cb2","L",3)
        ix++
        outline[ix] = new item(false, "1. Reduce Total Cost of Ownership","1cb21","",4)
        ix++
        outline[ix] = new item(false, "2. Use Performance Based Acquisition Requirements","1cb22","",4)
        ix++
        outline[ix] = new item(false, "3. Use Integrated Product Teams, (IPT)","1cb23","",4)
        ix++
        outline[ix] = new item(false, "4. Emphasize Past Performance Information","1cb24","",4)
        ix++
        outline[ix] = new item(false, "5. Risk.","1cb25","",4)
        ix++
        outline[ix] = new item(false, "6. Streamlining","1cb26","",4)
        ix++
        outline[ix] = new item(false, "7. Use of Commercial Practices, Products and Processes","1cb27","",4)
        ix++
        outline[ix] = new item(false, "8. Use of on-line Electronic Media","1cb28","",4)
        ix++
        outline[ix] = new item(false, "9. Use of Unobtrusive Testing Techniques","1cb29","",4)
        ix++
        outline[ix] = new item(false, "10. Use of Source Selection Techniques","1cb2a","",4)
        ix++
        outline[ix] = new item(false, "11. Cycle Time Reduction (CTR)","1cb2b","",4)
        ix++
        outline[ix] = new item(false, "Appendix E References","1d","",1)
        ix++
        outline[ix] = new item(false, "Appendix F Glossary and Acronyms","1e","",1)
        ix++

  setStates()
  setImages()
}

function resetStates() {
  setCookie("asdg_outline", "-")
}

function setStates() {
  var storedValue = getCookie("asdg_outline")
  var parentExpanded = true
  var lastExp = 0
  var text = ""
  var k = 0

  storedValue += "-"
  for (var i = 0; i < outline.length; ++i) {
    if (outline[i].parent) {
      text = "-" + outline[i].id + "-"
      if (storedValue.indexOf(text) != -1)
        outline[i].state = true
      else
        outline[i].state = false
    }
  }

  for (var i = 0; i < outline.length; ++i) {
    if (outline[i].parent) {
      if ((outline[i].depth == 0) || (outline[i].depth <= lastExp) || (parentExpanded)) {
        outline[i].visible = true
        if (outline[i].state)
          lastExp = outline[i].depth + 1
        else
          if (outline[i].depth < lastExp)
            lastExp = outline[i].depth
      } else
        outline[i].visible = false
      parentExpanded = (outline[i].state && outline[i].visible)
    } else {
      if (parentExpanded)
        outline[i].visible = true
      else
        outline[i].visible = false
    }
  }
}
function setImages() {
  for (var i = 0; i < outline.length; ++i) {
    if (outline[i].visible)
      if (outline[i].parent)
        if (((outline[i+1].parent) && (outline[i+1].depth <= outline[i].depth)))
          outline[i].pic = '<IMG SRC="../../minus.gif" BORDER=0>'
        else
          if (outline[i].state)
            outline[i].pic = '<A HREF="javascript:toggle(' + i + ')"><IMG SRC="../../minus.gif" BORDER=0></A>'
          else
            outline[i].pic = '<A HREF="javascript:toggle(' + i + ')"><IMG SRC="../../plus.gif" BORDER=0></A>'
      else
        outline[i].pic = '<IMG SRC="../../leaf.gif" BORDER=0>'
  }
}
function toggle(num) {
  outline[num].state = !outline[num].state

  setStorage()
  history.go(0)
}
function setStorage() {
  var text = "-"
  for (var i = 0; i < outline.length; ++i) {
    if ((outline[i].parent) && (outline[i].state)) {
      text += (outline[i].id)
      text += '-'
    }
  }

  setCookie("asdg_outline", text)
}
function drawTree(myname) {
  document.write('<table>');
  for (var i = 0; i < outline.length; ++i) {
    if (outline[i].visible) {
      document.write('<tr><td align=right valign=top colspan=',(outline[i].depth + 1),'>')
      document.write(outline[i].pic, ' ')
      document.write('</td><td colspan=',(5-outline[i].depth))
      if (myname == outline[i].file)
        document.write(' class="boldredtxt"><b>', outline[i].text, '</b>')
      else
        document.write('><a href="',outline[i].file,'.html">', outline[i].text, '</a>')
      document.write('</td></tr>')
    } else {
      var previous = i
      for (var k = i + 1; k < outline.length && outline[k].depth >= outline[previous].depth; ++k) {
        ++i
      }
    }
  }
  document.write('<tr>');
  for (var j = 0; j < 12; ++j) { document.write('<td width=12>&nbsp;</td>') }
  document.write('</tr></table>');
}
makeDatabase()


