Fenêtres alert, confirm et prompt 100% SVG

Nouvelle version compatible avec Firefox 1.5, Opera 9 et Batik 1.6

Objets SVG et script sont séparés
Le script est chargé au démarrage 
Les objets SVG sont chargés à la demande et déchargés après utilisation.

Vous pouvez créer votre propre design pour les fenêtres et le sauver dans un fichier SVG ou SVGZ.

Voir un exemple   

Dans votre SVG, Pour pouvoir utiliser ces fenêtres vous devez
1) charger les scripts avec 
    <script xlink:href="js/alert.js"/>    gestion des fenêtres
    <script xlink:href="js/opera.js"/>    émulation de getURL() et parseXML()
    <script xlink:href="js/tools.js"/>    déplacement des fenêtres
2) réserver à la fin du SVG une place pour les objets avec
    <g id="messages" transform="translate(100,50)">
    </g> 
    par exemple 
3) mettre dans un groupe <defs> les gradients utilisés pour les boutons
4) appeler la fenêtre avec 
add_alert("svg/alert.svg","messages","La largeur du rectangle\n" + large.toString() + "\n ");
dans l'ordre: fichier SVG des objets, id du groupe où insérer les objets, chaîne pour le texte 
( les lignes sont séparées par \n )
ou
add_confirm("svg/confirm.svg","messages","Changer la couleur color\ndu rectangle\nen vert",num);
Ici, un paramètre supplémentaire un nombre pour différencier les appels dans un même SVG
ou
add_prompt("svg/prompt.svg","messages","Entrer une couleur\npour le rectangle\ncomme red ou #CCCC00",num);

5) créer les fonctions utilisant le résultat de vos fenêtres
Un exemple:
function messages_use_confirm(result,num_w)
{
    if (!result)
        return
    switch(num_w)
    {
        case 0:
            obj=svgdoc.getElementById("rect");
            obj.setAttribute("fill","green");
            break;
        case 1:
            obj=svgdoc.getElementById("rect2");
            obj.setAttribute("width","200");
            break;
    }
}

function messages_use_prompt(result,data,num_w)
{
    if (!result)
        return
    switch(num_w)
    {
        case 0:
                obj=svgdoc.getElementById("rect3");
                obj.setAttribute("fill",data);
                break;
        case 1:
                obj=svgdoc.getElementById("rect4");
                obj.setAttribute("fill",data);
                break;
    }
}

Contraintes

svgdoc est le nom de SVGDocument 
nom du groupe + "_use_confirm" ou "_use_prompt"  le nom des fonctions
Cette fonction est appelée quand vous fermez la fenêtre avec onclick="close_confirm(true)".
Les fonctions alert_tape, confirm_tape et prompt_tape permettent l'utilisation des touches Enter et Escape pour fermer la fenêtre et entrer du texte dans la fenêtre prompt ( tout caractère, Backspace, Supprime et les flèches horizontales ).
Trois lignes de texte avec "invite0", "invite1", "invite2" comme id sont utilisables pour les messages
Pour la fenêtre prompt, la chaîne entrée a pour id "prompt_result".