
/**
 * Donne l'index de la ligne selectionnée d'un tableau
 *
 * @param   string  identifiant du tableau
 * @return  integer indice de la ligne sélectionnée du tableau
 */
function getIndexSelectedLine(idTableau){
	i      = 1;
	while (i < document.getElementById(idTableau).rows.length) {
		if ( ! findClass(document.getElementById(id), 'rowSelected')){
			return i;
		}
		i++;
	}
	return -1;
}


/**
 * Donne l'id de la ligne selectionnée d'un tableau
 *
 * @param   string  identifiant du tableau
 * @return  string  identifiant de la ligne sélectionnée du tableau
 */
function getIdSelectedLine(idTableau){
	iLigneSelectionne = getIndexSelectedLine(idTableau);
	if (iLigneSelectionne != -1) {
		return document.getElementById(idTableau).rows[iLigneSelectionne].id;
	}
	return '-1';
}


/**
 * Récupère la partie numérique de la chaine passée en paramètre.
 * Ex: si "row16" est passé en paramètre, l'entier "16" est retourné
 *
 * @param   string  str
 * @return  string
 */
function getLineNumber(str) {
    MyReg = /(\d+)/;

    if (str.match(MyReg)) {
        aRes = MyReg.exec(str);
        return aRes[0];
    }

    return false;
}



/**
 * Donne l'index de l'element selectionne d'une combo
 *
 * @param   string  identifiant de la liste
 * @return          index de l'element selectionne de la liste
 */
function getIndexOptionSelected(idSelect){

	for (i = 0 ; i < document.getElementById(idSelect).length ; i++){
		if (document.getElementById(idSelect).options[i].selected) {
			return i;
		}
	}
	return -1;
}



/**
 * Recherche la ligne selectionner dans une combo
 *
 * @param   objet  la combo
 * @return         l'element selectionne de la liste
 */
function getOptionSelected(objCombo){
    var optionNodes = objCombo.childNodes;

    for (i=0 ; i < optionNodes.length ; i++){
        if (optionNodes[i].selected == true){
            return optionNodes[i];
        }
    }
}



/**
 * Donne la valeur du noeud selectionné d'une liste de valeur
 *
 * @param   string  identifiant de la liste
 * @return          valeur de l'element selectionne de la liste
 */
function getValueOptionSelected(idSelect){
	var i = getIndexOptionSelected(idSelect);

	if (i != -1){
		return document.getElementById(idSelect).options[i].value;
	}
	return -1;
}



/**
 * Donne la valeur du noeud selectionné d'une liste de valeur
 *
 * @param   string  identifiant de la liste
 * @return          text de l'element selectionne de la liste
 */
function getTextOptionSelected(idSelect){
	var i = getIndexOptionSelected(idSelect);

	if (i != -1){
		//return document.getElementById(idSelect).options[i].text;
		return document.getElementById(idSelect).options[i].innerHTML;
	}
	return -1;
}



/**
 * Recherche la ligne qui correspond à la valeur passée en paramètre
 *
 * @param   objet   la combo
 * @param   strign  Valeur recherchée.
 * @return          l'element selectionne de la liste
 */
function getOptionFromValue(objCombo, value){

	var optionNodes = objCombo.childNodes;

    for (i = 0 ; i < optionNodes.length ; i++){
        if (optionNodes[i].value == value){
            return optionNodes[i];
        }
    }
}



/**
 * Fonction cochant ou décochant un ensemble de case à cocher.
 *
 * @param   string   idConteneur    identifiant du conteneur des cases à cocher
 * @param   boolean  stateChecked   coché ou décoché
 * @return  void
 */
function allCheckUncheck(idConteneur, stateChecked){

    myConteneur = window.document.getElementById(idConteneur);
    myInput     = myConteneur.getElementsByTagName('INPUT');

    for (i = 0 ; i < myInput.length ; i++)
    {
    	//On vérifie que la coche est accessible
    	if (myInput[i].style.display != 'none')
	        myInput[i].checked = stateChecked;
    }
}



/**
 * Fonction remplissant un menu déroulant <select> avec des minutes de minuteStart à minuteEnd avec un interval
 *  Ex pour 720 => 12H00
 *
 * @param   objet      objSelect  l'objet select
 * @param   interger   minStart   1ere minute
 * @param   integer    minEnd     derniere minute
 * @param   integer    interval   interval de minute en minute, ...
 * @return  array                 tableau des minute
 */
function getMinuteToSelectObject(objSelect, minStart, minEnd, interval){

    //Parcours sera l'identifiant donc le nombre de minutes
    var parcours = Number(minStart);

    objSelect.options.length = 0;

    //On boucle tant que les minutes parcourues sont plus petites que la fin
    while (parcours <= minEnd){

        objSelect.options[objSelect.options.length] = new Option(minuteToMinuteHeure2(parcours), parcours);

        //On incrémente de l'intervalle notre fonction
        parcours = Number(parcours) + Number(interval);
    }
}

