/**
  librairie contenant la logique de création
  d'affichage, de manipulation etc ...
  des boites, menus, images, pages diverses
  les données étant sur le serveur et accessibles par AJAX
*/

var table_fenetre = new Array();
table_fenetre[0] = 'agenda';
table_fenetre[1] = 'logo';
table_fenetre[2] = 'horloge';
table_fenetre[3] = 'affiche';
var essai = null;

var cadre_affichage = 'cadre';
var table_punaise = new Array();
var aide = null;
var delai_montrer_aide = null;
var delai_cacher_aide = null;
var cadre_aide = null;
var aide_punaise_off = 'En cliquant sur ce bouton, vous allez punaiser la fenêtre à cet emplacement.<br>Elle ne peut alors plus être ni déplacée ni fermée.<br>';
var aide_punaise_on = 'Pour pouvoir fermer et/ou déplacer à nouveau cette fenêtre, il faut la dépunaiser en cliquant sur ce bouton !';
var aide_fermer_off = 'Cette fenêtre ne peut pas être fermée tant qu\'elle est punaisée !';
var aide_centrer_on = 'Ce bouton sert à centrer la fenêtre dans l\'espace visible de votre navigateur.';
var aide_centrer_off = 'Cette fenêtre ne peut pas être recentrée tant qu\'elle est punaisée !';
var aide_onglet_on = 'Ce bouton va cacher la fenêtre dans la barre des onglets';
var aide_onglet_off = 'Cette fenêtre ne peut pas être cachée tant qu\'elle est punaisée !';
var long_ecran = null;
var larg_ecran = null;
var z_fenetre = 1000;
var table_z_fenetre = new Array();
var reg = new RegExp("(px)", "g");

var accepte_cookies = ( navigator.cookieEnabled ) ? true : false ;

function WSien(nom_fenetre,visible) { 
  visible = visible || 'non';
  if (table_fenetre.indexOf(nom_fenetre)<0) {
    essai = new Win_Sien(nom_fenetre,visible);  
    window['ws_'+nom_fenetre] = essai;
  	table_fenetre.push($(essai).id);
  } 
  else {
  	
  }

  return essai;
};

var Win_Sien = Class.create( {
  initialize: function(nom_fenetre,visible) {
    this.id = nom_fenetre;
    this.top = 'c';
    this.left = 'c';
    this.longueur = 200;
    this.largeur = 150;
    this.visible = visible;
    this.onglet = 0;
    this.zindex = 1000;
    },
  ecrire_top : function(new_top) { this.top = new_top; },
  ecrire_left : function(new_left) { this.left = new_left; },
  ecrire_longueur : function(new_longueur) { this.longueur = new_longueur; },
  ecrire_largeur : function(new_largeur) { this.largeur = new_largeur; },
  lire_id : function() { return this.id; },
  lire_top : function() { return this.top; },
  lire_left : function() { return this.left; },
  lire_longueur : function() { return this.longueur; },
  lire_largeur : function() { return this.largeur ; },
  lire_visible : function() { return this.visible ; },
  lire_onglet : function() { return this.onglet ; },
  lire_zindex : function() { return this.zindex ; },
  
  montrer : function() { 
    this.visible = 'oui';  
    
    return this;
    
  }
  
} );

