/**
 * Resize la première iframe trouvée en fonction de la hauteur de la fenetre du navigateur
 * (evite d'avoir a demander la hauteur du document à afficher dans l'iFrame, ce qui n'est
 * pas autorisé lorsque le document appartient a un domaine different)
 */

// On definit une hauteur minimal d'écran en dessous de laquelle on n'active pas le redimensionnement
// (Les utilsateurs en 1024x768 préfèrent la version statique)
//// premiere valeur testee - var smallScreenMaxHeight = 1020;
var smallScreenMaxHeight = 799;

// La hauteur d'une iframe pour un "petit ecran"
// (720 pixels a l'air pas mal)
var smallScreenFrameHeight = 720;

// La hauteur du bandeau (logo, barre d'onglets, barre de titre, marges iframe, barre ascenseur bas).
// A régler selon le look de l'ENT... et un peu au pif car varie selon les client :-s
//// pas mauvais comme valeur mais on l'a diminué maintenant qu'on interdit l'affichage des barres d'ascenseur horizontal
//// var bandeauheight = 175;
var bandeauheight = 155;

// Hauteur minimale de l'iframe.
// ATTENTION : pour eviter des petits bugs (au moins avec firefox 2.x, ca le fait pas avec firefox3beta5),
// mettre en taille mini au moins la taille d'origine de l'iframe (taille défini dans la publication du canal)
// Pour nous actuellement, 450.
var minFrameHeight = 450; // la hauteur minimale autorisee pour la frame


/** Renvoie vrai si cette iframe ne doit pas etre redimensionnee, false sinon */
function frameNotToResize(anIframe) {

  // cas du fckeditor
  if ( anIframe.id == "msg_body___Frame" ) {
     return true;
  }

  // cas du fckeditor pour le helpdesk
  if ( anIframe.id == "ticketActionForm:actionMessage___Frame" ) {
     return true;
  }

  var source=anIframe.src.toString();

//--SI UN JOUR Y'A DES PB D'ASCENSEURS AVEC LE BV AJAX :
//  //nouveau BV pour U1
//  if ( source.search(/go_bv_ajax/i)!=-1) {
//    return true;
//  }
//----

  //nouveau BV pour U3    
//  if ( source.search('test_co_beta')!=-1) {
//    return true;
//  }

  // cas du helpdesk
  if ( source.search(/helpdesk/i)!=-1) {
    return true;
  }

  return false;
}

/** Resize la 1ere iframe rencontree - sauf si frameNotToResize renvoie vrai */
function resizeFirstIFrame() {

  var iFrames = document.getElementsByTagName("IFRAME");
  var firstIFrame = iFrames[0]; // premier iframe trouve

  // hauteur de la fenetre, pour netscape (window.innerHeight) et IE (document.body.offsetHeight)
  var winh = (typeof window.innerHeight != 'undefined' ? window.innerHeight : document.body.offsetHeight);


  if ( firstIFrame && ! frameNotToResize(firstIFrame) ) {

    if (winh <= smallScreenMaxHeight ) {
//    if (screen.height <= smallScreenMaxHeight ) {
    // document.body.clientHeight marche pas sous windows ) {
    // Note : y'a aussi screen.availHeight qui pourrait servir pour le test...
      // cas d'un "petit ecran". on met une taille fixee
      firstIFrame.style.height = smallScreenFrameHeight;
      // on met les ascenseurs 
      var htmlElement = document.getElementsByTagName('html')[0];
      htmlElement.style.overflow = '';
    }

    else {
      // on vire les ascenseurs 
      var htmlElement = document.getElementsByTagName('html')[0];
      htmlElement.style.overflow = 'hidden';

      // hauteur de la fenetre, pour netscape (window.innerHeight) et IE (document.body.offsetHeight)
//      var winh = (typeof window.innerHeight != 'undefined' ? window.innerHeight : document.body.offsetHeight);

      var h = winh - bandeauheight; //on enleve la hauteur du bandeau.
      //debug: alert("resize au max( " + h + " , " +minFrameHeight+" ) - win_h= "+window.innerHeight);
      if ( h < minFrameHeight ) h = minFrameHeight; // on garde une hauteur minimale
      firstIFrame.style.height = h;
    }
  }
}

if ( window.addEventListener ) {
    window.addEventListener("load", resizeFirstIFrame, false);
// on enleve l'appel lors d'un  resize : bug un peu au moins avec firefox 2
// quand utilisé dans une structure aussi bordel... compliquee que celle d'une page de l'ENT)
   window.addEventListener("resize", resizeFirstIFrame, false);
}
else if ( window.attachEvent ) {
    window.attachEvent("onload", resizeFirstIFrame);
// on enleve l'appel lors d'un  resize : bug un peu au moins avec firefox 2
// (quand utilisé dans une structure aussi bordel... compliquee que celle d'une page de l'ENT)
    window.attachEvent("onresize", resizeFirstIFrame);
}
else {
    window.onload = resizeFirstIFrame;
// on enleve l'appel lors d'un  resize : bug un peu au moins avec firefox 2
// (quand utilisé dans une structure aussi bordel... compliquee que celle d'une page de l'ENT)
    window.onresize = resizeFirstIFrame;
}

