function pop_image(id, largeur, hauteur, format, lang)
{
    var url  = 'pop_image.php?id=' + id + '&format=' + format + '&lang=' + lang;
    largeur += 20;
    hauteur += 20;
    Zoom = window.open(url, 'zoom', 'width=' + largeur + ',height=' + hauteur + ',directories=no,location=no,menubar=no,personalbar=no,resizable=yes,status=no,toolbar=no');
    if (Zoom.outerWidth) {
        var largeur_bord = Zoom.outerWidth - largeur;
        var hauteur_bord = Zoom.outerHeight - hauteur;
    } else {
        var largeur_bord = 10;
        var hauteur_bord = 30;
    }
    largeur += largeur_bord;
    hauteur += hauteur_bord;
    Zoom.resizeTo(largeur, hauteur);
    Zoom.focus();
    return true;
}

// Précharge une liste d'images, en vue d'effets de rollover par ex.
// Paramêtres :
//   Une liste d'URIs d'images séparés par des virgules
function preloadImages()
{
    var args = preloadImages.arguments;
    var imgs = new Array();
    for (var i=0; i<args.length; i++) {
        imgs[i] = new Image();
        imgs[i].src = args[i];
    }
    return true;
}

// Envoie une alerte si le formulaire est mal rempli
// Valide le formulaire sinon.
// Paramêtres :
//   aForm : le formulaire
//   aMessage : le message d'alerte
function validateForm(aForm, aMessage)
{
    var valid = true;
    var i     = 0;
    while (i < aForm.length) {
        // on ne vérifie que les champs 'text' et 'password'
        if ((aForm.elements[i].type == 'text') || (aForm.elements[i].type == 'password')) {
            if (aForm.elements[i].value.length == 0) {
                window.alert(aMessage);
                valid = false;
                break;
            }
        }
        i++;
    }
    if (valid) {
        aForm.submit();
    }
    return valid;
}

// Effet de rollover
// Paramêtres :
//   oldImage : l'image à changer (type Image)
//   newImage : le chemin de l'image de remplacement (type URI)
function swapImage(oldImage, newImage)
{
    oldImage.src = newImage;
    return true;
}
