/*Appélé lors de la selction d'une rubrique.
 Permet de dérouler le menu en fonction de la rubrique selectionné.
 @param element_courante element selectionné - type ojebt html
 @param topic_id id du topic sélectionné - On passe directement ce parametre afin de simplifié le traitement
 @deprecated  */
var plateforme=navigator.appName.substring(0,2);
function clickLink(linkId) {
  var link = document.getElementById(linkId);
  if ( link ) {
   // DEBUG alert(plateforme);
    if (plateforme=='Mi') link.click();
    if (plateforme=='Ne') link.onclick();
  }
  return true;
}

// handle an event generated when a user press "enter" from an input form element with a button id different than 'defaultAction'
function handleReturnKeyPressedByAction(evt, action) {
    // character code for the key which has been pressed
    var characterCode;
    if (evt.which) {
        characterCode = evt.which;
    } else if (evt.keyCode && evt.srcElement) {
        // IE specific
        characterCode = evt.keyCode;
    } else {
      // unhandled browser
      return true;
    }
    // ascii 13 is the character code for the 'return' key
    if (characterCode && characterCode == 13) {
      var actionElement = document.getElementById(action);
      if (actionElement) {
        actionElement.click();
      }
      return false;
    }
}

   /*

   JEAN PAUL => La méthode suivante fonctionne, elle utilise une autre syntaxte pour la gestion des évenements.


   Utilisation de la gestion des evenements pour lancé un mousEvent, click. !!!!*/
function clickLink_with_Add_event(linkId) {
   var link = document.getElementById(linkId);

      if (plateforme=='Mi') {          
         link.fireEvent("click");
      }
    if (plateforme=='Ne') {
         var evt = document.createEvent("MouseEvents"); // créer un évennement souris
         evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); // intiailser l'évennement déja crée par un click
        link.dispatchEvent(evt); // envoyer l'évennement vers l'élement
    }
  return true;
}


function derouler_menu(element_courante, topic_id) {
    var text = element_courante.nextSibling;
    var div = text;
    if (text.nodeType == 3) {
        div = text.nextSibling;
    }
    var id_contenu_rubrique = div.id;
    if (div.style.display == 'none') {
        div.style.display = 'block';
        var left_page_courante = document.getElementById('left_page_courante');
        var liste_enfants = left_page_courante.childNodes;

        for (var i = 0; i < liste_enfants.length; i++) {
            var child = liste_enfants[i];
            if (child.nodeType == 1) {
                if (child.id == id_contenu_rubrique) {
                    child.style.display = 'block';
                } else {
                    if (child.className != 'rubrique') {
                        child.style.display = 'none';
                    }
                }
            }
        }
    } else {
        div.style.display = 'none';
    }
    window.location.href = document.getElementById('lien' + topic_id).href;
}
/*Fonction appelée à l'affichage de la page html.Permet de dérouler le menu en fonction du topic sélectionné lorsque l'on vient d'une autre page
 @param id du topic sélectionné
 Attention la convention de nomage utilisé doit être respecté afin que le script fonctionne.
 @deprecated  */
function open_sub_rubrique(topic_id) {

    var id_topic_courant = topic_id;

    if (id_topic_courant != null) {
        var is_topic = document.getElementById('topic' + topic_id);
        if (is_topic != null) {
            is_topic.style.display = 'block';
        }

        var is_li = document.getElementById('li' + topic_id);
        if (is_li != null) {
            is_li.style.display = 'block';
            var ul_parent = is_li.parentNode;
            var rub_parent = ul_parent.parentNode;
            rub_parent.style.display = 'block';
            ul_parent.style.display = 'block';
            var ul_test = document.getElementById('ul' + topic_id);
            ul_test.style.display = 'block';
        }

        var lien_li = document.getElementById('lienli' + topic_id);
        if (lien_li != null) {
            var parent1 = lien_li.parentNode;
            var parent2 = parent1.parentNode;
            parent2.style.display = 'block';

            var parent3 = parent2.parentNode;
            var parent4 = parent3.parentNode;
            parent4.style.display = 'block';
        }
    }
}

/*
 *
 *
 * */
