/*
 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

 */

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;
}


// 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;
    }

}

/*
 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.

 */
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;
    }

}

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';
    }
}

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';
    }

}


function visibleBox(boxContenuId, boxBottomId) {
    alert('visibleBox');

    var boxContenu = document.getElementById(boxContenuId);
    var boxBottom = document.getElementById(boxBottomId);

    alert(boxContenu.style.display);

    visibleElement(boxContenu);
    visibleElement(boxBottom);
}

function visibleElement(element) {
    if (element.style.display == 'none') {
        displayElement(element);
    }

    if (element.style.display == 'block') {
        hideElement(element);
    }
}

function displayElement(element) {
    element.style.display = 'block';
}

function hideElement(element) {
    element.style.display = 'none';
}


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';
    }
}

/* 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() {
    // ADD the additionnal process here
    basic_print();
}

/* 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.
 */
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();
}




/* *************** 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;
    }
}

// Changement de taille du texte
//function downSizeContent() {
//	var zoom1 = document.getElementById("zoom_1");
//	var zoom2 = document.getElementById("zoom_2");
//	var zoom3 = document.getElementById("zoom_3");
//	if(zoom1 != null) {
//		zoom1.id = "zoom_0";
//	} else if(zoom2 != null) {
//		zoom2.id = "zoom_1";
//	} else if(zoom3 != null) {
//		zoom3.id = "zoom_2";
//	}
//}
//
//function upSizeContent() {
//	var zoom1 = document.getElementById("zoom_1");
//	var zoom2 = document.getElementById("zoom_2");
//	var zoom0 = document.getElementById("zoom_0");
//	if(zoom0 != null) {
//		zoom0.id = "zoom_1";
//	} else if(zoom1 != null) {
//		zoom1.id = "zoom_2";
//	} else if(zoom2 != null) {
//		zoom2.id = "zoom_3";
//	}
//}

// 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;
	}
	/*
	var zoom1 = document.getElementById("zoom_1");
	var zoom2 = document.getElementById("zoom_2");
	var zoom3 = document.getElementById("zoom_3");
	if(zoom1 != null) {
		zoom1.id = "zoom_0";
	} else if(zoom2 != null) {
		zoom2.id = "zoom_1";
	} else if(zoom3 != null) {
		zoom3.id = "zoom_2";
	}
	*/
	/*
	var div = document.getElementById('articleText');
	for(var i=0; i<div.childNodes.length;i++) {
    if (div.childNodes[i].tagName == 'P') {
			if(div.childNodes[i].style.fontSize!='') {
				var temp = parseInt(div.childNodes[i].style.fontSize.substr(0,div.childNodes[i].style.fontSize.length-2))-3;
				if(temp >= 11) {
					div.childNodes[i].style.fontSize = temp+'px';
				}
			}
			else {
				div.childNodes[i].style.fontSize = '11px';
			}
		}
	}
	*/
}

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;
	}
	/*
	var zoom1 = document.getElementById("zoom_1");
	var zoom2 = document.getElementById("zoom_2");
	var zoom0 = document.getElementById("zoom_0");
	if(zoom0 != null) {
		zoom0.id = "zoom_1";
	} else if(zoom1 != null) {
		zoom1.id = "zoom_2";
	} else if(zoom2 != null) {
		zoom2.id = "zoom_3";
	}
	*/
	/*
	var div = document.getElementById('articleText');
	for(var i=0; i<div.childNodes.length;i++) {
    if (div.childNodes[i].tagName == 'P') {
			if(div.childNodes[i].style.fontSize!='') {
				var temp = parseInt(div.childNodes[i].style.fontSize.substr(0,div.childNodes[i].style.fontSize.length-2))+3;
				if(temp < 30) {
					div.childNodes[i].style.fontSize = temp+'px';
				}
			}
			else {
				div.childNodes[i].style.fontSize = '14px';
			}
		}
	}
	*/
}


/*
*  Provoque une évènement clic un lien
*  @param _hrefId Id du lien à clicker
* */
function clickOnTargetHref(_HrefId) {
    var href = document.getElementById(_HrefId);
    if(href) {
        window.location.href = href.href;
    }


}
