function getSelectedValues(oSelect)
{
  aStartingValues = new Array()
  for (var i = 0; i < oSelect.length; i++) {
    if (oSelect.options[i].selected == true) {
      aStartingValues[i] = 1
    } else {
      aStartingValues[i] = 0
    }
  }
}

function cumulativeSelect(oSelect)
{
  var startingScrollTop = oSelect.scrollTop
  for (var i = 0; i < oSelect.length; i++) {
    if (oSelect.options[i].selected == true) {
      var lastClicked = i
      // if originally selected then deselect
      if (aStartingValues[i] == 1) {
        oSelect.options[i].selected = false
       
      } else {
        oSelect.options[i].selected = true
       
      }
    } else {
      // if originally selected then select
      if (aStartingValues[i] == 1) {
        oSelect.options[i].selected = true
      }
    }
  }
  // prevent select box jumping to last selected and make jump to last clicked
  // IE6 reports oSelect.scrollTop always as 0, so this is a workaround
  if (document.all) {
    if (oSelect.options[lastClicked].selected == true) {
      oSelect.options[lastClicked].selected = false
      oSelect.options[lastClicked].selected = true
    } else {
      oSelect.options[lastClicked].selected = true
      oSelect.options[lastClicked].selected = false
    }
  // use scrollTop property for Firefox and other browsers that support scrollTop properly for a select box
  } else {
    oSelect.scrollTop = startingScrollTop
  }
  
}

function selectNone(oLink)
{
  foundSelect = false
  oSelect = oLink.previousSibling
 
  while (!foundSelect && oSelect) {
    if (oSelect.nodeType == 1 && oSelect.tagName.toLowerCase() == 'select') {
      foundSelect = true
    } else {
      oSelect = oSelect.previousSibling
    }
  }
  addCount = 0
  for (i = 0; i < oSelect.length; i++) {
    
    oSelect.options[i].selected = false
  }
}

function selectAll(oLink)
{
  foundSelect = false
  oSelect = oLink.previousSibling
  while (!foundSelect && oSelect) {
    if (oSelect.nodeType == 1 && oSelect.tagName.toLowerCase() == 'select') {
      foundSelect = true
    } else {
      oSelect = oSelect.previousSibling
    }
  }
  addCount = 0
  for (i = 0; i < oSelect.length; i++) {
   
    oSelect.options[i].selected = true
  }
}