var ObjCaller = []
var ObjSelect = null

   var LesCurseurs = [] ;
   function ObjImageCureur (QName, Name,bgImg,ImgQ,IsVertical,ImgDisabled, TabImg, eventCurseur,IsInverser)
   {
    this.QuestName = QName;
    this.Name = Name;
    this.BgImg = bgImg;
    this.TabImg = TabImg;
    this.ImageQ = ImgQ;
    this.IsVertical = IsVertical;
    this.ImgDisabled = ImgDisabled;
    this.disabled = true;
    this.eventCurseur = eventCurseur;
    this.IsInverser = IsInverser;
   }
   function Add_Elements(QName, Name,bgImg,ImgQ,IsVertical,ImgDisabled,TabImg, eventCurseur, IsInverser)
   {
    tmpObj = new ObjImageCureur (QName, Name, bgImg, ImgQ, IsVertical, ImgDisabled, TabImg,eventCurseur, IsInverser);
    if (!(LesCurseurs))
       LesCurseurs = new Array(tmpObj)
      else LesCurseurs.push(tmpObj);
   }
   function desactiveCurseur(ObjImg,Forcer)
   {
     for (i=0;i<LesCurseurs.length;i++)
     {
      OIC = LesCurseurs[i];
      if (OIC.ImageQ==ObjImg.name)
        {
         if (!(OIC.disabled)||(Forcer))
          {
           OIC.disabled = true;
           ObjImg.src = OIC.ImgDisabled;
           Obj = eval('document.'+OIC.Name);
           Objbg = eval('document.'+OIC.BgImg);
           ObjQuest = eval('document.SFTCPT.'+OIC.QuestName);
           if (ObjQuest)
           {
            ObjQuest.value=""
           }
           if (OIC.IsVertical)
             {
              Obj.style.top = Objbg.offsetTop+ Math.round((Objbg.height-Obj.height)/2);
              Obj.style.left = Objbg.offsetLeft - Math.round( (Obj.width-Objbg.width) / 2);
             }
            else
            {
              Obj.style.top = Objbg.offsetTop- Math.round( (Obj.height-Objbg.height) / 2);
              Obj.style.left = Objbg.offsetLeft+ Math.round((Objbg.width-Obj.width)/2);
            }
          }
         return true;
        }
     }
    return false;
   }
   function RechercheElementName(value)
   {
     var result = null;
     for (i=0;i<LesCurseurs.length;i++)
     {
      OIC = LesCurseurs[i];
      if (OIC.Name==value)
         return OIC;
     }
     return result;
   }
   function init_curseurs()
   {
     var NumValue=null;
     var OIC=null;
     var Obj=null;
     var Objbg=null;
     var ObjQuest=null;
     var ObjImage=null;
     var tmpX;
     var tmpY;
     var largeur;
     var hauteur;
     for (i=0;i<LesCurseurs.length;i++)
     {
      OIC = LesCurseurs[i];
      Obj = eval('document.'+OIC.Name);
      Objbg = eval('document.'+OIC.BgImg);
      ObjQuest = eval('document.SFTCPT.'+OIC.QuestName);
      ObjImage = eval('document.'+OIC.ImageQ);
      if (ObjQuest)
      {
       NumValue = parseInt(ObjQuest.value);
      }
      if ((Obj) && (Objbg) )
       {
        if (OIC.IsVertical)
        { 
         hauteur = Objbg.height-Obj.height;
         NbImage = OIC.TabImg.length;
         if (isNaN(NumValue))
          Obj.style.top = Objbg.offsetTop+ Math.round(hauteur/2)
          else
          {
           ObjImage.src=OIC.TabImg[NumValue-1];
           if (!(OIC.IsInverser))
              NumValue = NbImage - NumValue +  1 ;
            tmpY = Math.floor(hauteur*NumValue / NbImage) + Objbg.offsetTop
            Obj.style.top = tmpY;
          }
         Obj.style.left = Objbg.offsetLeft - Math.round( (Obj.width-Objbg.width) / 2);
        } 
        else 
        { 
         largeur= Objbg.width-Obj.width;
         NbImage = OIC.TabImg.length;
         if (isNaN(NumValue))
          Obj.style.left = Objbg.offsetLeft+ Math.round((Objbg.width-Obj.width)/2)
         else 
          {
            tmpX = Math.floor(largeur*NumValue / NbImage) + Objbg.offsetLeft
            Obj.style.left = tmpX;
           ObjImage.src=OIC.TabImg[NumValue-1];
          }
        } 
       }
     }
   }

function ObjReponseQuali(Nom)
{
 this.checked = false;
 this.Nom = Nom;
 this.Value = 0;
 this.NomQuest = '';
}

function ClickReponse(Obj,Value,QualiNom,Area,e,EventVerif)
{
 var RepQuali = null;
 var Mulitple = (Obj.length>1);
 var Element = null;
 if (!(Mulitple))
   {
    RepQuali = Obj[0]
   }
  else
  {
    for (i=0;i<Obj.length;i++)
     {
      if (RepQuali)
         break;
      if (Obj[i].Value==Value)
        {
         RepQuali = Obj[i] ;
        }
     }
    if (!RepQuali)
      {
        for (i=0;i<Obj.length;i++)
         {
          if (RepQuali)
             break;
          if ((i==(Obj.length-1)) || (Obj[i].Value==0))
            {
             RepQuali = Obj[i] ;
            }
         }
      }
  }
 if (RepQuali)
  {
   if (RepQuali.checked)
     {
      if (RepQuali.NomQuest!='')
         Element = eval('document.SFTCPT.'+RepQuali.NomQuest);
      if (Element)
         Element.value='';
     }
   if (RepQuali.Value==Value)
      {
       RepQuali.checked = false ;
      }
     else RepQuali.checked = true ;
   if (RepQuali.checked)
    {
   	  RepQuali.Value=Value;
      RepQuali.NomQuest = QualiNom;
    }
   else {
     RepQuali.Value=0;
     RepQuali.NomQuest ='';
   }
   Element = eval('document.SFTCPT.'+QualiNom);
   if (Element)
    {
     if (RepQuali.Value==0)
      {Element.value=''}
      else Element.value=RepQuali.Value;
    }
   Element = document.getElementById(RepQuali.Nom);
   if (Element)
    {
     Element.firstChild.data = Area.title;
     if (RepQuali.checked)
      {
         if (!(e))
          {
           e =window.event;
          }
         var tmpX = 0;
         var tmpY = 0;
         if (e.pageX)
          {
           tmpX = e.pageX;
           tmpY = e.pageY;
          }
          else
           {
            tmpX = e.x + document.body.scrollLeft;
            tmpY = e.y +document.body.scrollTop;
           }
          Element.style.left = tmpX;
          Element.style.top = tmpY;
       Element.style.display = 'inline';
       Element.style.zindex= 1;

      }
     else
      {
       Element.style.display = 'none';
      }
    }
  }

 if (Obj.checked)
    Obj.checked = false
   else Obj.checked = true;
   if (EventVerif)
      EventVerif(document.SFTCPT);
}