function visible_ul(div, adresse) {
    if (div.getElementsByTagName('ul')[0].style.display == 'none') {
        div.getElementsByTagName('ul')[0].style.display = 'block';
        div.getElementsByTagName('img')[0].src = adresse + 'fleche_opened.png';
    }
    else if (div.getElementsByTagName('ul')[0].style.display == 'block') {
        div.getElementsByTagName('ul')[0].style.display = 'none';
        div.getElementsByTagName('img')[0].src = adresse + 'fleche_closed.png';
    }
}
function visible_h3(div) {

    if (navigator.appName == 'Microsoft Internet Explorer') {
        if (div.parentNode.nextSibling.nextSibling.style.display == 'block') {
            div.parentNode.nextSibling.style.display = 'none';
            div.parentNode.nextSibling.nextSibling.style.display = 'none';
        }
        else if (div.parentNode.nextSibling.nextSibling.style.display == 'none') {
            div.parentNode.nextSibling.style.display = 'block';
            div.parentNode.nextSibling.nextSibling.style.display = 'block';
        }
    }

    else {
        if (div.parentNode.nextSibling.nextSibling.nextSibling.nextSibling.style.display == 'block') {
            div.parentNode.nextSibling.nextSibling.nextSibling.nextSibling.style.display = 'none';
            div.parentNode.nextSibling.nextSibling.style.display = 'none';
        }
        else if (div.parentNode.nextSibling.nextSibling.nextSibling.nextSibling.style.display == 'none') {
            div.parentNode.nextSibling.nextSibling.nextSibling.nextSibling.style.display = 'block';
            div.parentNode.nextSibling.nextSibling.style.display = 'block';
        }
    }
}
function visible_img(h3, adresse) {

    if (h3.parentNode.getElementsByTagName('img')[0].alt == 1) {
        h3.parentNode.getElementsByTagName('img')[0].src = adresse + 'closed.png';
        h3.parentNode.getElementsByTagName('img')[0].alt = 0;
    }
    else if (h3.parentNode.getElementsByTagName('img')[0].alt == 0) {
        h3.parentNode.getElementsByTagName('img')[0].src = adresse + 'opened.png';
        h3.parentNode.getElementsByTagName('img')[0].alt = 1;
    }

}

/* Page prestataire_home Gère l"affichage des onglets, en fonction de celui sélectionné*/
function onglet(img, id) {
    var limite = img.parentNode.getElementsByTagName('img').length;
    for (var i = 0; i < limite; i++) {
        img.parentNode.getElementsByTagName('img')[i].alt = 0;
    }
    img.alt = 1;
    for (var j = 0; j < limite; j++) {
        if (img.parentNode.getElementsByTagName('img')[j].alt == 0) {
            img.parentNode.getElementsByTagName('img')[j].src = '../images/entreprises/onglet_clair.png';
        }
        else if (img.parentNode.getElementsByTagName('img')[j].alt == 1) {
            img.parentNode.getElementsByTagName('img')[j].src = '../images/entreprises/onglet_fonce.png';
        }
    }
    if (id == 1) {
        document.getElementById('ul2').style.display = 'none';
        document.getElementById('ul1').style.display = 'block';
    }
    else if (id == 2) {
        document.getElementById('ul1').style.display = 'none';
        document.getElementById('ul2').style.display = 'block';
    }
}
/*Gère l'affichage des différentes étapes en fonction de l'étape en cours de lecture.
 @deprecated*/
function dossier(span, id) {
    if (navigator.appName == 'Microsoft Internet Explorer') {
        for (var i = 1; i <= 5; i++) {
            document.getElementById('etape' + i).nextSibling.style.display = 'none';
            document.getElementById('etape' + i).nextSibling.nextSibling.style.display = 'none';
        }
        document.getElementById('etape' + id).nextSibling.style.display = 'block';
        document.getElementById('etape' + id).nextSibling.nextSibling.style.display = 'block';
    }
    else {
        for (var i = 1; i <= 5; i++) {
            document.getElementById('etape' + i).nextSibling.nextSibling.style.display = 'none';
            document.getElementById('etape' + i).nextSibling.nextSibling.nextSibling.nextSibling.style.display = 'none';
            document.getElementById('etape' + i).getElementsByTagName('img')[0].src = 'images/salaries/closed.png';
        }
        document.getElementById('etape' + id).nextSibling.nextSibling.style.display = 'block';
        document.getElementById('etape' + id).nextSibling.nextSibling.nextSibling.nextSibling.style.display = 'block';
        document.getElementById('etape' + id).getElementsByTagName('img')[0].src = 'images/salaries/opened.png';
    }

}
/*Modifie l'état d'affichage de la boite d'information
 Ferme la box si ouverte, ouvre si fermée.
 @param id du topic listé dans la box
 !!! La convention de nommage suivante doit être respectée pour que le script fonctionne.
 boxTitle_	 => titre de la box ( h3 )
 boxContenu_	 => Contenu de la box ( div )*/
