  function checkOtherDpt()
    {
    var frm = window.document.forms['index'];
    var ZoneGeo = frm.elements['EMP_NA_ZONEGEO'];
    var ZoneGeoOther = frm.elements['EMP_NA_ZONEGEO_OTHERS'];
    var isnotset = true;
    if (replace(ZoneGeo.value, ZoneGeoOther.value, ';') != ZoneGeo.value)
      isnotset = false;
    return isnotset;
    }

  function checkDpt(dpt)
    {
    var frm = window.document.forms['index'];
    var elt = frm.elements['EMP_NA_ZONEGEO'];
    if (frm.elements['ASSIGN_REGION'].value == '1')
      {
      frm.elements['ASSIGN_REGION'].value = '0';
      elt.value = ';';
      }
    var listDpt = purgeNull(elt.value.split(';'));
    var isnotset = true;
    var i = 0;
    var cont = true;
    while ((i < listDpt.length) && cont)
      {
      if (listDpt[i] == dpt)
        {
        isnotset = false;
        cont = false;
        }
      i++;
      }
    return isnotset;
    }

  function checkRegion()
    {
    var frm = window.document.forms['index'];
    var elt = frm.elements['ASSIGN_REGION'];
    var rtn = false;
    if (elt.value == '1')
      rtn = true;
    return rtn;
    }

  function checkAll()
    {
    var frm = window.document.forms['index'];
    var elt = frm.elements['ASSIGN_ALL'];
    var rtn = false;
    if (elt.value == '1')
      rtn = true;
    return rtn;
    }

  function assignRegions()
    {
    var frm = window.document.forms['index'];
    turnOffAllDpt();
    CSIShow(/*CMP*/'button17',0);
    frm.elements['ASSIGN_REGION'].value = '1';
    if (frm.elements['EMP_NA_ZONEGEO'].value == frm.elements['EMP_NA_ZONEGEO_REGIONS'].value)
      {
      frm.elements['EMP_NA_ZONEGEO'].value = ';';
      CSIShow(/*CMP*/'button18',0);
      frm.elements['ASSIGN_REGION'].value = '0';
      }
    else
      frm.elements['EMP_NA_ZONEGEO'].value = frm.elements['EMP_NA_ZONEGEO_REGIONS'].value;
    turnOffAllDpt();
    updateCounter();
    }

  function turnOffAllDpt()
    {
    CSIShow(/*CMP*/'button',0);
    CSIShow(/*CMP*/'button2',0);
    CSIShow(/*CMP*/'button3',0);
    CSIShow(/*CMP*/'button4',0);
    CSIShow(/*CMP*/'button5',0);
    CSIShow(/*CMP*/'button6',0);
    CSIShow(/*CMP*/'button7',0);
    CSIShow(/*CMP*/'button8',0);
    CSIShow(/*CMP*/'button9',0);
    CSIShow(/*CMP*/'button10',0);
    CSIShow(/*CMP*/'button11',0);
    CSIShow(/*CMP*/'button12',0);
    CSIShow(/*CMP*/'button13',0);
    CSIShow(/*CMP*/'button14',0);
    CSIShow(/*CMP*/'button15',0);
    CSIShow(/*CMP*/'button16',0);
    }

  function assignAll()
    {
    var frm = window.document.forms['index'];
    frm.elements['EMP_NA_ZONEGEO'].value = ';';
    frm.elements['ASSIGN_ALL'].value = '1';
    var num = 0;
    var elt = null;
    var eTotal = 0;
    var Total = 0;
    turnOffAllDpt();
    CSIShow(/*CMP*/'button18',0);
    for (var i = 0; i < frm.length; i++)
      {
      elt = frm.elements[i];
      if (elt.name.match("^RUB_CPT_RUBRIQUE\[[0-9]+\]$"))
        {
        num = replace(replace(elt.name,'RUB_CPT_RUBRIQUE[',''),']','');
        eTotal = eval(parseInt(frm.elements['SelectRubrique['+num+']'].value) + parseInt(eTotal));
        Total  = eval(parseInt(elt.value) + parseInt(Total));
        }
      }
    if (eTotal == Total)
      {
      CSIShow(/*CMP*/'button17',0);
      updateCounter();
      frm.elements['ASSIGN_ALL'].value = '0';
      }
    else
      {
      for (var i = 0; i < frm.length; i++)
        {
        elt = frm.elements[i];
        if (elt.name.match("^RUB_CPT_RUBRIQUE\[[0-9]+\]$"))
          {
          num = replace(replace(elt.name,'RUB_CPT_RUBRIQUE[',''),']','');
          frm.elements['SelectRubrique['+num+']'].value = elt.value;
          if (elt.value > 0)
            frm.elements['SelectRubrique['+num+']'].className = 'rubriqueOn';
          else
            frm.elements['SelectRubrique['+num+']'].className = 'rubriqueOff';
          }
        }
      }
    }

  function assignDpt(dpt)
    {
    var frm = window.document.forms['index'];
    var elt = frm.elements['EMP_NA_ZONEGEO'];
    var listDpt = purgeNull(elt.value.split(';'));
    elt.value = ';';
    var insert = true;
    CSIShow(/*CMP*/'button17',0);
    CSIShow(/*CMP*/'button18',0);
    for (var i = 0; i < listDpt.length; i++)
      {
      if (listDpt[i] == dpt)
        insert = false;
      else
        elt.value += listDpt[i] + ';';
      }
    if (insert)
      elt.value += dpt + ';';
    updateCounter();
    }

  function array_unique(arr)
    {
    var elt = 0;
    var rtn = new Array();
    arr.sort();
    var j = 0;
    for (var i = 0; i < arr.length; i++)
      {
      if (elt != arr[i])
        {
        rtn[j] = arr[i];
        elt = arr[i];
        j++;
        }
      }
    return rtn;
    }

  function in_array(elt, arr)
    {
    var rtn = false;
    var cont = true;
    var i = 0;
    if (arr.length > 0)
      {
      while ((i < arr.length) && cont)
        {
        if (elt == arr[i])
          {
          cont = false;
          rtn = true;
          }
        i++;
        }
      }
    return rtn;
    }

  function purgeNull(arr)
    {
    var rtn = new Array();
    var j = 0;
    for (var i = 0; i < arr.length; i++)
      {
      if (arr[i] > 0)
        {
        rtn[j] = arr[i];
        j++;
        }
      }
    return rtn;
    }

  function getRubrZoneGeoSingle(Rubr, Dpt)
    {
    var a_RubrZoneGeoSingle = new Array();
    var j = 0;
    var rtn = 0;
    for (var i = 0; i < RubrZoneGeoSingle.length; i++)
      {
      if (RubrZoneGeoSingle[i][0] == Rubr)
        {
        a_RubrZoneGeoSingle[j] = new Array(RubrZoneGeoSingle[i][1],
                                           RubrZoneGeoSingle[i][2]);
        j++;
        }
      }
    for (var i = 0; i < a_RubrZoneGeoSingle.length; i++)
      {
      if (a_RubrZoneGeoSingle[i][0] == Dpt)
        {
        rtn = a_RubrZoneGeoSingle[i][1];
        break;
        }
      }
    return rtn;
    }

  function getRubrZoneGeoMultiple(Rubr, Dpt)
    {
    var a_RubrZoneGeoMultiple = new Array();
    var j = 0;
    var rtn = '';
    for (var i = 0; i < RubrZoneGeoMultiple.length; i++)
      {
      if (RubrZoneGeoMultiple[i][0] == Rubr)
        {
        a_RubrZoneGeoMultiple[j] = new Array(RubrZoneGeoMultiple[i][1],
                                             RubrZoneGeoMultiple[i][2]);
        j++;
        }
      }
    for (var i = 0; i < a_RubrZoneGeoMultiple.length; i++)
      {
      if (a_RubrZoneGeoMultiple[i][0] == Dpt)
        {
        rtn = a_RubrZoneGeoMultiple[i][1];
        break;
        }
      }
    return rtn;
    }

  function updateCounter()
    {
    var frm = window.document.forms['index'];
    var a_Rubr = purgeNull(frm.elements['EMP_NA_RUBRIQUE'].value.split(';'));
    var a_Dpt = purgeNull(frm.elements['EMP_NA_ZONEGEO'].value.split(';'));
    var a_RubrMinor = new Array();
    var i_cleRubr, i_cleDpt = 0;
    var elt = null;
    var cles = '';
    for (var i = 0; i < a_Rubr.length; i++)
      {
      i_cleRubr = a_Rubr[i];
      elt = 'SelectRubrique[' + i_cleRubr + ']';
      elt = frm.elements[elt];
      elt.value = '0';
      cles = '';
      for (var j = 0; j < a_Dpt.length; j++)
        {
        i_cleDpt = a_Dpt[j];
        elt.value = eval(parseInt(elt.value) + parseInt(getRubrZoneGeoSingle(i_cleRubr, i_cleDpt)));
        cles += ',' + getRubrZoneGeoMultiple(i_cleRubr, i_cleDpt);
        }
      if (cles != '')
        {
        a_RubrMinor = array_unique(purgeNull(cles.split(',')));
        elt.value = eval(parseInt(elt.value) + parseInt(a_RubrMinor.length));
        }
      if (elt.value > 0)
        elt.className = 'rubriqueOn';
      else
        elt.className = 'rubriqueOff';
      }
    }