function init_Map(ObjMap,StrQ,NbRep)
{
 var TmpI = null;
 var ObjQ = null;
 var RepQuali = null;
 var DivMap = null;
 var Area = null;
 var TabTmp = [];
 var ObjTmpMap = document.getElementById('idmap'+StrQ);
 if (ObjTmpMap)
  {
   for (var i=1;i<=NbRep;i++)
    {
     ObjQ = eval('document.SFTCPT.'+StrQ+'R'+i);
     if ((ObjQ) && (ObjQ.value!=''))
      {
       TmpI = parseInt(ObjQ.value);
       if (!(isNaN(TmpI)))
        {
         for (var j=0;j<ObjMap.length;j++)
          {
           RepQuali = ObjMap[j];
           if ( (RepQuali) && (RepQuali.checked==false))
            {
             DivMap = document.getElementById(RepQuali.Nom);
             Area = document.getElementById('map'+StrQ+'_'+TmpI);
             if ((DivMap) && (Area))
              {
               RepQuali.checked = true;
               RepQuali.Value = TmpI;
               RepQuali.NomQuest= StrQ+'R'+i;
               DivMap.firstChild.data = Area.title;
               TabTmp = Area.coords.split(',');
               if (Area.shape.toLowerCase()=='poly')
                 {
                  tmpX = 0;
                  tmpY = 0;
                  k=0;
                  while ( k<TabTmp.length)
                  {
                   tmpX = tmpX + parseInt(TabTmp[k]);
                   tmpY = tmpY + parseInt(TabTmp[k+1]);
                   k=k+2;
                  }
                 tmpX = Math.round(tmpX/(TabTmp.length/2));
                 tmpY = Math.round(tmpY/(TabTmp.length/2));
                 }
                else
                 {
                  tmpX =parseInt(TabTmp[0]);
                  tmpY =parseInt(TabTmp[1]);
                 }
               DivMap.style.left = '';
               DivMap.style.top = '';
               DivMap.style.display = 'inline';
               DivMap.style.left = DivMap.offsetLeft+ tmpX ;
               DivMap.style.top = DivMap.offsetTop+tmpY ;
               DivMap.style.zindex= 1;
               break;
              }
            }
          }
        }
      }
    }
  }
}

function getTypeObjet(Obj)
{
 var result='';
 if  ((Obj) && (Obj.type))
   {
    result=Obj.type
   }
  else
 if ((Obj) && (Obj.length>0))
   {
    result=Obj[0].type
   }
 return result;
}

function getValeurObjet(Obj)
{
 var result=null;
 var type  = getTypeObjet(Obj);
 if ((type=='select-one') || (type=='radio') || (type=='select-multiple'))// Pour être compatible Netscape 4.5
  {
   if (Obj.length>0)
     {
      if (Obj.selectedIndex)
        {
         result = Obj[Obj.selectedIndex].value ;
        }
       else
        {
         for (var i=0; i<Obj.length;i++)
          {
           if (Obj[i].checked)
             {
              result=Obj[i].value
              break;
             }
          }
        }
     }
   }
  else
   {
    if (Obj.type=='checkbox')
      {
       if (Obj.checked)
         {
          result = Obj.value
         }
      }
     else result = Obj.value
   }
 return result
}

function ActiverDesactiveZone(Element,Valeur)
{
 var Obj=document.getElementById(Element);
 if (Obj)
  {
   if (Valeur) Obj.style.display=""
     else Obj.style.display="none"
  }
}

function ObjCtrlRep(Texte, Obj)
{
 this.Texte=Texte;
 this.Objet = Obj;
 var Count= ObjCtrlRep.arguments.length-2;
 if (Count>0)
  {
   this.Reponses = new Array(Count);
   for (var i=0; i<Count;i++)
       this.Reponses[i]=ObjCtrlRep.arguments[i+2]
  }
 else
  {
   this.Reponses = 0 ;
  }
}

function SearchInArrayStr(ArrayStr,Value)
{
 var result=-1;
 for (var i=0;i<ArrayStr.length;i++)
  {
   if ((ArrayStr[i]) && (ArrayStr[i].toUpperCase()==Value.toUpperCase()))
     {
      result=i;
      break;
     }
  }
 return result;
}

function verif_LstCtrlRep(LstCtrlRep)
{
 var CtrlRep
 var Valeur=''
 var ArrayStr
 var type
 if (LstCtrlRep.length>0)
   {
    ArrayStr = new Array(LstCtrlRep.length)

    for (var i=0;i<LstCtrlRep.length;i++)
     {
      CtrlRep = LstCtrlRep[i];
      Valeur=''
      if (CtrlRep.Objet==null)
        {
         Valeur = CtrlRep.Texte
        }
       else
        {
          Obj = CtrlRep.Objet
          if (Obj.length>0) {
             type = Obj[0].type;
             if (!(type))
                type= Obj.type
             }
            else type= Obj.type
          if (type=='checkbox')
            {
             Valeur = CtrlRep.Reponses[0]
            }
           else
          if (type=='radio')
            {
             Rep=-1;
             for (var j = 0;j<Obj.length;j++)
              {
               if (Obj[j].checked)
                {
                 Rep=j;
                 break;
                }
              }
             if (Rep!=-1)
              {
                Valeur = CtrlRep.Reponses[Rep]
              }
            }
           else
            {
             if (CtrlRep.Reponses!=0)
               {
                if (Obj.selectedIndex>0)
                   Valeur = CtrlRep.Reponses[Obj.selectedIndex-1];
               }
              else
               {
                if (Obj.selectedIndex)
                 {
                  Valeur = Obj[Obj.selectedIndex].value;
                 }

                Valeur= Obj.value;
               }
            }
        }
     if (Valeur!='')
       {
        Idx = SearchInArrayStr(ArrayStr,Valeur);
        if (Idx==-1)
         {
          ArrayStr[i]=Valeur
         }
        else
         {
          alert('Vous devez choisir des réponses uniques.')
          return false
         }
       }
     }
  }
 return true;
}