function display_hide_box(id_topic) {
    var title_obj = document.getElementById('boxTitle_' + id_topic);
    var contenu_obj = document.getElementById('boxContenu_' + id_topic);

    visibleElement(contenu_obj);
    if (title_obj.className == 'open') {
        title_obj.className = 'close';
    } else if (title_obj.className == 'close') {
        title_obj.className = 'open';
    }
}

/* Page salaries_dossier.jsp => dossier en cinq étapes.
 Gère l'affichage des étapes en cours de lecture.
 Etape en cours de lecture affichée, les autres cachées. + modification de la classe du titre.
 @param id de l'étape à fermer (string)
 @param id de l'étape à ouvrir.(string)*/
function display_hide_step(toClose, toDisplay) {

    var toClose_title_obj = document.getElementById('step' + toClose + '_title');
    var toClose_contenu_obj = document.getElementById('step' + toClose + '_contenu');
    var toDisplay_title_obj = document.getElementById('step' + toDisplay + '_title');
    var toDisplay_contenu_obj = document.getElementById('step' + toDisplay + '_contenu');

    if (toClose_title_obj != null) {
        if (toClose_title_obj.className != null) {
            toClose_title_obj.className = 'close';
        }
    }
    if (toClose_contenu_obj != null) {
        if (toClose_contenu_obj.style != null) {
            toClose_contenu_obj.style.display = 'none';
        }
    }
    if (toDisplay_title_obj != null) {
        if (toDisplay_title_obj.className != null) {
            toDisplay_title_obj.className = 'open';
        }
    }
    if (toDisplay_contenu_obj != null) {
        if (toDisplay_contenu_obj.style != null) {
            toDisplay_contenu_obj.style.display = '';
        }
    }
}

/* Page salaries_dossier.jsp => dossier en cinq étapes
 Ouverture de n'importe quelle étape en click dessus. => Ferme automatiquement toutes les autres
 */
function display_target_step(toOpen) {

    // fermeture des cinq étapes
    for (var i = 1; i < 6; i++) {
        var toClose_title_obj = document.getElementById('step' + i + '_title');
        var toClose_contenu_obj = document.getElementById('step' + i + '_contenu');

        if (toClose_title_obj != null) {
            if (toClose_title_obj.className != null) {
                toClose_title_obj.className = 'close';
            }
        }
        if (toClose_contenu_obj != null) {
            if (toClose_contenu_obj.style != null) {
                toClose_contenu_obj.style.display = 'none';
            }
        }
    }
    // ouverture de l'étape ciblée
    var toDisplay_title_obj = document.getElementById('step' + toOpen + '_title');
    var toDisplay_contenu_obj = document.getElementById('step' + toOpen + '_contenu');
    if (toDisplay_title_obj != null) {
        if (toDisplay_title_obj.className != null) {
            toDisplay_title_obj.className = 'open';
        }
    }
    if (toDisplay_contenu_obj != null) {
        if (toDisplay_contenu_obj.style != null) {
            toDisplay_contenu_obj.style.display = '';
        }
    }

}


