// touches de navigation desactivees
var tst_radio='';
var winpop;

// -----------------------------------------------------------------------------------------
// fonction affiche patienter en cours
// -----------------------------------------------------------------------------------------
function openwaiting()
{
	if (winpop=='stop')
  {
  	document.getElementById('waiting').style.visibility='hidden';
  	window.clearTimeout("openwaiting()");
    return;
  }
  if (winpop == true)
  {
  	document.getElementById('waiting').style.visibility='hidden';
    winpop=false;
  }
  else
  {
  	document.getElementById('waiting').style.visibility='visible';
    winpop=true;
  }
  window.setTimeout("openwaiting()",600); // 1 sec
}
// -----------------------------------------------------------------------------------------
// fonction n affiche plus patienter en cours
// -----------------------------------------------------------------------------------------
function closewaiting()
{
	document.getElementById('waiting').style.visibility='hidden';
  window.clearTimeout("openwaiting()");
}
// -----------------------------------------------------------------------------------------
// ouvertude de l aide (chemin, lien de la page web)
// -----------------------------------------------------------------------------------------
function bouton_aide(chemin,lien_aide)
{
 	var top=(screen.height-480)/2-10;
	var left=(screen.width-700)/2;
  window.open("../aides/aides.asp?aide="+lien_aide+"&chemin="+chemin,"","top="+top+",left="+left+",width=700,height=480,menubar=no,scrollbars=no,status=no");
}
// -----------------------------------------------------------------------------------------
// test des bouton du formulaire et envois des zones de saisie (lien page web,nom de la fonction)
// -----------------------------------------------------------------------------------------
function formulaire_fonction(lien,fonction,alerte)
{
	window.location.href = lien
}
// -----------------------------------------------------------------------------------------
// gestionnaire d onglet (no onglet actif, nom div actif)
// -----------------------------------------------------------------------------------------
function onglet_actifcopie(actif,onglet)
{
	var i,j,nom,nb;

 	nb=document.getElementsByTagName('li').length;
	// desactivation des onglets
	for(i=0;i<nb;i++)
	{
		document.getElementsByTagName('li')[i].id='';
	}
  // activation de l onglet desire
	document.getElementsByTagName('li')[actif].id='current';
	// masquage et affichage des blocs
  for (i=1;i<nb+1;i++)
  {
  	nom="page"+i;
    document.getElementById(nom).style.visibility='hidden';
    if (onglet==nom)
    {
			document.getElementById(onglet).style.visibility='visible';
    }
  }
  document.getElementById("fr_onglet").value=onglet;
  element_curseur_premier();
}
// -----------------------------------------------------------------------------------------
// gestionnaire d onglet (nom onglet actif)
// -----------------------------------------------------------------------------------------
function onglet_actif(onglet)
{
	var i,j,nom,nb;

 	nb=document.getElementsByTagName('li').length;
	// desactivation des onglets
	for(i=0;i<nb;i++)
	{
		document.getElementsByTagName('li')[i].id='';
	}
  // activation de l onglet desire
	for(i=0;i<nb;i++)
	{
		if (document.getElementsByTagName('li')[i].name==onglet) document.getElementsByTagName('li')[i].id='current';
	}
	// masquage et affichage des blocs div
  for (i=1;i<nb+1;i++)
  {
  	nom="page"+i;
    document.getElementById(nom).style.visibility='hidden';
    if (onglet==nom)
    {
			document.getElementById(onglet).style.visibility='visible';
    }
  }
  document.getElementById("fr_onglet").value=onglet;
  element_curseur_premier();
}
// -----------------------------------------------------------------------------------------
// affichage du message et du format (zone de message, zone de format)
// -----------------------------------------------------------------------------------------
function formulaire_affichestatus(message,format)
{
  if (message=="") message=" ";
  if (document.getElementById("fr_status")) document.getElementById("fr_status").value=message;
  if (format=="") format=" ";
  if (document.getElementById("fr_format")) document.getElementById("fr_format").value=format;
}
// -----------------------------------------------------------------------------------------
// On focus, entree sur zone saisie (element formulaire)
// -----------------------------------------------------------------------------------------
function formulaire_onfocus(elem)
{
  if (elem.readOnly==false)
  {
  	// selectionne la zone
		if (elem.type!='radio')
		{
			elem.style.borderBottom='#ffa918';
  		elem.style.borderWidth='1px 1px 1px 1px';
  		elem.style.borderStyle='solid';
  	}
  }
}
// -----------------------------------------------------------------------------------------
// On blur, sortie sur zone saisie (element formulaire,controle de zone)
// -----------------------------------------------------------------------------------------
function formulaire_onblur(elem,controle)
{
	var zonein;
  var masque;
  var i,car,ok;
  var jour,mois,annee;
  var jmax=31;

	// deselectionne la zone
	if (elem.type!='radio')
	{
		elem.style.borderBottomColor='#7F9DB9';
  	elem.style.borderWidth='1px 1px 1px 1px';
		elem.style.borderStyle='solid';
	}

  zonein=elem.value;
  //tabsaisie[elem.tabIndex]=zonein;
  masque='';
  if (controle=='texte')
  {
  	masque=" 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789é{([-è_\çà@)]-+*/$%!:;.,?<>";
  }
  if (controle=='date')
  {
  	masque='/0123456789';
  }
  if (controle=='entier')
  {
  	masque=' 0123456789-';
  }
  if (controle=='decimal')
  {
  	masque=' 0123456789.,-';
  }
  if (controle=='telephone')
  {
  	masque='0123456789';
  }
  if (controle=='email')
  {
  	masque='0123456789abcdefghijklmnopqrstuvwxyz@.-_';
  }
  // filtrage des caracteres
  if (masque.length>0)
  {
  	ok=true;
  	for(var i=0;i<zonein.length;i++)
  	{
    	car=zonein.charAt(i);
      if (zonein.charCodeAt(i)>27)
      {
      	if (masque.indexOf(car)==-1)
        {
        	if (car==' ') car='Espace';
        	ok=false;
          break;
        }
      }
      else
      {
      	if (zonein.charCodeAt(i)!=10 && zonein.charCodeAt(i)!=13)
        {
      		ok=false;
        	car='Code ASCII';
				}
      }
  	}
    if (ok==false) { alert('Saisie incorrecte, caractère '+car+' non autorisé'+'\r'+'Format : '+document.forms['formulaire_centre'].fr_format.value); elem.value='\0'; elem.focus(); return; };
  }
  // remplace le . par la , pour les zones decimales
 	if (controle=='decimal' && zonein.length>0)
  {
		if (zonein.indexOf('.')>0) { elem.value=zonein.replace(/\./g,','); zonein=elem.value };
  }
  // recherche si - en double , pour les zones decimales et entieres
 	if ((controle=='decimal'||controle=='entier') && zonein.length>0)
  {
		if (zonein.indexOf('-') != zonein.lastIndexOf('-')) { alert('Un seul signe négatif autorisé'); elem.value='\0'; elem.focus(); return; };
  }
  // recherche si , en double , pour les zones decimales
 	if ((controle=='decimal') && zonein.length>0)
  {
		if (zonein.indexOf(',') != zonein.lastIndexOf(',')) { alert('Une seule marque décimale autorisée'); elem.value='\0'; elem.focus(); return; };
  }
	if (controle=='email' && zonein.length>0)
  {
  	ok=true;
    if (zonein.indexOf('@')==-1) ok=false;
		if (zonein.indexOf('.')==-1) ok=false;
    if (ok==false) { alert('Saisie email incorrecte, il manque "." ou "@"'+'\r'+'Format : '+document.forms['formulaire_centre'].fr_format.value); elem.value='\0'; elem.focus(); return; };
  }
  if (controle=='telephone' && zonein.length>0)
  {
  	ok=true;
		//if (zonein.indexOf('.')==-1) ok=false;
    //if (ok==false) { alert('Saisie numéro de téléphone/fax incorrecte, il manque les "."'); elem.value='\0'; elem.focus(); return; };
  }
  if (controle=='date' && zonein.length>0)
  {
  	ok=true;
    if (zonein.length!=10) { alert('Longeur de saisie incorrecte'+'\r'+'Format : '+document.forms['formulaire_centre'].fr_format.value); elem.value='\0'; elem.focus(); return; };
  	if (zonein.substring(2,3) !='/' || zonein.substring(5,6) !='/') { alert('Manque le caractere /'+'\r'+'Format : '+document.forms['formulaire_centre'].fr_format.value); elem.value='\0'; elem.focus(); return; };
    jour=zonein.substring(0,2);
    mois=zonein.substring(3,5);
    annee=zonein.substring(6,10);
    if ((jour<1 || jour>jmax) || (mois<1 || mois>12) || (annee<1900 || annee>2022)) ok=false;
    else
    {
      if (mois == 2)
      {
        if (anneebissex(annee)==true) jmax=29;
        else jmax=28;
      }
      if ((mois==1 || mois== 3 || mois==5 || mois==7 || mois==8 || mois==10 || mois==12)) jmax=31;
      if ((mois==4 || mois== 6 || mois==9 || mois==11)) jmax=30;
      if (jour<1 || jour>jmax) ok=false;
    }
    if (ok==false) { alert('Saisie de la date incorrecte'+'\r'+'Format : '+document.forms['formulaire_centre'].fr_format.value); elem.value='\0'; elem.focus(); };
  }
}
// -----------------------------------------------------------------------------------------
// On mouseout, sortie souris sur boutons de fonction (element formulaire, bord bouton pixel)
// -----------------------------------------------------------------------------------------
function formulaire_onmouseout(elem,pixel)
{
	var pixel;

	if (pixel == null)
  {
    elem.style.borderStyle='outset';
    elem.style.backgroundColor='transparent';
		elem.style.borderWidth='1px';
		elem.style.borderRightColor='rgb(102,102,102)';
		elem.style.borderBottomColor='rgb(102,102,102)';
  }
	else
 	{
  	elem.style.borderWidth='2px 2px 2px 2px';
    elem.style.borderBottomColor='rgb(102,102,102)';
  }
	elem.style.borderStyle='solid';
}
// -----------------------------------------------------------------------------------------
// On mousemove sur bouton de fonction (element formulaire, taille du pixel)
// -----------------------------------------------------------------------------------------
function formulaire_onmousemove(elem,pixel)
{
	var pixel;

  elem.style.borderBottom='#ffa918';
  elem.style.borderStyle='solid';
  if (pixel == null) elem.style.borderWidth='1px 1px 1px 1px';
  else elem.style.borderWidth='2px 2px 2px 2px';
}
// -----------------------------------------------------------------------------------------
// controle de la touche ENTREE, BACKSPACE (evenement clavier,element du formulaire,lien si return)
// -----------------------------------------------------------------------------------------
function formulaire_onkeydown(even,elem,lien,alerte,fonction)
{
 	var car;
  var rtn;
  var pos;
	var code;

  if(even.keyCode) car=even.keyCode;
	else car=even.which;

	// touche tab
  if (car == 9)
  {
    // controle dupplication
  	if (elem.name!="Valider")
    {
    	if (elem.type=="checkbox")
      {
      	if (elem.tabulation=="-1") elem.checked=true;
      }
      else
      {
      	if (elem.value=="") elem.value=elem.tabulation;
      }
      if (elem.type=="textarea")
    	{
    		even.returnValue=false;
  			pos=element_curseur_suivant(elem);
				if (pos) element_curseur_dernier();
			}
    }
    //else
    //{
   	even.returnValue=false;
			//car=13;
    //}
  }

	// touche home
  if (car == 36)
  {
		pos=element_curseur_premier();
    even.returnValue=false;
  }

  // touche fin
  if (car == 35)
  {
		element_curseur_dernier()
		even.returnValue=false;
  }

  // touche fleche haut
  if (car == 38 && elem.type!="textarea")
  {
    pos=element_curseur_precedent(elem);
		if (pos) pos=element_curseur_premier();
		even.returnValue=false;
  }

  // touche fleche bas
  if (car == 40 && (elem.type!="textarea"))
  {
    pos=element_curseur_suivant(elem);
		if (pos) element_curseur_dernier()
		even.returnValue=false;
  }

  // touche return
  if (car == 13 || car== 9)
  {
  	// changement de page a partir d une zone input
    if (lien!='')
    {
    	if (elem.value=='')
      {
      	if (elem.obligatoire=='-1')
        {
        	alert("Cette zone doit être renseignée...");
      		return;
        }
    	}
      even.returnValue=false;
			if (elem.name=="Valider")
      {
      	fonction="Valider";
      }
      else
      {
      	if (fonction=="") fonction="Lecture";
      }
    	formulaire_fonction(lien,fonction,alerte);
    }
		else
		{
    	if (elem.type!="textarea")
 			{
      	even.returnValue=false;
      	pos=element_curseur_suivant(elem);
				if (pos) element_curseur_dernier();
      }
		}
  }
}
// -----------------------------------------------------------------------------------------
// position du precedent element (element formulaire)
// -----------------------------------------------------------------------------------------
function element_curseur_precedent(elem)
{
	var rtn;
  var i;
  var j;

  rtn=true;
  for (i=0;i<document.forms['formulaire_centre'].elements.length;i++)
	{
		if (elem.name == document.forms['formulaire_centre'].elements[i].name)
    {
    	if (i==0) i=1;
      for (j=i-1;j!=0;j--)
      {
      	// on saute les fieldset
      	if (document.forms['formulaire_centre'].elements[j].name=="fieldset") continue;
        // test si input cache
    		if (document.forms['formulaire_centre'].elements[j].type=="hidden") continue;
        // test si input bouton
    		if (document.forms['formulaire_centre'].elements[j].type=="button" && document.forms['formulaire_centre'].elements[j].name!='Valider') continue;
        // test si input non actif
    		if (document.forms['formulaire_centre'].elements[j].disabled) continue;
        if (document.forms['formulaire_centre'].elements[j].readOnly) continue;
        if (document.forms['formulaire_centre'].elements[j].onglet)
        {
        	if (document.forms['formulaire_centre'].elements[j].onglet!=document.getElementById("fr_onglet").value) continue;
        }
        document.forms['formulaire_centre'].elements[j].focus();
        rtn=false;
        break;
      }
      break;
    }
  }
  return(rtn);
}
// -----------------------------------------------------------------------------------------
// position du prochain element (element formulaire)
// -----------------------------------------------------------------------------------------
function element_curseur_suivant(elem)
{
	var rtn;
  var j;

  rtn=true;
  for (i=0;i<document.forms['formulaire_centre'].elements.length;i++)
	{
		if (elem.name == document.forms['formulaire_centre'].elements[i].name)
    {
      for (j=i+1;j< document.forms['formulaire_centre'].elements.length;j++)
      {
        // on saute les fieldset
        if (document.forms['formulaire_centre'].elements[j].name=="fieldset") continue;
        // test si input cache
    		if (document.forms['formulaire_centre'].elements[j].type=="hidden") continue;
        // test si bouton radio
        if (document.forms['formulaire_centre'].elements[i].type=="radio" && document.forms['formulaire_centre'].elements[i].name==document.forms['formulaire_centre'].elements[j].name && document.forms['formulaire_centre'].elements[j].type=="radio") continue;
        // test si input bouton
    		if (document.forms['formulaire_centre'].elements[j].type=="button" && document.forms['formulaire_centre'].elements[j].name!='Valider') continue;
        // test si input non actif
    		if (document.forms['formulaire_centre'].elements[j].disabled) continue;
        if (document.forms['formulaire_centre'].elements[j].readOnly) continue;
				if (document.forms['formulaire_centre'].elements[j].onglet)
        {
        	if (document.forms['formulaire_centre'].elements[j].onglet!=document.getElementById("fr_onglet").value) continue;
        }
        document.forms['formulaire_centre'].elements[j].focus();
        rtn=false;
        break;
      }
      break;
    }
  }
  return(rtn);
}
// -----------------------------------------------------------------------------------------
// position sur le premier element
// -----------------------------------------------------------------------------------------
function element_curseur_premier()
{
	var rtn;
  var i;

	//window.onerror=new Function("return true");
  rtn=true;
  for (i=0;i<document.forms['formulaire_centre'].elements.length;i++)
	{
  	// on saute les fieldset
    if (document.forms['formulaire_centre'].elements[i].name=="fieldset") continue;
    // test si input cache
    if (document.forms['formulaire_centre'].elements[i].type=="hidden") continue;
    // test si input bouton
    if (document.forms['formulaire_centre'].elements[i].type=="button" && document.forms['formulaire_centre'].elements[i].name!='Valider') continue;
    // test si input non actif
    if (document.forms['formulaire_centre'].elements[i].disabled) continue;
    if (document.forms['formulaire_centre'].elements[i].readOnly) continue;
		// test si element dans un onglet
    if (document.getElementById("fr_onglet"))
		//if (document.forms['formulaire_centre'].elements[i].onglet)
		{
			if (document.forms['formulaire_centre'].elements[i].onglet!=document.getElementById("fr_onglet").value) continue;
		}
		if (document.forms['formulaire_centre'].elements[i].focus) document.forms['formulaire_centre'].elements[i].focus();
		rtn=false;
    break;
  }
  return(rtn);
}
// -----------------------------------------------------------------------------------------
// position sur le dernier element
// -----------------------------------------------------------------------------------------
function element_curseur_dernier()
{
	var rtn;
  var i;

  rtn=true;
  for (i=document.forms['formulaire_centre'].elements.length-1;i>0;i--)
	{
    // on saute les fieldset
    if (document.forms['formulaire_centre'].elements[i].name=="fieldset") continue;
    // test si input cache
    if (document.forms['formulaire_centre'].elements[i].type=="hidden") continue;
    // test si input bouton
    if (document.forms['formulaire_centre'].elements[i].type=="button" && document.forms['formulaire_centre'].elements[i].name!='Valider') continue;
    // test si input non actif
    if (document.forms['formulaire_centre'].elements[i].disabled) continue;
    if (document.forms['formulaire_centre'].elements[i].readOnly) continue;
    if (document.forms['formulaire_centre'].elements[i].onglet)
		{
			if (document.forms['formulaire_centre'].elements[i].onglet!=document.getElementById("fr_onglet").value) continue;
		}
    //if (document.forms['formulaire_centre'].elements[i].onglet_actif=='hidden') continue;
    document.forms['formulaire_centre'].elements[i].focus();
    rtn=false;
    break;
  }
  return(rtn);
}
// -----------------------------------------------------------------------------------------
// place le focus sur un element (element formulaire)
// -----------------------------------------------------------------------------------------
function element_setfocus(elem_name)
{
	if (elem_name=='')
  {
 		rtn=element_curseur_premier();
  	return;
  }
  //window.onError = null;

	if (document.getElementById(elem_name).disabled) return;
  if (document.getElementById(elem_name).readOnly) return;
  if (document.getElementById(elem_name).onglet_actif=='hidden') return;
  alert("elem="+elem_name);
  document.getElementById(elem_name).focus();
}
// -----------------------------------------------------------------------------------------
// ferme une zone de saisie (nom element formulaire)
// -----------------------------------------------------------------------------------------
function ferme_zone(elem_name)
{
  document.getElementById(elem_name).readOnly=true;
  document.getElementById(elem_name).value="";
  document.getElementById(elem_name).style.backgroundColor="#FFFFCC";
}
// -----------------------------------------------------------------------------------------
// ouvre une zone de saisie  (nom element formulaire)
// -----------------------------------------------------------------------------------------
function ouvre_zone(elem_name)
{
	document.getElementById(elem_name).readOnly=false;
  document.getElementById(elem_name).disabled=false;
 	document.getElementById(elem_name).style.borderColor="#7F9DB9";
  document.getElementById(elem_name).style.backgroundColor="white";
}
// -----------------------------------------------------------------------------------------
// ouverture d une page web/asp (lien page http/asp)
// -----------------------------------------------------------------------------------------
function page_ouvre(lien)
{
	// appel du formulaire et passage de la fonction et variables de saisie
	window.location.href = lien;
}
// -----------------------------------------------------------------------------------------
// ouverture d une page web/asp popup ou d un document
// -----------------------------------------------------------------------------------------
function page_popup(lien)
{
	// appel du document ou page web 
	openwaiting();
	var top=(screen.height-600)/2;
	var left=(screen.width-800)/2;
	window.open(lien,'','top='+top+',left='+left+',width=790,height=466,fullscreen=no,menubar=yes,titlebar=yes,toolbar=yes,resizable=yes,status=yes,scrollbars=yes');
}
// -----------------------------------------------------------------------------------------
// ouverture d une page web/asp (lien page http/asp) avec param
// -----------------------------------------------------------------------------------------
function page_nouvelle(lien,param,zscroll)
{

	var top=(screen.height-600)/2;
	var left=(screen.width-800)/2;
	window.open (lien+'?'+param,'','top='+top+',left='+left+',width=790,height=546,fullscreen=no,menubar=no,titlebar=no,toolbar=no,resizable=no,status=yes,scrollbars='+zscroll);
}
// -----------------------------------------------------------------------------------------
// fonction ouverture de fenetre (lien page web,largeur de la fenetre,hauteur,option d ouverture)
// -----------------------------------------------------------------------------------------
function openwindow(lien,largeur,hauteur,options)
{
	var top=(screen.height-hauteur)/2-10;
	var left=(screen.width-largeur)/2;
	window.open(lien,"","top="+top+",left="+left+",width="+largeur+",height="+hauteur+","+options);
}
// -----------------------------------------------------------------------------------------
// teste pour les annees bisextiles
// -----------------------------------------------------------------------------------------
function anneebissex(annee) {
	// règle :
	// toute les années multiples de 4 sont bissextiles
	// sauf la première année d'un siècle
	// mais la première année d'un millénaire est bissextile
  if((annee/4)==parseInt(annee/4))
  {
    if((annee/1000)==parseInt(annee/1000)) return true;
    else if((annee/100)==parseInt(annee/100)) return false;
   	return true;
  }
 	else return false;
}
// -----------------------------------------------------------------------------------------
// fonction d impression
// -----------------------------------------------------------------------------------------
function formulaire_print(){
	var NS = (navigator.appName == "Netscape");
	if (NS)
  {
		window.print() ;
	}
	else
  {
		var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
		document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
		WebBrowser1.ExecWB(6, 2);
		//Use a 1 vs. a 2 for a prompting dialog box WebBrowser1.outerHTML = "";
	}
}
// -----------------------------------------------------------------------------------------
function fnGetCaretPosition(oElement)
 {
  var oSelection = oElement.ownerDocument.selection;
  var oRange = oSelection.createRange().duplicate();
  var defaultValue = oElement.value;
  var caret = -1;
  var key = "J~!@#$%^A&*()_+{}V|:>?<;)A";
  var lenSelected = oRange.text.length;

  oRange.text = key;
  caret = oElement.value.indexOf(key);
  oElement.value = defaultValue;
  var valLen = defaultValue.length;
  var rangeEnd = (-1*(valLen-caret));

  // move the caret back
  oRange.moveStart("character", caret);
  oRange.moveEnd("character", rangeEnd+lenSelected);
  oRange.select();
  return( caret );
}
// -----------------------------------------------------------------------------------------