function verif_CtrlRep(LaPage)
{
  var result=true
  return result

}

var mouse_x, mouse_y, ObjDrag ;
var ObjRank=[];

var IsNetscape = (navigator.appName.substring(0,3) == "Net");
function get_mouse_down(e)
{
 if (IsNetscape)
   {

  ObjDrag = eval('document.SFTCPT.'+e.target.name);
   mouse_x=e.layerX;
   mouse_y=e.layerY;
   }
  else
   {
     ObjDrag = event.srcElement;
     mouse_x=event.offsetX;
     mouse_y=event.offsetY;
   }
}

function get_mouse_up(e)
{
 ObjDrag = null;
}
 function get_mouse_soft(e)
 {
  var x = (navigator.appName.substring(0,3) == "Net") ? e.pageX : event.x+document.body.scrollLeft;
  var y = (navigator.appName.substring(0,3) == "Net") ? e.pageY : event.y+document.body.scrollTop;
  if (ObjDrag)
  {
   Objelement = ObjDrag;
   var OIC = RechercheElementName(Objelement.name);
   var Obj=null;
   var ObjImage=null;
   if (OIC)
    {
      Obj = eval('document.'+OIC.BgImg);
      ObjImage = eval('document.'+OIC.ImageQ);
      ObjQuest = eval('document.SFTCPT.'+OIC.QuestName);
      if ((Obj) && (ObjQuest))
       {
          if (OIC.IsVertical)
          {
             if (IsNetscape) tmpY = e.pageY-mouse_y 
              else tmpY = event.clientY-mouse_y + document.body.scrollTop;
             minY = Obj.offsetTop;
             maxY = Obj.offsetTop+Obj.height-Objelement.height;
             hauteur= maxY-minY;
             NbImage = OIC.TabImg.length;
             if ( (tmpY>=minY)&&(tmpY<=maxY))
                {
                    if (IsNetscape)  ObjDrag.style.top = tmpY
                     else ObjDrag.style.pixelTop = tmpY;
                    num = Math.floor((tmpY-minY)/(Math.round(hauteur/NbImage)));
                    if (!(OIC.IsInverser))
                       num = NbImage-1 - num;
                    if ((num>=0) && (num<NbImage))
                     {
                      OIC.disabled=false;
                      var tmps = ObjImage.src;
                      var TmpTab = tmps.split('/');
                      tmps = TmpTab[TmpTab.length-1];
                      if (tmps!=OIC.TabImg[num])
                      {
                       ObjQuest.value=num+1
                       ObjImage.src=OIC.TabImg[num];
                       if (OIC.eventCurseur)
                           OIC.eventCurseur()
                      }
                     }
                }
          }
          else
          {
             if (IsNetscape) tmpX = e.pageX-mouse_x 
               else tmpX = event.clientX-mouse_x + document.body.scrollLeft
             minX = Obj.offsetLeft;
             maxX = Obj.offsetLeft+Obj.width-Objelement.width;
             largeur= maxX-minX;
             NbImage = OIC.TabImg.length;
             if ( (tmpX>=minX)&&(tmpX<=maxX))
                {
                    if (IsNetscape) ObjDrag.style.left = tmpX
                      else ObjDrag.style.pixelLeft = tmpX;
                    num = Math.floor((tmpX-minX)/(Math.round(largeur/NbImage)));
                    if ((num>=0) && (num<NbImage))
                     {
                      OIC.disabled=false;
                      var tmps = ObjImage.src;
                      var TmpTab = tmps.split('/');
                      tmps = TmpTab[TmpTab.length-1];
                      if (tmps!=OIC.TabImg[num])
                      {
                       ObjQuest.value=num+1;
                           ObjImage.src=OIC.TabImg[num];
                       if (OIC.eventCurseur)
                           OIC.eventCurseur()
                      }
                     }
                }
          }
       }
    }
   return false
  }
 }

function init_calque()
 {
  if (document.getElementById)
   {
     if (navigator.appName.substring(0,3) == "Net")
     document.captureEvents(Event.MOUSEDOWN | Event.MOUSEMOVE | Event.MOUSEUP);
     document.onmousedown = get_mouse_down;
     document.onmousemove = get_mouse_soft;
     document.onmouseup = get_mouse_up;
   }
 }

 function PopupHint(msg)
 {
var content="<table width='500' border='0' cellspacing='0' cellpadding='0'><tr><td height='22' width='7'><img src='BulleAideGH.gif' width='24' height='22'></td><td background='BulleAideH.gif' height='22'><img src='1x1.gif' width='1' height='1'></td><td width='24'><img src='BulleAideDH.gif' width='24' height='22'></td></tr><tr><td background='BulleAideG.gif' width='7'><img src='1x1.gif' width='1' height='1'></td><td bgcolor='#FFFFFF'><font face='Arial, Verdana' size='2'><b><font color='#000066'>"+msg+"</font></b></font></td><td background='BulleAideD.gif' width='24'><img src='1x1.gif' width='1' height='1'></td></tr><tr><td width='7'><img src='BulleAideGB.gif' width='24' height='24'></td><td background='BulleAideB.gif'><img src='1x1.gif' width='1' height='1'></td><td width='24'><img src='BulleAideDB.gif' width='24' height='24'></td></tr></table>";
  if (document.getElementById)
   {
    document.getElementById("IdPopupHint").innerHTML = content;
    document.getElementById("IdPopupHint").style.visibility = "visible";
   }
 }

 function ClosePopupHint()
 {
 if (document.getElementById)
   {
    document.getElementById("IdPopupHint").innerHTML = "";
    document.getElementById("IdPopupHint").style.visibility = "hidden";
   }
 }