/*Vérifier utilisation de cette fonction, anciennement utilisé pur les box des home, ouverture et fermeture.*/
function visibleBox(boxContenuId, boxBottomId) {
    var boxContenu = document.getElementById(boxContenuId);
    var boxBottom = document.getElementById(boxBottomId);
   // DEBUG alert(boxContenu.style.display);
    visibleElement(boxContenu);
    visibleElement(boxBottom);
}
function visible_onglet(onglet_id) {
    var onglet = document.getElementById(onglet_id);
    if (onglet.style.display == 'none') {
        onglet.style.display = 'block';
    } else {
        onglet.style.display = 'none';
    }
}
/*Réduit la taille du text de l'élément sélectionné	*/
function reduce_text_lenght(obj_id, string_lenght) {

    var selected_object = document.getElementById(obj_id);
    var text_to_reduce = selected_object.innerHTML;


    if (string_lenght > ( text_to_reduce.length - 1)) {

    } else if (string_lenght < 0) {

    } else {
        var new_text = text_to_reduce.substr(0, string_lenght);
        new_text = new_text.concat("....");
        selected_object.innerHTML = new_text;
    }


}
/*Permet d'ouvrir ou fermer les box presentes sur les home page
 @param  id de la div contenant les liens.(string)
 @param id de la div content le bottom de la box(string)
 @param Bar de titre de la box ( object html et non id sous forme de chaine) */
function visibleBox(boxContenuId, boxBottomId, h3_obj) {
    var boxContenu = document.getElementById(boxContenuId);
    var boxBottom = document.getElementById(boxBottomId);

    var etat_box = 0;
    etat_box = visibleElement(boxContenu) + etat_box;
    etat_box = visibleElement(boxBottom) + etat_box;

    if (etat_box == 0) {
        var style_string = 'transparent url(';
        style_string = style_string + opened_image_path;
        style_string = style_string + ') no-repeat scroll right top;'
        h3_obj.style.background = style_string;
    }

    if (etat_box == 2) {
        var style_string = 'transparent url(';
        style_string = style_string + closed_image_path;
        style_string = style_string + ') no-repeat scroll right top;'
        h3_obj.style.background = style_string;
    }

    if (etat_box == 1) {
    // DEBUG    alert('erreur - état non supporté');
    }
}
/* Inverse l'attribut visible de l'element donnée en paramètre.	*/
function visibleElement(element) {
    if (element.style.display == 'none') {
        displayElement(element);
        return 0;
    } else {
        hideElement(element);
        return 1;
    }
}
/* Modifie l'attribut visible de l'element => block*/
function displayElement(element) {
    element.style.display = 'block';
}

/* Modifie l'attribut visible de l'element => */
function hideElement(element) {
    element.style.display = 'none';
}
function set_closed_arrow_image(object_h3, image_path) {
    object_h3.style.background = 'transparent url(../images/prestataires/closed.png) no-repeat scroll right top;';
}
function set_opened_arrow_image(object_h3) {
    object_h3.style.background = 'transparent url(../images/prestataires/opened.png) no-repeat scroll right top;';
}


function visibleOnglet(ongle1tid, onglet2id, onimage) {
    var onglet1 = document.getElementById(ongle1tid);
    var onglet2 = document.getElementById(onglet2id);
    if (onglet1.style.display == 'none') {
        onglet1.style.display = 'block';
        onglet2.style.display = 'none';
    } else {
        onglet2.style.display = 'block';
        onglet1.style.display = 'none';
    }

    var image1 = document.getElementById('on1');
    var image2 = document.getElementById('on2');
    var image3 = document.getElementById('on3');
    var image4 = document.getElementById('on4');

    if (onimage == 'on1') {

        image2.style.display = '';
        image4.style.display = '';
        image1.style.display = 'none';
        image3.style.display = 'none';
    }
    if (onimage == 'on2') {
        image1.style.display = '';
        image3.style.display = '';
        image2.style.display = 'none';
        image4.style.display = 'none';
    }
    if (onimage == 'on3') {

        image2.style.display = '';
        image4.style.display = '';
        image1.style.display = 'none';
        image3.style.display = 'none';

    }
    if (onimage == 'on4') {
        image1.style.display = '';
        image3.style.display = '';
        image2.style.display = 'none';
        image4.style.display = 'none';
    }
}


function visibleOngletImages(on1, on2, onimage) {
    var onglet1 = document.getElementById('on1');
    var onglet2 = document.getElementById('on2');
    var onglet3 = document.getElementById('on3');
    var onglet4 = document.getElementById('on4');
    onglet1.style.display = "none";
    onglet2.style.display = "none";
    onglet3.style.display = "none";
    onglet4.style.display = "none";

    var onglet_to_display1 = document.getElementById(on1);
    var onglet_to_display2 = document.getElementById(on2);

    onglet_to_display2.style.display = 'block';
    onglet_to_display1.style.display = 'block';

}

