﻿function checkEmptyField(idControl){
    if (document.getElementById(idControl).value == '') {
        return false;
    }
}

function ShowID(sId, bShow){

    if(document.getElementById(sId)){
        if(bShow){
            document.getElementById(sId).style.display='block';
        }else{
            document.getElementById(sId).style.display='none';
        }
    }
}

function ShowHide(sId){
    //alert (sId);
    //alert (document.getElementById(sId).style.display);
    if(document.getElementById(sId)){
        if(document.getElementById(sId).style.display=='none'){
            document.getElementById(sId).style.display='block';
        }else{
            document.getElementById(sId).style.display='none';
        }
    }
}


function ShowHideDetail(sIdLink,sIdDetail,sIdImg){
    if(document.getElementById(sIdDetail)){
        if(document.getElementById(sIdDetail).style.display=='none'){
            document.getElementById(sIdDetail).style.display='inline';
            if(document.getElementById(sIdLink))document.getElementById(sIdLink).innerHTML='fermer le détail';
            if(document.getElementById(sIdImg))document.getElementById(sIdImg).src='/img/bullet1Colapse.gif';
        }else{
            document.getElementById(sIdDetail).style.display='none';
            if(document.getElementById(sIdLink))document.getElementById(sIdLink).innerHTML='voir le détail';
            if(document.getElementById(sIdImg))document.getElementById(sIdImg).src='/img/bullet1Expand.gif';
        }
    }
}

function ShowHideRadio(radio, divToHideId, divToShowId){
    if(radio.checked){
        document.getElementById(divToHideId).style.display='none';
        document.getElementById(divToShowId).style.display='block';
    }
    else {
        document.getElementById(divToShowId).style.display='none';
        document.getElementById(divToHideId).style.display='block';
    }
}

function EmptyField(oField){
    oField.value='';
}
function OpenWindow(sTitre, sUrl, sOptions){
    window.open(sUrl, sTitre, sOptions);
    return false;
}

//fonction générique de mise à jour de la valeur d'un champ texte
// - value : nouvelle valeur à affecter au champ
// - id : identifiant du champ
function UpdateTextField(value, id){
    if(document.getElementById(id)){
        document.getElementById(id).value=value;
    }
}

//fonction générique de mise à jour de la valeur d'un champ texte à sa valeur par défaut si vide
// - value : nouvelle valeur à affecter au champ
// - id : identifiant du champ
function UpdateTextDefault(defaultValue, id){
    if(document.getElementById(id)){
        if(document.getElementById(id).value.length==0){
            document.getElementById(id).value=defaultValue;
        }
    }
}

//fonction générique d'effacement de la valeur du champ si celle-ci est égale de la valeur par défaut
// - value : nouvelle valeur à affecter au champ
// - id : identifiant du champ
function EmptyTextDefault(defaultValue, id){
    if(document.getElementById(id)){
        if(document.getElementById(id).value==defaultValue){
            document.getElementById(id).value='';
        }
    }
}

//fonction générique de mise à jour de la valeur d'une drop down
// - value : nouvelle valeur de l'index à sélectionner
// - id : identifiant de la drop down list
function UpdateDropDown(index, id){
    if(document.getElementById(id)){
        document.getElementById(id).selectedIndex=index;
    }
}

function FormatDate(id) {
    var objRegExp = /^\d{8}$/;
    var obj = document.getElementById(id)
    
    if(objRegExp.test(obj.value)) {
        obj.value = obj.value.substring(0, 2) + "/" + obj.value.substring(2, 4) + "/" + obj.value.substring(4, 8);
    }
     
}


//Fonction générique de récupération de la valeur d'un champ texte
//à partir de son ID
function GetTextFieldValue(id){
    if(document.getElementById(id)){
        return document.getElementById(id).value;
    }else{
        return '';
    }
}