function RotationTbl(Lignes)
{
 var LigneTmp=[];
 var TmpRandom =[];
 var ObjList =[];
 //On recup les éléments HTML de la ligne
 for (i=0;i<Lignes.length;i++)
 {
  Obj = document.getElementById(Lignes[i]);
  if (Obj)
  {
   LigneTmp.push(Obj.cloneNode(true));
   ObjList.push(Obj);
  }
 }
 if (LigneTmp.length>0)
 {
   for (i=0;i<Lignes.length;i++)
    {
     value=Math.round(Math.random()*(LigneTmp.length-1));
     TmpRandom.push(LigneTmp[value]);
     LigneTmp.splice(value,1);
    }
   for (i=0;i<ObjList.length;i++)
   {
    Obj = ObjList[i];
    if (Obj)
    {
     Parent=Obj.parentNode;
     if (Parent)
      {
       Parent.replaceChild(TmpRandom[i],Obj);
      }
    }
   }
 }
}

function TableBorderCells(Rows,Color)
{
 for (var i=0;i<Rows.cells.length;i++)
 {
  Rows.cells[i].style.borderWidth='1px';
  Rows.cells[i].style.borderBottomStyle='solid';
  Rows.cells[i].style.borderBottomColor=Color;
 }
}

function TableLineColor(Table,Paire,Impaire,Separation,Entete,CoulEntete,IsBordure)
{
 var Obj = document.getElementById(Table);
 if (Obj)
 {
  var TmpI = 0;
  var Cmpt = 0;
  var Deb = 1;
  if (IsBordure)
   {
    Obj.style.borderWidth='1px';
    Obj.style.borderStyle='solid';
    Obj.style.borderColor=CoulEntete;
    if (Obj.rows.length>0)
       Obj.rows[0].bgColor = CoulEntete;
   }
  if (Entete)
      Deb = 0;
  for (var i=Deb;i<Obj.rows.length;i++)
  {
   if (Separation)
    {
     if ((i%2)==0)
        Cmpt=Cmpt+1;
        else continue;
    }
   else Cmpt=i;
  if (Entete) Cmpt=Cmpt+1;
  if ((Cmpt%2)==0)
    Obj.rows[i].bgColor = Paire
    else Obj.rows[i].bgColor = Impaire;
  if ( (IsBordure) && (i<Obj.rows.length-1))
     TableBorderCells(Obj.rows[i], CoulEntete);
  }
 }
}

function verifOrdonnees(Obj,Quest,NbReponse,Col)
{
 for (i=1;i<=NbReponse;i++)
 {
  ObjQuest = eval('document.SFTCPT.Q'+Quest+'R'+i);
  if ( (ObjQuest) && (ObjQuest.length>0))
   {
    if ((ObjQuest[Col-1]!=Obj) && (ObjQuest[Col-1].checked))
       ObjQuest[Col-1].checked=false;
   }
 }
}

function init_page(LaPage)
{
 var result=true
 init_calque()
 init_curseurs()
 LaForm = document.SFTCPT;
 if (LaForm.NEWINDIV)
    LaForm.NEWINDIV.value=""
 if (LaForm.LOADINDIV)
    LaForm.LOADINDIV.value=""
 if (LaForm.GOTOPAGE)
    LaForm.GOTOPAGE.value="0"
 if (LaForm.PARAM)
    LaForm.PARAM.value=""
 if ((LaForm.CHANGEPWD) && (LaForm.CHANGEPWD.value=="1"))
   {
    FenetrePopup('ethnos.dll?CHGPI='+ LaForm.NBINDIV.value,'_','width=400,height=273',0,null)
    LaForm.CHANGEPWD.value=0;
   }
  if (LaPage==1) {

    }
  if (LaPage==2) {

    }
  if (LaPage==3) {

    }
  if (LaPage==4) {
init_Map(ObjMAPQ4,'Q4',1);
TableLineColor('TB_64','F9F0E8','D8AC85',false,true)
TableLineColor('TB_73','FCEDD8','FBE2A8',false,true)
TableLineColor('TB_82','D8DAED','FCEBB1',false,true)
    }
  if (LaPage==5) {
TableLineColor('TB_120','F7EBDB','FBF7F0',false,true)
TableLineColor('TB_128','ECE6F0','D1B7D5',false,true)
TableLineColor('TB_136','EDF3EB','C7DEC5',false,true)
    }
  if (LaPage==6) {

    }
  if (LaPage==7) {

    }
  if (LaPage==8) {

    }
  if (LaPage==9) {

    }
  if (LaPage==10) {

    }
  if (LaPage==11) {

    }
  if (LaPage==12) {
init_Map(ObjMAPQ26,'Q26',1);
init_Map(ObjMAPQ27,'Q27',5);
    }
  if (LaPage==13) {

    }
  if (LaPage==14) {

    }
  if (LaPage==15) {

    }
  if (LaPage==16) {

    }
  if (LaPage==17) {
RotationTbl(['line_295_1','line_295_2','line_295_3','line_295_4','line_295_5']);
RotationTbl(['line_303_4','line_303_6','line_303_8','line_303_10','line_303_12']);
TableLineColor('TB_303','FFFFFF','F4EDE1',true,false,'FFFFFF',false)
    }
  if (LaPage==18) {

    }
  if (LaPage==19) {
verif_Q38(LaForm)
    }
  if (LaPage==20) {

    }
  if (LaPage==21) {

    }
  if (LaPage==22) {

    }
  if (LaPage==23) {

    }
  if (LaPage==24) {

    }
  if (LaPage==25) {

    }
  if (LaPage==26) {

    }
  if (LaPage==27) {

    }
  if (LaPage==28) {

    }
 return result
}

function FenetrePopup(url,titre,features,NoQuest,Obj)
{
 var result=true;
 document.SFTCPT.QUESTREMP.value=NoQuest
 Fenetre = window.open(url,titre,features)
 if (Obj!=null)
    ObjCaller = Obj
    else ObjCaller = []
 return result;
}


function ClearElements(Obj,Elements)
{
 if ((Obj) && (Obj.value==''))
  {
   for (i=0;i<Elements.length;i++)
    {
      if (Elements[i])
      {
       Elements[i].value='';
       //implémenter sur les questions Qualis
      }
    }
  }
}