function tester_si_existe(element) {
  return Try.these(
    function() { return $(element).id; },
    function() { return $(element); }
     ) || false;
}
function montrer_un_objet(nom_de_objet) {
  if ( tester_si_existe(nom_de_objet) ) { return $(nom_de_objet).show(); }
  else return false;
}
function cacher_un_objet(nom_de_objet) {
  if ( tester_si_existe(nom_de_objet) ) { return $(nom_de_objet).hide(); }
  else return false;
}
function cursor_move(nom) {
  if ( tester_si_existe(nom) ) { return $(nom).setStyle( { cursor:'move' } ); }
  else return false;
}
function cursor_pointer(nom) {
  if ( tester_si_existe(nom) ) { return $(nom).setStyle( { cursor:'pointer' } ); }
  else return false;
}
function cursor_crosshair(nom) {
  if ( tester_si_existe(nom) ) { return $(nom).setStyle( { cursor:'crosshair' } ); }
  else return false;
}
function couleur_fond(nom,couleur) {
  if ( tester_si_existe(nom) ) { 
    if ( couleur == '' ) { couleur = 'transparent'; }
    return $(nom).setStyle( { backgroundColor: couleur } ); 
  }
  else return false;
}
function bg_img(nom,image) {
  if ( tester_si_existe(nom) ) { return $(nom).setStyle( { backgroundImage:'url("'+image+'")', backgroundRepeat: 'repeat' } ); }
  else return false;
}
function creer_un_div(nom,longueur,largeur,haut,gauche,mettre_dans) {
  if ( ! tester_si_existe(nom) ) { 
    long_ecran = document.body.clientWidth;
    larg_ecran = document.body.clientHeight;
    longueur = longueur || 250;
    largeur = largeur || 200;
    haut = haut || 'c';
    gauche = gauche || 'c';
    mettre_dans = mettre_dans || '?';
    
    if ( haut == 'n' ) { haut = '0'; }
    if ( haut == 'c' ) { haut =  Math.floor( ( larg_ecran - largeur ) / 2 ); }
    if ( haut == 's' ) { haut = larg_ecran - largeur; }
    
    if ( gauche == 'o') { gauche = '0'; }
    if ( gauche == 'c' ) { gauche = Math.floor( ( long_ecran - longueur ) / 2 ); }
    if ( gauche == 'e' ) { gauche = long_ecran - longueur; }
    
    var style_0 = 'position:absolute; top:'+haut+'px; left:'+gauche+'px; height:'+largeur+'px; width:'+longueur+'px; background-color:blue; display:none;';
    var nom_div = Builder.node( 'div', { id:nom, style: style_0} );  
    nom_div = $(nom_div);
    if ( mettre_dans != '?' ) { $(mettre_dans).insert( { top: nom_div } ); }
  }
  return nom_div;
}
function rendre_mobile(nom_fenetre) {
  if ( tester_si_existe(nom_fenetre) ) { return new Draggable( nom_fenetre, { revert: false , ghosting: true } ); }
  else return false;
}
function rendre_mobile_avec_poignee(nom_fenetre,poignee) {
  if ( tester_si_existe(nom_fenetre) ) { 
    new Draggable( nom_fenetre, { revert: false, handle: poignee , ghosting: false } ); 
    return true;
  }
  else return false;
}
function punaiser_fenetre(nom_fenetre) {
  var poignee = 'poignee_'+ $(nom_fenetre).id;
  var bt_fermer = 'fermer_'+$(nom_fenetre).id;
  var bt_punaise = 'punaise_'+$(nom_fenetre).id;
  var bt_centrer = 'centrer_'+$(nom_fenetre).id;  
  
  if ( table_punaise.indexOf(nom_fenetre) == -1 ) { 
    table_punaise.push(nom_fenetre); 
    
    var trouver = $(nom_fenetre).select('[class="classe_punaise_"]');
    $(trouver).each( function(item) { $(item).removeClassName('classe_punaise_'); } );
    $(trouver).each( function(item) { $(item).addClassName('classe_punaise_on_'); } );
    
    var trouver = $(nom_fenetre).select('[class="classe_fermer_on_"]');
    $(trouver).each( function(item) { $(item).removeClassName('classe_fermer_on_'); } );
    $(trouver).each( function(item) { $(item).addClassName('classe_fermer_off_'); } );
    
    var trouver = $(nom_fenetre).select('[class="classe_centrer_on_"]');
    $(trouver).each( function(item) { $(item).removeClassName('classe_centrer_on_'); } );
    $(trouver).each( function(item) { $(item).addClassName('classe_centrer_off_'); } );
    
    var trouver = $(nom_fenetre).select('[class="classe_onglet_on_"]');
    $(trouver).each( function(item) { $(item).removeClassName('classe_onglet_on_'); } );
    $(trouver).each( function(item) { $(item).addClassName('classe_onglet_off_'); } );
    
    new Draggable( nom_fenetre, { revert: true, handle: poignee , ghosting: true } ); 
    Event.observe(bt_fermer,'mouseover', function() { montrer_aide(bt_fermer,aide_fermer_off); } );
    Event.observe(bt_fermer,'mouseout', function() { cacher_aide(); } );
    Event.observe(bt_punaise,'mouseover', function() { montrer_aide(bt_punaise,aide_punaise_on); } );
    Event.observe(bt_punaise,'mouseout', function() { cacher_aide(); } );
    Event.observe(bt_centrer,'mouseover', function() { montrer_aide(bt_centrer,aide_centrer_off); } );
    Event.observe(bt_centrer,'mouseout', function() { cacher_aide(); } );
  }
  else {
    table_punaise = table_punaise.without(nom_fenetre);
    
    var trouver = $(nom_fenetre).select('[class="classe_punaise_on_"]');
    $(trouver).each( function(item) { $(item).removeClassName('classe_punaise_on_'); } );
    $(trouver).each( function(item) { $(item).addClassName('classe_punaise_'); } );
    
    var trouver = $(nom_fenetre).select('[class="classe_fermer_off_"]');
    $(trouver).each( function(item) { $(item).removeClassName('classe_fermer_off_'); } );
    $(trouver).each( function(item) { $(item).addClassName('classe_fermer_on_'); } );
    
    var trouver = $(nom_fenetre).select('[class="classe_centrer_off_"]');
    $(trouver).each( function(item) { $(item).removeClassName('classe_centrer_off_'); } );
    $(trouver).each( function(item) { $(item).addClassName('classe_centrer_on_'); } );
    
    var trouver = $(nom_fenetre).select('[class="classe_onglet_off_"]');
    $(trouver).each( function(item) { $(item).removeClassName('classe_onglet_off_'); } );
    $(trouver).each( function(item) { $(item).addClassName('classe_onglet_on_'); } );
    
    new Draggable( nom_fenetre, { revert: false, handle: poignee , ghosting: false } ); 
    Event.observe(bt_fermer,'mouseover', function() { montrer_aide(bt_fermer,''); } );
    Event.observe(bt_fermer,'mouseout', function() { cacher_aide(); } );
    Event.observe(bt_punaise,'mouseover', function() { montrer_aide(bt_punaise,aide_punaise_off); } );
    Event.observe(bt_punaise,'mouseout', function() { cacher_aide(); } );
    Event.observe(bt_centrer,'mouseover', function() { montrer_aide(bt_centrer,aide_centrer_on); } );
    Event.observe(bt_centrer,'mouseout', function() { cacher_aide(); } );
  }
  fenetre_au_top( $(nom_fenetre) );
  return nom_fenetre;
}