function highlightMenuEntry(element, newClassName) {
    if (element != null) {
        var str = element.className;
        if (str != null) {
            element.className = str + " " + newClassName;
        } else {
            element.className = newClassName;
        }
    }
}

function inverse(obj) {
    if (obj.style.display == none) {
        obj.style.display = block;
    } else {
        obj.style.display = none;
    }
}


function toggleVisibility(elementId) {
    var element = document.getElementById(elementId);
    if (element != null) {
        var vis = element.style.display;
        if (vis != "none") {
            vis = "none";
        } else {
            vis = "";
        }
        element.style.display = vis;
    }
}

/* Ouver la pop up de selection de l'imprimante et de validation de la demande d'impression
 *  Ajouter les traitements intérmédiaires ici.*/
function basic_print() {
    window.print();
}
/* Ouvre la pop up de selectiond 'imprimante et de confirmation de la demande d'impression
 *  + Ouverture de toutes les FAQ de la page avant impression.*/
function faq_print() {
		var divAnswer = $$('.faqAnswers');
		var slideArray = new Array();
		divAnswer.each(
			function(item, index) {
				slideArray[index] = new Fx.Slide(item);
			}
		);
		slideArray.each(
			function(item, index) {
				item.slideIn();
			}
		)
		checkDivAnswerOpening();
}


function checkDivAnswerOpening(){
    var divAnswer = $$('.faqAnswers');
    var ok = 'yes';
     divAnswer.each(function(item,index){
           if(item.style.marginTop!='0px'){
            ok = 'no';
           }
     });
    if(ok == 'yes'){
       basic_print();
    }else {
        setTimeout('checkDivAnswerOpening()',500);
    }
}






/* Return a array of node with a given nodeName and ClassName.
 * May not be efficient, cause we look throught the woll document.*/
function getElementByClass(nodeName, className) {
    var nodes = document.getElementsByTagName(nodeName);
    var nodes_to_click = new Array();
    for (var i = 0; i < nodes.length; i++) {
        var node = nodes[i];
        if (node.className == className) {
            nodes_to_click.push(node);
        }
    }
	alert('taille = ' + nodes_to_click.length);
		return nodes_to_click;
}

/*
 *  Utilisation unique sur la page d'aiguillage vers les simulateurs.
 *  Check la valeur des radio bouton et click sur le lien dont l'id est constitué de la somme des valeurs des radio bouton
 * */
function selectLink() {
    var contractRadioGroup = document.getElementsByName('contract');
    var offerRadioGroup = document.getElementsByName('type');
    var contractFieldsSelected = false;
    var offerFieldsSelected = false;
    var selectedLink;

    for (var i = 0; i < contractRadioGroup.length; i++) {
        if (contractRadioGroup[i].checked == true) {
            selectedLink = contractRadioGroup[i].value;
            contractFieldsSelected = true;
        }
    }

    for (var i = 0; i < offerRadioGroup.length; i++) {
        if (offerRadioGroup[i].checked == true) {
            selectedLink = selectedLink + '-' + offerRadioGroup[i].value;
            offerFieldsSelected = true;
        }
    }
    if ((contractFieldsSelected == true) && (offerFieldsSelected == true))
        window.location.href = document.getElementById(selectedLink).href;
}

/* Utilisation unique sur la page de selection de l'annuaire des centres de bilan
* Check la valeur des radio boutons et click sur le lien dont l'id vaut la valeur du radio bouton clické.
* */
function getSelectedRadioButtonValue(radioGroup) {
    var contractRadioGroup      = document.getElementsByName(radioGroup);
    var contractFieldsSelected  = false;
    var selectedValue           = -1 ;    // ERROR CASE, SHOULD NEVER RETURN -1

    for (var i = 0; i < contractRadioGroup.length; i++) {
        if (contractRadioGroup[i].checked == true) {
          selectedValue = contractRadioGroup[i].value;
        }
    }
     return selectedValue;
}
 /**/