function GetHeureJava()
{
    var result
    var dt = new Date()
    var hd = dt.getHours()
    var md = dt.getMinutes()
    var sd = dt.getSeconds()
    var hh
    var mm
    var ss
    if (hd<10)
       hh='0'+hd
      else hh=hd
    if (md<10)
       mm='0'+md
      else mm=md
    if (sd<10)
       ss='0'+sd
      else ss=sd
    result=hh+':'+mm+':'+ss
    return result
}

function GetDateJava(typedate)
{
    var result
    var dt = new Date()
    var da = dt.getDate()
    var dm = 1+dt.getMonth()
    var dy = dt.getYear()
    var dd
    var mm
    if (da<10)
       dd='0'+da
      else dd=da
    if (dm<10)
       mm='0'+dm
      else mm=dm
    if (typedate==1)//AAAA/MM/JJ
     {
       result = dy+'/'+mm+'/'+dd
     }
    else
    if (typedate==2)//MM/JJ/AAAA
     {
       result = mm+'/'+dd+'/'+dy
     }
    else
    if (typedate==3)//JJ/MM/AAAA
     {
       result = dd+'/'+mm+'/'+dy
     }
    return result
}

function VerifRadioB(Obj)
 {
  for (i = 0;i<Obj.length;i++)
   {
    if (Obj[i].checked)
     {
      return true
      exit
     }
   }
  return false
 }

function VerifValueMultiple(LeArray)
 {
  var result = false;
  var i=0;
  while ( i <LeArray.length)
   {
    Obj=LeArray[i]
    if ((Obj) && ( Obj.checked ))
    {
     result = true
     break
    }
    i++
   }
  return result ;
 }
function checkResponses(LeArray, lescheck,lehidden, ObjTous, ObjAucun)
{
 var result = true;
 if (checkmultiple(LeArray, lescheck,lehidden))
  {
   if (lescheck.checked)
    {
     if (lescheck==ObjTous)
      {
       for (i=0;i<LeArray.length;i++)
       {
        Obj= LeArray[i];
        if (Obj!=ObjAucun)
         Obj.checked=true
        else
       if (ObjAucun)
        ObjAucun.checked = false;
       }
      }
      else
     if (lescheck==ObjAucun)
      {
       for (i=0;i<LeArray.length;i++)
       {
        Obj= LeArray[i];
        if (Obj!=ObjAucun)
         Obj.checked=false
        else
       if (ObjAucun)
        ObjAucun.checked = true;
       }
      }
     else
      {
       if (ObjAucun)
          ObjAucun.checked =false;
      }
    }
  }
 return result;
}

 function checkmultiple(LeArray, lescheck,lehidden)
{
var hval=lehidden.value
var Obj
var compteur=0
var i=0
var result = true
while ( i <LeArray.length)
 {
  Obj=LeArray[i]
  if ((Obj) &&( Obj.checked ))
  {
     compteur++
     if (compteur >hval && hval !=0)
     {
            alert("Le nombre requis de réponses pour cette question est de "+hval+" . ")
       lescheck.checked =false
       result = false
       break
     }
  }
  i++
 }
 return result
} 

function AddIndiv(LaForm)
{
  LaForm.NEWINDIV.value=-99
  LaForm.SSQUESTPG.value="-1"
  LaForm.submit()
}


function EditIndiv(LaForm, i)
{
  LaForm.NEWINDIV.value="¤"+i
  LaForm.SSQUESTPG.value="-1"
  LaForm.submit()
}


function verif_Q38(LaForm) {
 var result = true
if (((LaForm.Q38R1) && (LaForm.Q38R1[5].checked)))
  {
if (LaForm.Q39) {
   LaForm.Q39.disabled = false
   if (LaForm.Q39.style)
      LaForm.Q39.style.backgroundColor=""
   if  ((document.all)&&(document.all.idx347)) document.all.idx347.style.color =""
   }
  }
  else
  {
if (LaForm.Q39) {
   LaForm.Q39.value = ""
   LaForm.Q39.disabled = true
   if (LaForm.Q39.style)
      LaForm.Q39.style.backgroundColor ="#CCCCCC"
   }
   if  ((document.all)&&(document.all.idx347)) document.all.idx347.style.color ="#CCCCCC"
  }
 return result
 }

function verif_Oblig(LaPage,LaForm)
{
 var result=true;
 if (LaPage==19)
  {
if (((LaForm.Q38R1) && (LaForm.Q38R1[5].checked)) && (!(verifQuestions (LaForm.Q39,'idx347',false)))) 
  result=false ;

  }
  return result ;
 }

function TestCondJvs(LaPage, LaForm) {
  var result=true
  return result
 }


function verif_avt_submit(LaPage,LaForm)
 {
  ObjSelect=null
  var result = true
  result = verif_Oblig(LaPage,LaForm) && result;
  if (result) {
      if (verif_CtrlRep(LaPage))
        {
            if (TestCondJvs(LaPage,LaForm)) {
               LaForm.submit();
              }
        }
   }
 else
if (!(result))
 alert("Veuillez remplir tous les champs obligatoires.");
  return result ;
 }

function longueur(obj,max,min)
{
      var result = true
      if ((obj.value.length>0) && (obj.value.length < min))
       {
  alert("Le nombre de caractères minimum accepté est de " + min +".")
         result = false
         obj.focus()
       }
       else
      if (obj.value.length > max)
       {
  alert("Le nombre de caractères maximum accepté est de " + max +".")
         result = false
         obj.focus()
       }
      return result
}

function readPartTheme(Nb)
{
 var part = getCookie("Pt")
 var partlen = part.length
 if (Nb<=partlen)
  {
    result=part.charAt(Nb-1)
  }
 else result = 0
 return result
}

