/*
'---
'--- SvFonctions.js - Librairie de fonctions utiles en JavaScript
'---
'--- Par Francois Cusson-Lafrenaye, ing.
'---     Seconde Vision [www.sv.qc.ca]
'---
'--- REVISIONS
'--- 2006/05/04, Fcl-	Création à partir de diverse sources
'--- 2006/06/08, Fcl-	Ajout de DoImprimer()
'---
*/

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * Trim() - Retourne une chaine sans espaces avant ni après
 *
 * Paramètres :
 *   iStr - La chaine à trimmer (type: String)
 *
 * Valeur de retour :
 *   La chaine trimmée (type: String)
 */
function Trim(iStr)
{
    if (iStr == null)
        return "";
    else
        return iStr.replace(/(^\s+)|(\s+$)/g,"");
}

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * GetReference() - Retourne une référence à un objet donné
 *
 * Paramètres :
 *   iId - Le ID (ou le NAME) de l'objet à rechercher (type: String)
 *
 * Valeur de retour :
 *   Une référence à l'objet recherché ou null s'il n'est par trouvé.
 */
function GetReference(iId)
{
	if (document.layers)
        return document.layers[iId];
	else if (document.all && !document.getElementById)
        return document.all[iId];
	else if (document.getElementById)
        return document.getElementById(iId);
    else
	    return null;
}


/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * OuvrePopup() - Tente d'ouvrir une fenêtre en pop-up et d'y apporter
 *                le focus.
 *
 * Paramètres :
 *   iUrl           - L'URL à ouvrir (type: String)
 *   iNomFenetre    - Le nom à donner à la fenêtre (type: String)
 *   iFormat        - Configuration du format de la fenêtre (type: String)
 *   iMessageErreur - Message d'erreur à afficher si l'ouverture est bloquée;
 *                    si vide alors un message d'erreur par défaut est utilisé
 *                    (type: String)
 *
 * Exemple de configuration du format :
 *     var Format = "width=500"
 *         + ",height=500"
 *         + ",top=5"
 *         + ",left=5"
 *		   + ",menubar=no"
 *		   + ",toolbar=no"
 *		   + ",addressbar=no"
 *		   + ",status=yes"
 *		   + ",resizable=yes"
 *		   + ",scrollbars=yes";
 *
 * Valeur de retour :
 *   Une référence à la fenêtre créée ou null en cas d'erreur.
 */
function OuvrePopup(iUrl, iNomFenetre, iFormat, iMessageErreur)
{
    // On tente d'ouvrir la fenêtre
    var oWin = window.open(iUrl, iNomFenetre, iFormat);

    // Si la création du pop-up est impossible (pop-up blocker ou autre), on
    // affiche le message d'erreur; sinon on y déplace le focus
    if (!oWin)
    {
        // Message par défaut ou message personnalisé
        if (iMessageErreur == "")
            alert("Ce site utilise des pop-up pour afficher cette fonctionnalité mais votre navigateur semble les bloquer. Veuillez SVP autoriser l'affichage des pop-up pour ce site.");
        else
            alert(iMessageErreur);

        return null;
    }
    else
    {
        oWin.focus();
        return oWin;
    }
}


/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * DoImprimer() - Tente d'imprimer la page courante ou affiche un message
 *                d'erreur si ce n'est pas supporté
 *
 * Paramètres :
 *   iLangue - "fr" ou "en"
 */
function DoImprimer(iLangue)
{
	if (window.print)
	{
		window.print();
	}
    else
    {
        if (iLangue == "en")
            alert("This shortcut is not offered by your browser. Please use Ctrl-P, Apple-P, the menu or the buttons of your browser to print this page.");
        else
            alert("Ce raccourci n'est pas supportée par votre navigateur. Veuillez utiliser Ctrl-P, Pomme-P, le menu ou les boutons de votre navigateur pour imprimer cette page.");
    }
}
