/*
 * Fichier Javascript bibliotheque
 *
 * Regroupe divers fonctions Javascript non spécifique.
 *
 * Ce fichier est systèmatiquement appelé pour l'application admin, 
 * il est donc conseillé de n'y mettre que les fonctions les plus utilisés.  
 */


/**
 * Méthode qui demande de confirmer une suppression
 *
 * @return boolean
 */
function confirmerSupprimer() {
	return confirm("Etes-vous sur de vouloir supprimer cet élement ?");
}

/**
 * Méthode qui demande de confirmer une duplication
 *
 * @return boolean
 */
function confirmerDuplication() {
	return confirm("Etes-vous sur de vouloir dupliquer cet élement ?");
}

/**
 * Méthode qui Masque ou Affiche un composant en fonction de son id
 *
 * @param int idComposant
 */
function inverseVisibilite( idComposant ) {
	// on récupère le composant
	composant = document.getElementById( idComposant );

	if ( composant.style.display == "none" ) {
		composant.style.display = "";
	} else {
		composant.style.display = "none";
	}
}

/**
 * Méthode qui active ou désactive un composant en fonction de son id
 *
 * @param int idComposant
 */
function inverseModifiable( idComposant ) {
	// on récupére le composant
	composant = document.getElementById( idComposant );
	
	if ( composant.disabled == true ) {
		composant.disabled = false;
	} else {
		composant.disabled = true;
	}
}

/**
 * modifierNbReponsesParPage
 * Cette fonction vérifie que tous les champs input et textarea d'un formulaire soit renseigné
 *
 * @param idFormulaire
 *
 * @return boolean
 */
function modifierNbReponsesParPage() {
	// on récupère le nombre de réponse par page
	liste = document.getElementById("nb_reponses");
	document.form_recherche.nb_reponse_par_page.value = liste.options[ liste.selectedIndex ].value;
	
	// on affecte la page observé a la première 
	document.form_recherche.page.value = 1; 
	
	// on rafraichit la page
	document.form_recherche.submit();
}

/**
 * Méthode qui affiche ou masque la div défini
 *
 * @param idDiv l'id de la div
 * @param idIcone l'id de l'icone
 */
function afficher( idDiv, idIcone ) {
	// on récupère la form
	div = document.getElementById( idDiv );
	icone = document.getElementById( idIcone );
	
	if ( div.style.display == "none" ) {
		div.style.display = "";
		icone.src = getRelativeUrlRoot() + "/images/admin/moins.gif";
	} else {
		div.style.display = "none";
		icone.src = getRelativeUrlRoot() + "/images/admin/plus.gif";
	}
}

/**
 * isValide
 * Cette fonction vérifies tous les champs d'un formulaire
 *
 * @param idFormulaire
 *
 * @return boolean
 */
function isValide(idFormulaire) {
	var messageErreur = "Vous n'avez pas rempli tous les champs obligatoire !"

	// on récupère la form
	form = document.getElementById( idFormulaire );
	
	// on récupère les champs input
	var inputs = form.getElementsByTagName("input");
	
	// on vérifie que les "inputs" de type "text" sont bien remplies
	for (var i = 0; i < inputs.length; i++) {
		if (inputs[i].type == "text" && inputs[i].value == "" && 
				inputs[i].name != "prix_conseille" && inputs[i].name != "code" && inputs[i].name != "texte_flash_fr") {
			alert( messageErreur );
			return false;
		}
	}

	// on récupère les champs textarea
	var textareas = form.getElementsByTagName("textarea");
	
	// on vérifie que les "textarea" sont bien remplies
	for (var i = 0; i < textareas.length; i++) {
		if (textareas[i].value == "" || textareas[i].value == "<br>") {
			alert( messageErreur );
			return false;
		}
	}

	// le formulaire est valide
	return true;
}

/**
 * Fonction qui renvoie la valeur du radio sélectionné
 *
 * @param objRadio objet radio en html
 *
 * @return string
 */
function getRadionValue( objRadio ) {
	if( !objRadio ) {
		return "";
	}
	var radioLength = objRadio.length;
	if ( radioLength == undefined ) {
		if ( objRadio.checked ) {
			return objRadio.value;
		} else {
			return "";
		}
	} 
	for( var i = 0; i < radioLength; i++ ) {
		if( objRadio[i].checked ) {
			return objRadio[i].value;
		}
	}
	return "";
}

/**
 * Fonction qui renvoie la date convertie pour la mettre dans l'url donc sans les slash
 *
 * @param string date
 *
 * @return string
 */
function convertirDateUrl( date ) {
	return date.replace("/", "-").replace("/", "-");
}

/**
 * Fonction qui renvoie la date convertie en anglais
 * "31/12/2008" -> "2008-12-31" 
 *
 * @param string date
 *
 * @return string
 */
function convertirDateFrEn( date ) {
	// on récupère le jour
	dateFormate = date.substring( 0, date.indexOf("/") );
	date = date.substring( date.indexOf("/") + 1 );
	// on récupère le mois
	dateFormate = date.substring( 0, date.indexOf("/") ) + "-" + dateFormate;
	date = date.substring( date.indexOf("/") + 1 );
	// on récupère l'année
	dateFormate = date.substring( 0 ) + "-" + dateFormate;
	return dateFormate;
}