function seulechiffre (objet,Decimal) 
{
    var result = true
    valeur = objet.value
    if (valeur.length>0)
     {
    var val = valeur.substring(0,1) 
    if ((val=="-") || (val=="+"))
     {
      valeur = valeur.substring(1,valeur.length-1) 
     }
    if (Decimal==0)
     {
      if ((valeur.indexOf(".")!=-1) || (valeur.indexOf(",")!=-1) )
        {
         if (navigator.appName == 'Netscape')
            stop();
         alert("Veuillez taper une valeur numérique entière.")
         if (navigator.appName == 'Netscape')
            stop();
         objet.focus()
         result = false
        }
     }
    if (result)
     {
    for (var i=0; i < valeur.length; i++) 
    {
      val = valeur.substring(i,i+1) 
      if (!((val>="0" && val<="9") || (val=="," || val==".")))
      {
       if (navigator.appName == 'Netscape')
          stop();
      alert("Veuillez taper un chiffre !")
       if (navigator.appName == 'Netscape')
          stop();
        objet.focus() 
        result = false
        break 
     }
     }
     }
     }
 return result
}

function entre2nb(min,nombre,max,obj,chiffremin,chiffremax,Decimal)
{
   if (seulechiffre(obj,Decimal))
   {
       var num =parseInt(nombre.value,10)
       if (min > num || max < num)
      {
  if (navigator.appName == 'Netscape')
     stop();
      alert("Veuillez taper un chiffre compris entre " + chiffremin +" et "+chiffremax)
  if (navigator.appName == 'Netscape')
     stop();
      obj.focus()
      }
   }
}
 function Compter(Target, max)
  {
   StrLen = Target.value.length
   if (StrLen > max )
     {
      Target.value = Target.value.substring(0,max);
      CharsLeft = max;
     }
    else
     {
      CharsLeft = StrLen;
     }
  }

function ChangeLangue(Langue)
 {
  document.SFTCPT.LANGUE.value=Langue
  document.SFTCPT.DECLNG.value="1"
  document.SFTCPT.submit()
 }


function remplirText(LeArray, qui, vers)
{
var s=""
var i
var obj
var j=1
var Array2
var versqui
var k = 0
 while (( k < LeArray.length) && ( k < vers.length))
 {
  Array2 = LeArray[k]
  versqui = vers[k]
  k++
  i=0
  while (i < Array2.length)
   {
    obj = Array2[i]
      versqui.length = obj.length-1
      if (qui.options[qui.selectedIndex].value == obj[0])
       {
        j = 1
        while (j < obj.length)
         {
          if (versqui.type == "text")
           {
            versqui.value = obj[j] ;
            j = 999999
           }
          else
           {
            s = obj[j]
            versqui.options[j-1].value = s
            versqui.options[j-1].text = s
            j++
           }
         }
        i = 999
       }
    i++
   }
 }
}

function gotopage(numpage, Verif)
{
  document.SFTCPT.GOTOPAGE.value=numpage+';'+Verif
  document.SFTCPT.submit()
}


function _abandonner()
{
 document.SFTCPT.PARAM.value="1"
document.SFTCPT.submit()
}

function _effacer()
{
 document.SFTCPT.PARAM.value="2"
document.SFTCPT.submit()
}

function _precedent()
{
 document.SFTCPT.PARAM.value="3"
document.SFTCPT.submit()
}

function _recalculer()
{
 document.SFTCPT.PARAM.value="4"
document.SFTCPT.submit()
}

function _sommaire()
{
 document.SFTCPT.PARAM.value="5"
document.SFTCPT.submit()
}

function _suivant()
{
 document.SFTCPT.PARAM.value="6"
document.SFTCPT.submit()
}

function _suspendre()
{
 document.SFTCPT.PARAM.value="7"
document.SFTCPT.submit()
}

function _valider()
{
 document.SFTCPT.PARAM.value="8"
document.SFTCPT.submit()
}

function SaveNumPage(LaForm,NumPage,Obj,Alapage)
 {
  var Quest = eval('LaForm.'+Obj)
  if (Quest)
   {
     Quest.value = NumPage;
     gotopage(Alapage,'true');
   }
  return true
 }

function findObj(n, d) {
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=findObj(n,d.layers[i].document); return x;
}

function showHideLayers() {
  var i,p,v,obj,args=showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3)
    if ((obj=findObj(args[i]))!=null) {
		v=args[i+2];
    	if (obj.style) {
			obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v;
			obj.top =document.body.scrollTop;
			obj.left = 0;
			}
    		obj.visibility=v;
		}
}

function GetExpressionFormat(Value)
{
  var result = "^[a-z;A-Z;0-9]+$";
  switch (Value)
   {
    case 2 : result = "^[a-z;A-Z]+$";
             break;
    case 3 : result = "^[0-9]+$";
             break;
    case 4 : result = "^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]{2,}[.][a-zA-Z]{2,3}$";
             break;
   }
  return result ;
}


function Verif_Format(Obj,TypeFormat)
{
 var result = true;
 ChaineExpr = GetExpressionFormat(TypeFormat);
 Expr = new RegExp(ChaineExpr);
 var Chaine= Obj.value;
 if (Chaine!='') {
    result = Expr.test(Chaine);
 }
 return result;
}

function Traite_Texte(Obj,TypeFormat)
{
 var result = true
    result = Verif_Format(Obj,TypeFormat) ;
    if (!(result))
	   Obj.value = RegExp.lastMatch;
}

function Verif_Email(Obj)
{
 var result = Verif_Format(Obj,4);
 if (!(result))
   {
    Obj.focus();
    alert("L'adresse électronique est incorrecte.");
   }
}

function DemandeChangeLangue(Langue,NoQuest,AutoSub)
{
    Fo = document.SFTCPT;
    Fo.LANGUE.value= Langue;
    if (NoQuest>0)
     {
      var tmpObj = eval('Fo.Q'+NoQuest);
      if (tmpObj)
       {
        tmpObj.value = Fo.LANGUE.value;
       }
     }
    if (AutoSub)
       Fo.submit()
}

function isDate (day,month,year)
 {
    var today = new Date();
    year = ((!year) ? today.getFullYear():year);
    month = ((!month) ? today.getMonth():month-1);
    if (!day) return false
    var test = new Date(year,month,day);
    if ( (test.getFullYear() == year) &&
         (month == test.getMonth()) &&
         (day == test.getDate()) )
        return true;
    else
        return false
}

function Calendrier(Obj,separator,typdate)
{
 Obj.focus();
 var cal1 = new calendar1(Obj,separator,typdate);
 cal1.year_scroll = true;
 cal1.time_comp = false;
 cal1.popup();
}