//Fonction générique de récupération de l'index sélectionnée d'une drop down
//à partir de son ID
function GetDropdownSelectedIndex(id){
    if(document.getElementById(id)){
        return document.getElementById(id).selectedIndex;
    }else{
        return '';
    }
}
function fav (siteNOM, siteURL) {

    /*-- MESSAGE --*/
    function myMessage (raccourciClavier) {
        alert ("Utilisez '" + raccourciClavier + "'\npour ajouter cette page dans vos favoris !");
    }
    /*-- TRAITEMENT DES NAVIGATEURS --*/
    //Konqueror
    if (navigator.userAgent.indexOf('Konqueror') >= 0) {
    /*Test a effectuer avant tout les autres car repond TRUE aux differents tests sans pouvoir les exploiter*/
    myMessage("CTRL + B");
    }

    else if (window.external) {
    /* Internet Explorer 4+, et ses dérivés (Crazy Browser, Avent Browser ...) */
        try{
            window.external.AddFavorite(siteURL,siteNOM);
        }catch(e){
            myMessage("CTRL + D");
        }
    }

    else if (document.all && (navigator.userAgent.indexOf('Win') < 0)) {
    /* Internet Explorer Mac */
    myMessage("POMME + D");
    }

    else if (window.opera && window.print) {
    /* Opera 6+ */
    myMessage("CTRL + T");
    }

    else if (window.sidebar) {
    /* Netscape 6+ ; Mozilla, FireFox et compagnie (K-Meleon ...) */
        try {
            window.sidebar.addPanel(siteNOM,siteURL,"");
        }catch(e){
            myMessage("CTRL + D");
        }
    }

    else if (document.layers) {
    /* Netsccape 4 */
    myMessage("CTRL + D");
    }

    else alert ("Cette fonction n'est pas disponible pour votre navigateur.");
}

//Cette fonction permet de fixer un bug connu de aspnet qui fait que les boutons radio
//ne sont pas mutuellement exclusifs quand ils sont inclus dans un contrôle
//de données tel que repeater, datalist ou gridview
//Pierre ANTAS le 2 juillet 2007
function SetUniqueRadioButton(nameregex, current)
{
   re = new RegExp(nameregex);
   for(i = 0; i < document.forms[0].elements.length; i++)
   {
      elm = document.forms[0].elements[i]
      if (elm.type == 'radio')
      {
         if (re.test(elm.name))
         {
            elm.checked = false;
         }
      }
   }
   current.checked = true;
}

function CleanHTML(obj) 
{
    var chaine = obj.value
    var regBR = new RegExp("<br>|<br/>|<br />", "gi") ;
    chaine = chaine.replace(regBR, "\r\n");
    var regHTML = new RegExp("(<[^>]+>)", "gi");
    chaine = chaine.replace(regHTML, "");
    obj.value = chaine
    
}

function addToFavorites(anchor){
    bookmarkurl = anchor.getAttribute('href')
    bookmarktitle = anchor.getAttribute('title')
    if (document.all)
        window.external.AddFavorite(bookmarkurl,bookmarktitle)
    else if (window.sidebar) // firefox
        window.sidebar.addPanel(bookmarktitle, bookmarkurl, "");
}

function UpdateButtonStyle(idDdl, idButton) {
    if(document.getElementById(idDdl).selectedIndex == 0)
    {
       document.getElementById(idButton).className="boutonGris";
    } 
    else {
        document.getElementById(idButton).className="bouton";
    }
}


function UpdateButtonStyle(idDdl1, idButton1, idDdl2, idButton2, idDdl3,idButton3) {
 
    var selected = false;
    if (idDdl1 != "") {
        if (document.getElementById(idDdl1).selectedIndex != 0) {
            selected = true;
            document.getElementById(idButton1).className="bouton";        
        }
        else {
            document.getElementById(idButton1).className="boutonGris";
        }
    }
    if (idDdl2 != "") {
        if (document.getElementById(idDdl2).selectedIndex != 0) {
            selected = true;
            document.getElementById(idButton2).className="bouton";        
        }
        else {
            document.getElementById(idButton2).className="boutonGris";
        }
    }
    if (idDdl3 != "") {
        if (document.getElementById(idDdl3).selectedIndex != 0) {
            selected = true;
            document.getElementById(idButton3).className="bouton";        
        }
        else {
            document.getElementById(idButton3).className="boutonGris";
        }
    }
    if (!selected) {
        if (idDdl1 != "") {
            document.getElementById(idButton1).className="bouton";
        }
        if (idDdl2 != "") {
            document.getElementById(idButton2).className="bouton";
        }
        if (idDdl3 != "") {
            document.getElementById(idButton3).className="bouton";
        }
    }
}