function lire_cookie(variable) {
  var cookieLen = variable.length;
  var cookieData = document.cookie;
  var allcookieLen = cookieData.length;
  var i = 0;
  var cookieEnd;

  if ( cookieData.include(variable) ) {
    var ob = cookieData.toQueryParams(';');
    var w = 0;
  }
  while( i < allcookieLen ) {
    var j = i + cookieLen;
    if ( cookieData.substring(i,j) == variable ) {
      cookieEnd = cookieData.indexOf(";", j);
      if (cookieEnd == -1) { cookieEnd = cookieData.length; }
      return unescape(cookieData.substring(j+1, cookieEnd))
    }
    i++;
  }
  return "Echec : cookie non cree ?";
}
function lire_dans_cookie(fenetre,variable) {
  if ( document.cookie ) {
    var win_pos = lire_cookie('sien_win_pos');
    var resultat = win_pos.toQueryParams();
    var valeur = '?';
    var propriete = fenetre+variable,
    valeur = $H( resultat ).get(propriete);
    return valeur;
  }
  else return false;
}
function mettre_dans_cookie(fenetre,variable,valeur) {
  if (  document.cookie ) {
    var win_pos = lire_cookie('sien_win_pos');
    var resultat = win_pos.toQueryParams();
  
    var h = $H( resultat ) ;
    h.set(fenetre+variable,valeur);  
  
    var s = h.toQueryString();

    var expire = new Date(); var trois_mois = expire.getTime() + (91*24*60*60*1000) ; expire.setTime( trois_mois );
    document.cookie = 'sien_win_pos='+s+';expires='+ expire.toGMTString();
    return true;
    }
  else return false;
}
function creer_fenetre(nom_fenetre,longueur,largeur,mettre_dans,pos_fenetre) {
// longueur = dimension horizontale
// largeur = dimension verticale

  if ( tester_si_existe(nom_fenetre) ) {
    if ( ! $(nom_fenetre).visible() ) { montrer_fenetre(nom_fenetre); }
    else { fenetre_au_top( $(nom_fenetre) ); $(nom_fenetre).show(); }
    return  nom_fenetre; 
  } 
  
  var cadre_fenetre = 'cadre_'+nom_fenetre;
  var barre_fenetre = 'barre_'+nom_fenetre;
  
  var bt_fermer = 'fermer_'+nom_fenetre;  var classe_fermer = 'classe_fermer_on_';
  
  var bt_punaise = 'punaise_'+nom_fenetre;  var classe_punaise = 'classe_punaise_';
  
  var bt_centrer = 'centrer_'+nom_fenetre;  var classe_centrer = 'classe_centrer_on_';
  
  var bt_onglet = 'onglet_'+nom_fenetre;  var classe_onglet = 'classe_onglet_on_';
  
  var zone_mobile = 'poignee_'+nom_fenetre;  var classe_mobile = 'classe_poignee_';
  
  var titre_fenetre = 'titre_'+nom_fenetre;  var classe_titre = 'classe_titre_';
  
  var bordure_fenetre = 2;        // espace entre le bord de la fenetre et son contenu
  var bordure_cadre = 2;           // espace entre le bord du cadre et son contenu
  var largeur_barre = 10;           // dimension verticale de la barre des boutons
  var espace_barre_cadre =1;   // espace entre la barre (en haut) et le cadre (en bas)
  var espace_bouton = 3;          // espace séparant deux boutons voisins de la barre
  var longueur_bouton = 10;     // dimension verticale et horizontale des boutons (carrés) = largeur barre (normalement)
  var bordure_mobile = 0;          // espace entre le bord de la poignée (mobile) et le bord de la barre
  var top_bouton = '0';             // position verticale de tous les boutons de la barre
  
  var largeur_cadre = largeur+(2*bordure_cadre);
  var largeur_fenetre = largeur_cadre+espace_barre_cadre+largeur_barre+(2*bordure_fenetre);
  var top_barre =  bordure_fenetre;
  var top_cadre = top_barre+largeur_barre+espace_barre_cadre;
  var top_mobile = bordure_mobile;
  var longueur_cadre = longueur+(2*bordure_cadre);
  var longueur_barre = longueur_cadre;
  var longueur_fenetre = longueur_cadre+(2*bordure_fenetre);
  var longueur_mobile = longueur_barre-( (4*longueur_bouton)+(2*bordure_mobile)+(2*espace_bouton) ); // 4 car il y  a 4 boutons (à modifier selon le nombre de boutons)
  var largeur_mobile = largeur_barre-(2*bordure_mobile);
  var top_div = 'c';
  var left_div = 'c';
  
  long_ecran = document.body.clientWidth;
  larg_ecran = document.body.clientHeight;
  pos_fenetre = pos_fenetre || 'cc';
  if ( ( pos_fenetre != '' ) && ( pos_fenetre != 'cc' ) ) {
    top_div = pos_fenetre.substr(0,1);
    left_div = pos_fenetre.substr(1,1);
  }
  if ( top_div == 'n' ) { top_div = 0; }
  if ( top_div == 'c' ) { top_div =  Math.floor( ( larg_ecran - largeur_fenetre ) / 2 ); }
  if ( top_div == 's' ) { top_div = larg_ecran - largeur_fenetre; }
    
  if ( left_div == 'o') { left_div = 0; }
  if ( left_div == 'c' ) { left_div = Math.floor( ( long_ecran - longueur_fenetre ) / 2 ); }
  if ( left_div == 'e' ) { left_div = long_ecran - longueur_fenetre; }

  table_z_fenetre.each( function(nom) { 
    var t = $(nom).getStyle( 'top' ); t = t.replace( reg, '' ); t = parseInt(t);
    var l = $(nom).getStyle('left'); l = l.replace( reg, '' ); l = parseInt(l);    
    if ( ( Math.abs( top_div - t ) < 12 ) && ( Math.abs( left_div - l ) < 12 ) ) {
      top_div = Math.max( top_div , parseInt(t + 14) ) ; 
      left_div = Math.max( left_div , parseInt(l + 14) ) ;
     }
  } );

  var top_cookie = lire_dans_cookie( nom_fenetre, 'top' );
  if (  ! isNaN( top_cookie ) ) { top_div = top_cookie ; } 
  var left_cookie = lire_dans_cookie( nom_fenetre, 'left' );
  if (  ! isNaN( left_cookie ) ) { left_div = left_cookie ; } 

  if ( top_div <= 0 ) { top_div = '0'; }  if ( left_div <= 0 ) { left_div = '0'; }

  mettre_dans = mettre_dans || cadre_affichage;
  nom_fenetre = creer_un_div(nom_fenetre,longueur_fenetre,largeur_fenetre,top_div,left_div,mettre_dans);
  couleur_fond(nom_fenetre,'black');
    
  cadre_fenetre = creer_un_div(cadre_fenetre,longueur_cadre,largeur_cadre,top_cadre,bordure_fenetre,nom_fenetre);
  Event.observe(cadre_fenetre, 'click', function() { fenetre_au_top( $(nom_fenetre) ) } );
  
  barre_fenetre = creer_un_div(barre_fenetre,longueur_barre,largeur_barre,top_barre,bordure_fenetre,nom_fenetre);
  couleur_fond(barre_fenetre,'black');
  
  var top_bt_fermer = top_bouton;
  var left_bt_fermer = longueur_barre-longueur_bouton;
  var bouton_fermer = creer_un_div(bt_fermer,longueur_bouton,longueur_bouton,top_bt_fermer,left_bt_fermer,barre_fenetre);
  $(bouton_fermer).addClassName(classe_fermer);
  Event.observe(bouton_fermer, 'click', function() { fermer_fenetre( $(nom_fenetre) ); } );
  
  var top_bt_punaise =top_bouton;
  var left_bt_punaise = '0';
  var bouton_punaise = creer_un_div(bt_punaise,longueur_bouton,longueur_bouton,top_bt_punaise,left_bt_punaise,barre_fenetre);
  $(bouton_punaise).addClassName(classe_punaise);
  Event.observe(bouton_punaise, 'click', function() { punaiser_fenetre( $(nom_fenetre) ); } );
  Event.observe(bouton_punaise,'mouseover', function() { montrer_aide(bouton_punaise,aide_punaise_off); } );
  Event.observe(bouton_punaise,'mouseout', function() { cacher_aide(); } );
  
  var top_bt_centrer = top_bouton;
  var left_bt_centrer = longueur_bouton+espace_bouton;
  var bouton_centrer = creer_un_div(bt_centrer,longueur_bouton,longueur_bouton,top_bt_centrer,left_bt_centrer,barre_fenetre);
  $(bouton_centrer).addClassName(classe_centrer);
  Event.observe(bouton_centrer, 'click', function() { centrer_fenetre( $(nom_fenetre) ); } );
  Event.observe(bouton_centrer,'mouseover', function() { montrer_aide(bouton_centrer,aide_centrer_on); } );
  Event.observe(bouton_centrer,'mouseout', function() { cacher_aide(); } );
  
  var top_bt_onglet = top_bouton;
  var left_bt_onglet = (longueur_barre-(2*longueur_bouton))-espace_bouton;
  var bouton_onglet = creer_un_div(bt_onglet,longueur_bouton,longueur_bouton,top_bt_onglet,left_bt_onglet,barre_fenetre);
  $(bouton_onglet).addClassName(classe_onglet);
  Event.observe(bouton_onglet, 'click', function() { centrer_fenetre( $(nom_fenetre) ); } );
  Event.observe(bouton_onglet,'mouseover', function() { montrer_aide(bouton_onglet,aide_onglet_on); } );
  Event.observe(bouton_onglet,'mouseout', function() { cacher_aide(); } );
  
  if ( top_mobile == 0 ) { top_mobile = '0'; }
  var left_mobile = (2*longueur_bouton)+espace_bouton+bordure_mobile;
  zone_mobile = creer_un_div(zone_mobile,longueur_mobile,largeur_mobile,top_mobile,left_mobile,barre_fenetre);
  $(zone_mobile).addClassName(classe_mobile);
  rendre_mobile_avec_poignee(nom_fenetre,classe_mobile);
  
  var top_titre = -4;
  var left_titre = '0';
  titre_fenetre = creer_un_div(titre_fenetre,longueur_mobile-2,largeur_mobile+2,top_titre,left_titre,zone_mobile);
  couleur_fond(titre_fenetre,'');
  $(titre_fenetre).addClassName(classe_titre);
  titre_de_la_fenetre( nom_fenetre, $(nom_fenetre).id );
  Event.observe(titre_fenetre, 'click', function() { fenetre_au_top( $(nom_fenetre) ) } );
  
  mettre_dans_cookie( $(nom_fenetre).id,'top',top_div );
  mettre_dans_cookie( $(nom_fenetre).id,'left',left_div );
  montrer_fenetre(nom_fenetre);
  return nom_fenetre;
}
function montrer_fenetre(nom_fenetre) {
  fenetre_au_top( $(nom_fenetre) );
  $(nom_fenetre).descendants().each( function(item) { $(item).show(); } );
  new Effect.Grow( $(nom_fenetre) );
}
function fermer_fenetre(nom_fenetre) {
  if ( table_punaise.indexOf(nom_fenetre) == -1 ) { 
    new Effect.Fold( $(nom_fenetre), { delay: 0.1 , duration: 0.3 } );
    table_punaise = table_punaise.without(nom_fenetre);
    table_z_fenetre = table_z_fenetre.without(nom_fenetre);
    var taille = table_z_fenetre.size();
    if ( table_z_fenetre.size() ) { fenetre_au_top( table_z_fenetre.last() ); }
    }
  else {
    new Effect.Shake( $(nom_fenetre), { delay: 0.1 , duration: 0.3 } );
    fenetre_au_top( $(nom_fenetre) );
  }
}
function creer_bulle_aide() {
  var longueur = 200;
  var largeur = 80;
  var bordure = 4;
  var long_aide = (longueur-(2*bordure));
  var larg_aide = (largeur-(2*bordure));
    aide = creer_un_div('aide',longueur,largeur,150,150,'cadre'); 
    couleur_fond($(aide),'black');
    cadre_aide = creer_un_div('cadre_aide',long_aide,larg_aide,bordure,bordure,'aide'); 
    couleur_fond($(cadre_aide),'silver');
    $(cadre_aide).insert( { top: '<span id="texte_aide">? ? ?</span>' } );
    var long_span = long_aide-8;
    $('texte_aide').setStyle( { widht: long_span+'px' } );
}
function montrer_aide(qui,texte) {
  if ( texte == '' ) {  cacher_aide(); return; }
  long_ecran = document.body.clientWidth;
  larg_ecran = document.body.clientHeight;
  var larg_qui = $(qui).getHeight();
  if ( ! tester_si_existe($('aide') ) ) { creer_bulle_aide(); }
  $('texte_aide').replace( '<span id="texte_aide">'+texte+'</span>' );
  $(aide).descendants().each( function(item) { $(item).show(); } );
  $(aide).clonePosition( $(qui), { setWidth:false, setHeight:false, offsetLeft:-75, offsetTop:10+larg_qui } );
  var x = $(aide).getStyle('left');
  x = x.replace( reg, '' );
  if ( x < 10 ) { $(aide).setStyle( { left: '10px' } ); }
  if ( x > long_ecran-230 ) { $(aide).setStyle( { left: long_ecran-230+'px' } ); }
  var y = $(aide).getStyle('top');
  y = y.replace( reg, '' );
  if ( y > larg_ecran - 110 ) { 
    if ( $(qui).hasClassName('classe_punaise_') || $(qui).hasClassName('classe_punaise_on_') || $(qui).hasClassName('classe_fermer_on_') || $(qui).hasClassName('classe_fermer_off_')  ) {
      var tab = $(qui).ancestors();
      var fenetre = tab[1];
      var y_qui = $(fenetre).getStyle('top');
      y_qui = y_qui.replace( reg, '' );
      $(aide).setStyle( { top: y_qui-110+'px' } ); 
      }
    }
//  $(aide).show( { delay: 2 } );
  delai_montrer_aide = Element.show.delay( 1.5 , $(aide) );
  delai_cacher_aide = Element.hide.delay( 6.1 , $(aide) );
}
function cacher_aide() {
  if ( tester_si_existe($('aide') ) ) {
    window.clearTimeout(delai_montrer_aide);
    window.clearTimeout(delai_cacher_aide);
    $(aide).hide();
  }
}
function fenetre_au_top(nom_fenetre) {
  table_z_fenetre = table_z_fenetre.without(nom_fenetre);
  table_z_fenetre.push(nom_fenetre);
  z_fenetre = 1000;
  table_z_fenetre.each( function(nom) { regler_z_fenetre(nom) } );
  couleur_fond( $(nom_fenetre),'#cc3344' );
  couleur_titre( $(nom_fenetre),'yellow' );
  var top_fenetre = $(nom_fenetre).getStyle('top');
  top_fenetre = top_fenetre.replace( reg, '' );
  mettre_dans_cookie( $(nom_fenetre).id,'top', top_fenetre ); 
  var left_fenetre = $(nom_fenetre).getStyle('left');
  left_fenetre = left_fenetre.replace( reg, '' );
  mettre_dans_cookie( $(nom_fenetre).id,'left', left_fenetre ); 
  return $(nom_fenetre);
}
function regler_z_fenetre(nom_fenetre) {
  $(nom_fenetre).setStyle( { zIndex: z_fenetre, backgroundColor: '#aaaaaa' } );
  couleur_titre( $(nom_fenetre),'#cccccc' );
  
  z_fenetre = z_fenetre + 10;
  return $(nom_fenetre);
}
function centrer_fenetre(nom_fenetre) {
  if ( table_punaise.indexOf(nom_fenetre) == -1 ) { 
    long_ecran = document.body.clientWidth;
    larg_ecran = document.body.clientHeight;
    var longueur = $(nom_fenetre).getStyle( 'width' );
    longueur = longueur.replace( reg, '' );
    var pos_left = Math.floor( ( long_ecran - longueur) / 2  );
    var largeur = $(nom_fenetre).getStyle( 'height' );
    largeur = largeur.replace( reg, '' );
    var pos_top = Math.floor( ( larg_ecran - largeur) / 2  );
    table_punaise = table_punaise.without(nom_fenetre);
    table_z_fenetre = table_z_fenetre.without(nom_fenetre);
    var taille = table_z_fenetre.size();
    new Effect.Move( $(nom_fenetre), { x: pos_left, y: pos_top, mode: 'absolute',  delay: 0.1 , duration: 0.5 } );
    if ( table_z_fenetre.size() ) { fenetre_au_top( table_z_fenetre.last() ); }
    
    }
  else {
    new Effect.Shake( $(nom_fenetre), { delay: 0.1 , duration: 0.3 } );
  }
  fenetre_au_top( $(nom_fenetre) );
  return $(nom_fenetre);
}
function titre_de_la_fenetre(nom_fenetre,titre) {
  var titre_fenetre = 'titre_'+$(nom_fenetre).id;
  $(titre_fenetre).update('*** '+titre+' ***');
}
function couleur_titre(nom_fenetre,couleur) {
  var titre_fenetre = 'titre_'+$(nom_fenetre).id;
  $(titre_fenetre).setStyle( { color: couleur } );
}