function getDateStr(valeur,typdate)
 {
    var arr_date = valeur.split('/');
    if (typdate == 1) // AAAA/MM/JJ
     {
      this.annee = arr_date[0] 
      this.mois = arr_date[1] 
      this.jour = arr_date[2] 
     }
    else
     {
      if (typdate == 2) // MM/JJ/AAAA
       {
        this.annee = arr_date[2] 
        this.mois = arr_date[0] 
        this.jour = arr_date[1] 
       }
      else // JJ/MM/AAAA
       {
        this.annee = arr_date[2] 
        this.mois = arr_date[1] 
        this.jour = arr_date[0] 
       }
     }
    this.typdate = typdate
 }

function Init_Date(objet,debjour,debmois,debannee,finjour,finmois,finannee,datedeb,datefin, typdate, init, NbJours, ObjInit, IsCtrl, ObjCtrl, typeop, message, ValeurSrce,typeComp, IsInterdit)
     {
      if (VerifDate(objet,debjour,debmois,debannee,finjour,finmois,finannee,datedeb,datefin, typdate))
       {
         if (init)
          {
           var Quest = eval('document.SFTCPT.'+ObjInit)
           if ((Quest) && (objet.value!=''))
            {
             ObjDate = new getDateStr(objet.value,typdate);
             UneDate = new Date (ObjDate.annee,ObjDate.mois-1,ObjDate.jour);
             UneDate.setTime(UneDate.getTime()+(1000*60*60*24*NbJours));
             Jour = UneDate.getDate();
             Mois = UneDate.getMonth()+1;
             Annee = UneDate.getFullYear();
             if (Jour<10) 
                Quest.value='0'+Jour+'/'
             else Quest.value=Jour+'/';
             if (Mois<10)
                Quest.value=Quest.value+'0'+Mois+'/'+Annee
             else Quest.value=Quest.value+Mois+'/'+Annee;
            }
          }
        if (IsCtrl)
          {
           var TmpValue = ''
           if (typeComp==1)
            {
             var Quest = eval('document.SFTCPT.'+ObjCtrl)
             if (Quest)
                TmpValue=Quest.value
            }
           else
            {
             if (ValeurSrce=='@AUTO')
               ValeurSrce=GetDateJava(typdate);
             TmpValue=ValeurSrce;
            }
           if ((objet.value!='') && (TmpValue!='') )
            {
             ObjDate = new getDateStr(objet.value,typdate);
             UneDate = new Date (ObjDate.annee,ObjDate.mois-1,ObjDate.jour);
             ObjSrce = new getDateStr(TmpValue,typdate);
             DateSrce = new Date (ObjSrce.annee,ObjSrce.mois-1,ObjSrce.jour);
             test = eval('('+UneDate.getTime()+typeop+DateSrce.getTime()+')');
             if (test)
              {
               if (IsInterdit)
                  objet.value='';
               alert(message);
               if (IsInterdit)
                  objet.focus();
              }
            }
          }
       }
     }

function VerifDate(objet,debjour,debmois,debannee,finjour,finmois,finannee,datedeb,datefin, typdate)
     {
     valeur = objet.value
     var verif=valeur.length
     if (valeur=="") { return true ;exit;}
     if (valeur.length==0) { return true ;exit;}
     if ((verif <8)&&(valeur !=""))
     {
       if (typdate == 1){ // AAAA/MM/JJ
       if (navigator.appName == 'Netscape')
          stop();
     alert("Veuillez utiliser le format 'année/mois/jour' ex: 1999/12/13.")
       } else
       if (typdate == 2){ // MM/JJ/AAAA
       if (navigator.appName == 'Netscape')
          stop();
     alert("Veuillez utiliser le format 'mois/jour/année' ex: 12/13/1999.")
       } else // JJ/MM/AAAA
         { if (navigator.appName == 'Netscape')
          stop();
     alert("Veuillez utiliser le format 'jour/mois/année' ex: 13/12/1999.")}
    if (navigator.appName == 'Netscape')
       stop();
     objet.focus()
    return false
    exit();
     }
    var arr_date = valeur.split('/');
    if (typdate == 1) // AAAA/MM/JJ
    {
     var annee = arr_date[0] 
     var mois = arr_date[1] 
     var jour = arr_date[2] 
    }
  else
   {
     if (typdate == 2) // MM/JJ/AAAA
     {
     var annee = arr_date[2] 
     var mois = arr_date[0] 
     var jour = arr_date[1] 
     }
    else // JJ/MM/AAAA
    {
     var annee = arr_date[2] 
     var mois = arr_date[1] 
     var jour = arr_date[0] 
     }
   }
   if (isDate (jour, mois, annee) )
    {
      UneDate = new Date (annee,mois-1,jour);
      DebDate = new Date (debannee,debmois-1,debjour);
      FinDate = new Date (finannee,finmois-1,finjour);
      if ( (UneDate<DebDate) || (UneDate>FinDate))
      {
         if (navigator.appName == 'Netscape')
            stop();
        alert("Veuillez taper une date comprise entre "+ datedeb+" et "+ datefin)
         if (navigator.appName == 'Netscape')
            stop();
        objet.focus()
        return false
        exit();
      }
     }
    else {
       if (typdate == 1){ // AAAA/MM/JJ
       if (navigator.appName == 'Netscape')
          stop();
     alert("Veuillez utiliser le format 'année/mois/jour' ex: 1999/12/13.")
      } else
       if (typdate == 2){ // MM/JJ/AAAA
       if (navigator.appName == 'Netscape')
          stop();
     alert("Veuillez utiliser le format 'mois/jour/année' ex: 12/13/1999.")
      } else // JJ/MM/AAAA
        { if (navigator.appName == 'Netscape')
          stop();
     alert("Veuillez utiliser le format 'jour/mois/année' ex: 13/12/1999.")}
       if (navigator.appName =='Netscape')
          stop();
     objet.focus()
     return false
     exit();
      }
     return true
}

