
function c_escape(sValue)
  { // escapar los \ con \\
  var re = /\\/g;
  var s = sValue.replace(re, "\\\\");
  return s;
  }
  
// seleccionar una opcion
function CCombo_Select(iCounter, oOption)
  {
  var sValue = CCombo_GetOptionValue(oOption);
  var oComboShow = getElem("divComboShow" + iCounter);
  oComboShow.innerHTML = oOption.getElementsByTagName("A")[0].innerHTML;
  oComboShow.setAttribute("Value", sValue);
  getElem(eval("hidSelectedValueID" + iCounter)).value = sValue;
  
  // ponerle estilo ComboOption a todas las opciones menos la seleccionada
  var arrColl = CCombo_GetOptions(iCounter);
  for(var i=0; i<arrColl.length; i++)
    arrColl[i].className = "ComboOption";
  oOption.className = "ComboOptionSel";
  
  // llamar al evento onchange si existe uno
  if (eval("typeof(CCombo_OnChange" + iCounter + ")") != "undefined")
    eval("CCombo_OnChange" + iCounter + "('" + c_escape(sValue) + "')");
  }

function CCombo_AdjustSize(iCounter)
  {
  var oDivDropDown = getElem("divDropDown" + iCounter);
  var oTblMain = getElem("tblCmbMain" + iCounter);
  
  // fijar el ancho de la tabla principal
  var rect = cmmGetElementPosition(oTblMain);
  oTblMain.style.width = rect.width + "px";

  // ajustar el ancho del dropdown    
  rect = cmmGetElementPosition(getElem("divComboShow" + iCounter));
  oDivDropDown.style.width = rect.width + "px";
  }
  
// mostrar el dropdown
function CCombo_ShowDropList(iCounter, event)
  {
  var oDivDropDown = getElem("divDropDown" + iCounter);
  var oTblMain = getElem("tblCmbMain" + iCounter);
    
  if (cmmIsPopupVisible(oDivDropDown))
    cmmHidePopup(oDivDropDown);
  else
    {
    cmmHidePopups(); // para ocultar otros dropdown que puedan estar visibles
    
    // para que el IE no deje el hover anterior puesto
    oDivDropDown.innerHTML = oDivDropDown.innerHTML;
    
    cmmShowPopup("divDropDown" + iCounter);
    }
  
  cmmCancelBubble(event);
  }

// Devuelve el valor seleccionado
function CCombo_GetSelectedValue(iCounter)
  {
  return CCombo_GetOptionValue(getElem("divComboShow" + iCounter));
  }

// Devuelve un array con las opciones del combo
function CCombo_GetOptions(iCounter)
  {
  var arrOptions = new Array();
  var oDivDropDown = getElem("divDropDown" + iCounter);
  var oOptionsColl = oDivDropDown.childNodes;
  
  for(var i=0; i<oOptionsColl.length; i++)
    {
    var oElem = oOptionsColl[i];
    if (oElem.tagName && oElem.tagName.toLowerCase() == "div")
      arrOptions[arrOptions.length] = oElem;
    }
    
  return arrOptions;
  }

// Devuelve el valor de una opcion
function CCombo_GetOptionValue(oOption)
  {
  return oOption.getAttribute("Value");
  }
  