function selectAnnuaireLink(selectedRadioGroupName) {
    var annuaireID = getSelectedRadioButtonValue(selectedRadioGroupName)
    var annuaireLink = document.getElementById('annuaire'+annuaireID);
    if(annuaireLink != null) {
         window.location.href = annuaireLink.href;
    }


}

/* Met à checked le radio bouton dont l'id est donnée en paramètre
* @param string representant l'id du radio button à traiter
* */
function selectRadioButton(elementId) {
        var radioButton = document.getElementById(elementId);
        if(radioButton.checked != null) {
            radioButton.checked = true;
        }
    }



/* *************** AFFICHAGE D'UNE ICONE EN FONCTION DE LA VALEURE DE L'ATTRIBUT HREF DU LIEN DONNR EN PARAMETRE  ************/

/*
 seeking_links : Tableau des liens dont on doit afficher l'extension
 */
function displayExtension(_container_id) {
    var container           = document.getElementById(_container_id);
    if(container == null)
        return;

    var links = getLinks(_container_id);
    // Go throuth the list of link to display extension

    for(var i=0;i<links.length;i++) {
        var html_link = links[i];
         addExtensionImage(html_link);
    }
}

/* Ajoute une balise img en fonction du type de dmLink */
function addExtensionImage(_link) {

    if(_link.href == null) { return; }
    var IMAGE_FORM_ID   = 'dmImageExtension';
    var media_extension = getFileTypeFromHref(_link.href);
    var new_balise      = new Object;
    var container       = dmLink_getContainer(_link);
    var models          = getImageModels();


    if (container != null && media_extension != null && models != null ) {
        if (models[media_extension] == null) {  // DEBUG_alert('extension non trouvé : '+media_extension);
            if(models['other'] == null) {
            }else{
              new_balise      = models['other'].cloneNode(false);
              new_balise.id   = IMAGE_FORM_ID + getMediaId(_link);
              container.insertBefore(new_balise, _link);
            }
        } else {
            new_balise      = models[media_extension].cloneNode(false);
            new_balise.id   = IMAGE_FORM_ID + getMediaId(_link);
            container.insertBefore(new_balise, _link);
        }
    }
}

/* Met à jour la liste des liens à traiter*/
function getLinks(_container_id) {
    var LINK_ID_TYPE        = 'dmLink_';
    var container           = document.getElementById(_container_id);
    var html_links          = container.getElementsByTagName('a');
    var seeking_links       = new Array ;

    // Go throuth the html links array and select link to process.
    // DEBUG|alert(html_links.length);

//    for (var i in html_links) {
    for(var i=0;i<html_links.length;i++)  {
        var html_link = html_links[i];
        var id_value = html_link.id;
        var expression = new RegExp(LINK_ID_TYPE, "g");

        if(id_value == null) {                          // DEBUG_alert('getLinks id_value == null' )
        } else {
           if (expression.test(id_value) == false) {      //   alert( 'no____' + html_link.id);
            } else {                                      //   alert( 'yes___' + html_link.id);
                seeking_links.push(html_link);
            }
        }

    }
    return seeking_links;
}

/* Extract the file extension from the href   */
/* Return the string if founded, null even    */
function getFileTypeFromHref(_href) {
    var SEPARATOR = '.';
    var separator_index;
    var file_type;
    var href_length;

    if(_href.length == null) {
      return null;
    }
    href_length = _href.length;
    separator_index = _href.lastIndexOf(SEPARATOR);
    if (separator_index != -1) {
        file_type = _href.substring(separator_index + 1, href_length);
        return file_type;
    } else {// DEBUG   alert("type de fichier inconnu");
    }
}

/* Renvoi un tableau associatif des images disponibles pour les extensions*/
function getImageModels() {
    var MODEL_CONTAINER_FORM_ID = 'dmExtensionImage';
    var MODEL_FORM_ID           = 'dmExtension_';

    var model_container = document.getElementById(MODEL_CONTAINER_FORM_ID);
    var models = new Array();
    var img_Nodes;

    if (model_container == null) {    // DEBUG alert('aucun model d'image');
    } else {
        img_Nodes = model_container.getElementsByTagName('img');
        if(img_Nodes.length != null) {
            for (var i = 0; i < img_Nodes.length; i++) {
                var imgNode = img_Nodes[i];
                if (!isdmModel(imgNode)) {
                } else {
                    var dmModel_ExtensionName = dmModel_getExtensionName(imgNode);
                    models[dmModel_ExtensionName] = imgNode;
                }
            }
        }
        if (models != null) {
            return models;
        }
    }
}