function verifheure(objet,debsec,debmin,debheure,finsec,finmin,finheure,heuredeb,heurefin)
     {                   
     valeur = objet.value 
     var verif=valeur.length 
     var sec = 0
     var min = parseInt(valeur.charAt(valeur.length-2)+valeur.charAt(valeur.length-1),10)
     var heure = parseInt(valeur.charAt(valeur.length-5)+valeur.charAt(valeur.length-4),10)
     if ((verif !=5)&&(valeur !=""))
     {
       if (navigator.appName == 'Netscape')
          stop();
     alert("Veuillez utiliser le format 'heure:min' ex: 08:55")
       if (navigator.appName == 'Netscape')
          stop();
     objet.focus()
     }
     else
     {      
      if (debheure > heure || heure > finheure || min > 59  || sec > 59 || heure > 23)
      {
       if (navigator.appName == 'Netscape')
          stop();
       alert("Veuillez taper une heure comprise entre " + heuredeb+" et "+ heurefin)
       if (navigator.appName == 'Netscape')
          stop();
        objet.focus()
       }
       else
       {
        if (heure == debheure )
        {
         if (debmin > min)
        {
       if (navigator.appName == 'Netscape')
          stop();
        alert("Veuillez taper une heure comprise entre "+ heuredeb+" et "+ heurefin)
       if (navigator.appName == 'Netscape')
          stop();
         objet.focus()
         }
        else
         {
          if (min== debmin)
          {
           if (debsec > sec )
           {
       if (navigator.appName == 'Netscape')
          stop();
           alert("Veuillez taper une heure comprise entre " + heuredeb+" et "+ heurefin)
       if (navigator.appName == 'Netscape')
          stop();
            objet.focus()
           }
          }
         }
        }
        else
        {
         if( heure == finheure)
          {
           if (min >finmin)
           {
       if (navigator.appName == 'Netscape')
          stop();
           alert("Veuillez taper une heure comprise entre " + heuredeb+" et "+ heurefin)
       if (navigator.appName == 'Netscape')
          stop();
            objet.focus()
           }
           else
           {
            if (min ==finmin)
            {
             if( sec > finsec)
             {
       if (navigator.appName == 'Netscape')
          stop();
             alert("Veuillez taper une heure comprise entre " + heuredeb+" et "+ heurefin)
       if (navigator.appName == 'Netscape')
          stop();
              objet.focus()
             }
            }
           }
          }
        }
        }
     }
     }

function CheckEt (obj)
{ 
  var ch1, ch2 = ""
  ch1 = obj.value

  for (var count = 0; count < ch1.length; count++)
  {
      if (ch1.charAt (count) == "&")
      {
          ch2 += "et"
      }
      else
      {
          ch2 += ch1.charAt (count)
      }
  }
 obj.value = ch2
}


function CheckText (obj, max, min)
{
   CheckEt  (obj)
   return longueur (obj, max, min)
}

function getCookieValue(pos)
{
 var temp = document.cookie.indexOf(";",pos)
 if (temp==-1)
    temp = document.cookie.length
 return unescape(document.cookie.substring(pos, temp))
}

function getCookie(name)
{
 var result=""
 var cName = name + "="
 var len = cName.length
 var cookieLen = document.cookie.length
 var i = 0, j
 while(i< cookieLen)
  {
   j=i+len
   if (document.cookie.substring(i,j)==cName)
      return getCookieValue(j)
   i = document.cookie.indexOf(" ",i)+1
   if (i==0)
      break
  }
  return result
}

function makeCookie(name,value)
 {
  var x1 = makeCookie.arguments
  var x2 = makeCookie.arguments.length
  var expDate = (x2>2) ? x1[2] : null
  var path = (x2>3) ? x1[3] : null
  var domain = (x2>4) ? x1[4] : null
  var secure = (x2>5) ? x1[5] : false
  var buf = name + "=" + escape (value)
  buf += ( (expDate==null) ? "" : ("; expires=" + expDate.toGMTString()) )
  buf += ( (path == null) ? "" : ("; path=" + path) )
  buf += ( (domain==null) ? "" : ("; domain=" + domain) )
  buf += ( (secure==true) ? "; secure=" : "" )
  document.cookie = buf
 }

function deleteCookie(cookieName)
 {
  var now = new Date()
  now.setTime (now.getTime()-1)
  var cookieValue = getCookie (cookieName)
  document.cookie = cookieName + "=" + cookieValue + "; expires="+ now.toGMTString()
 }

function TraiteResult(Tag,Value)
{
 var Obj = document.getElementById(Tag);
 if (Obj)
  {
    if ((Value) && (Obj.style.color!=''))
     {
       Obj.style.color = '';
       Obj.innerHTML = Obj.innerHTML.slice(1);
     }
    else
   if ((!(Value)) && (Obj.style.color==''))
    {
       Obj.style.color = '#FF0000';
       Obj.innerHTML = '*'+Obj.innerHTML;
    }
  }
}

function verifQuestions (Elements,Tag,IsOrdonnee,NbRep)
{
 var result = false;
 if  (Elements)
 {
  var tmpObj = Elements;
  var Type = getTypeObjet(Elements);
  if (IsOrdonnee)
   {
    result = verifQuestOrdonnee(Elements,NbRep)
    tmpObj = Elements[0][0];
   }
  else
  if ((Type) && (Type.search('select')!=-1))
   {
     if ( (Elements.length>0) && (getTypeObjet(Elements[0]).search('select')!=-1))
      {
       for (var i=0;i<Elements.length;i++)
        {
         if ( Elements[i].selectedIndex>0)
         {
          result = true;
          break;
         }
        }
       tmpObj = Elements[0];
      }
     else
     if ((Elements) && (Elements.selectedIndex>0))
        result = true;
   }
  else
  if (Elements.length>0)
  {
   for (var i=0;i<Elements.length;i++)
   {
    if ((Elements[i]) && ( ( (Type=='hidden') && (Elements[i].value!='')) || (Elements[i].checked) ) )
     {
       result = true;
       break;
     }
   }
   tmpObj = Elements[0];
  }
  else
  if ( (Type=='radio') || (Type=='checkbox'))
   {
    if ((Elements) && (Elements.checked))
     {
       result = true;
     }
   }
   else
  if ((Elements) && (Elements.value!=''))
     result=true
  TraiteResult(Tag,result);
  if ( (!(result)) && (!(ObjSelect)) && (tmpObj) && (Type!='hidden'))
    {
     ObjSelect=tmpObj;
     ObjSelect.focus();
    }
 }
 else result=true;
 return result;
}