// Verifie si le champ saisi est une date valide
//
function estUneDate(sId)
{
	var bErr;
	var strValeur;
	var strJour, strMois, strAnnee;
    var intJour, intMois, intAnnee;
	var strSeparateur1, strSeparateur2;

	bErr = 0;
	    if (document.getElementById(sId))
	    {
	        strValeur = document.getElementById(sId).value;
	        
	        // On vérifie qu'il ne s'agit pas d'un format de type ddmmyy ou ddmmyyyy
	        if (strValeur.toString().search(/^[0-9]+$/) == 0) {
	            if ((strValeur.toString().length == 6) || (strValeur.toString().length == 8)) {
	                // on reformate la date
	                strValeur = strValeur.toString().substring(0, 2) + "/" + strValeur.toString().substring(2, 4) + "/" + strValeur.toString().substring(4); 
	                document.getElementById(sId).value = strValeur;
	            }   
	            else {
	               bErr = 1;     
	            }
	        }
	        
	        // on vérifie que dd mm et yy sont bien des chiffres
	        //var objRegExp = /^(\d{1,2}\/){2}\d{2,4}$/;
	        //if(!objRegExp.test(strValeur)) {
	        //    bErr = 1;	            
	        //}
	                
            // Verification de la longueur
	        if ((strValeur.length != 10) && (strValeur.length != 8))
	            bErr = 1;

            // Separation des chaines j/m/a
	        strJour = strValeur.substring(0, 2);        // jour
	        strSeparateur1 = strValeur.substring(2, 3); // '/'
	        strMois = strValeur.substring(3, 5);        // mois
	        strSeparateur2 = strValeur.substring(5, 6); // '/'
	        strAnnee = strValeur.substring(6);          // année
            if (strAnnee.length == 2)
                strAnnee = '20' + strAnnee;

            // Conversion des chaines en entier
            intJour = parseInt(strJour, 10);
            if (isNaN(intJour))
                bErr = 1;
            intMois = parseInt(strMois, 10);
            if (isNaN(intMois))
                bErr = 1;
            intAnnee = parseInt(strAnnee, 10);
            if (isNaN(intAnnee))
                bErr = 1;
            
	        // Erreurs de base
	        //
            if (bErr != 0) {
                if (intJour < 1 || intJour > 31)
                    bErr = 1;
                if (strSeparateur1 != '/')
                    bErr = 1;
                if (intMois < 1 || intMois > 12)
                    bErr = 1;
                if (strSeparateur2 != '/')
                    bErr = 1;
                if (intAnnee < 2000 || intAnnee > 9999)
                    bErr = 1;
            }

	        // Erreurs avancées

	        // Mois comportant 30 jours
	        if (intMois == 4 || intMois == 6 || intMois == 9 || intMois == 11)
	        {
		        if (intJour == 31)
		            bErr = 1;
	        }

	        // Février, année bisextile
	        if (intMois == 2)
	        {
                if (intJour > 29)
		            bErr = 1;
                if ((intJour == 29) && (!AnneeBisextile(intAnnee)))
                    bErr = 1;
	        }
        }
        else {
        bErr=1;
        }
    if (bErr == 1)
    {
        return false;
    }

    return true;
}

function layerSetup(id,visibility){
  if(document.getElementById){
  this.obj = document.getElementById(id).style;
  this.obj.visibility = visibility;
  return this.obj;}
  else if(document.all){
  this.obj = document.all[id].style;
  this.obj.visibility = visibility;
  return this.obj;}
  else if(document.layers){
  this.obj = document.layers[id];
  this.obj.visibility = visibility;
  return this.obj;}
}
function visVisible(param){
  new layerSetup(param,'visible');
}

function visHidden(param){
  new layerSetup(param,'hidden');
}