/*
 HELPER
 Return the container of a given delia media link.
 @param Node Link
 */
function dmLink_getContainer(_link) {
    var CONTAINER_FORM_ID = 'dmlinkContainer';
    var media_id = getMediaId(_link);
    var container = document.getElementById(CONTAINER_FORM_ID + media_id);
    return     container;
}
/*
 HELPER
 return the media id from a given media link.
 @param Node Link
 */
function getMediaId(_link) {
    var LINK_FORM_ID = 'dmLink_';
    var link_id = _link.id;
    var media_id = link_id.slice(LINK_FORM_ID.length, link_id.length);
    return media_id;
}

/*HELPER
 * Return the extension name of the given dm model
 * */
function dmModel_getExtensionName(_model) {
    var MODEL_FORM_ID = 'dmExtension_';
    var model_id = _model.id;
    var model_extension_name = model_id.slice(MODEL_FORM_ID.length, model_id.length);

    if (model_extension_name != null) {
        return  model_extension_name;
    }
}
/*
 * HELPER
 * Return true if the given img node is a dm model
 * */
function isdmModel(_node) {
    var MODEL_FORM_ID = 'dmExtension_';
    var expression = new RegExp(MODEL_FORM_ID, "g");
    var id_value = _node.id;

    if (expression.test(id_value) == false) {
        return false;
    } else {
        return true;
    }
}

/* L'email est prefixé et suffixé avec deux graines, afin de réduire les risques d'exposition de l'addresse mail.
 Cette fonction permet de netoyer l'adresse mail des graines utilisées, afin de disposer d'une adresse utilisable.
 @param firstSeed string utilisé pour prefixer le mail
 @param lastSeed  string utilisé pour suffixer le mail
 @param selectedLink lien mailto sur lequel on click.
 *
 *
 * Note: il faut faire attention au innerHtml du lien puisque dans
 *       certains, il est egalement modifie lorsqu'on change le href
 *
 */
function decryptMail(selectedLink, firstSeed, lastSeed) {
    var MAILTO_PATERN = "mailto:"
    var linkHref = selectedLink.href;
		var innerBody = selectedLink.innerHTML;
		selectedLink.onclick = "";
    if (selectedLink != null && (firstSeed.length > 0) && (lastSeed.length > 0)) {
        linkHref = linkHref.slice(MAILTO_PATERN.length + firstSeed.length, linkHref.length - lastSeed.length);
        selectedLink.href = MAILTO_PATERN + linkHref;
			selectedLink.innerHTML = innerBody;
		}
	selectedLink.click();
}


// Changement de taille du texte
function downSizeContent() {
	var zoom = document.getElementById("zoom");
	if(zoom != null) {
		var zoomLevel = zoom.className;
		var newLevel = "zoom_0";
		if(zoomLevel != null) {
			var lvl = parseInt(zoomLevel.substring(zoomLevel.length - 1, zoomLevel.length));
			if(lvl > 0) {
				lvl = lvl - 1;
			}
			newLevel = "zoom_" + lvl;
		}
		zoom.className = newLevel;
	}

}

function upSizeContent() {
	var zoom = document.getElementById("zoom");
	if(zoom != null) {
		var zoomLevel = zoom.className;
		var newLevel = "zoom_0";
		if(zoomLevel != null) {
			var lvl = parseInt(zoomLevel.substring(zoomLevel.length - 1, zoomLevel.length));
			if(lvl < 3) {
				lvl = lvl + 1;
			}
			newLevel = "zoom_" + lvl;
		}
		zoom.className = newLevel;
	}
}


/*
*  Parametre la class de la node donné avec _NewclassName
* @ id de la node
* @ string de la nouvelle classe
* */
function setClass(_nodeId,_NewclassName){
    var node = document.getElementById(_nodeId);
    if(node) {
        node.className = _NewclassName;
    }
}
