/*******************************************************************************
Livre interactif
*******************************************************************************/

function Livre()
{
  var livre = new Object();

/*******************************************************************************
Debut du livre ouverture le première page
*******************************************************************************/
  livre.Ouvrir = function(livre,nom_div,nopage)
  {
    this.nom_div = nom_div;
    this.livre   = livre;
    this.Chargement();
    this.Page(nopage);  // ouvre la première page
  };

/*******************************************************************************
Chargement des images
*******************************************************************************/
  livre.Chargement = function()
  {
    for (var i = 0;i < this.livre.pages.length;i++) {
      var img = new Image();
      img.src = this.livre.pages[i].image;
      this.livre.pages[i].img = img;
    }
  }

/*******************************************************************************
Ouvre une page
*******************************************************************************/
  livre.Page = function(nopage)
  {
    var page = this.getPage(nopage);

    if (page.noparent) {
      var pageparent = this.getPage(page.noparent);
      pageparent.estbloque = true;
    }

    this.Affiche(page);
  }

/*******************************************************************************
Reponse
*******************************************************************************/
  livre.Reponse = function(nopage,reponse,typereponse)
  {
    var page = this.getPage(nopage);
    if (typereponse == 1) {
      var input = getElement('reponse_'+reponse);
      reponse = input.value;
    }
    if (page.reponse == reponse) {
      //page.estbloque = true;
      page = this.getPage(page.pagesuivante);
      this.Affiche(page);
    }
    else {
      if (page.erreur)
        page.erreur++;
      else
        page.erreur = 1;
      alert('Mauvaise reponse ' + page.erreur);
    }
  }

/*******************************************************************************
Affiche une page
*******************************************************************************/
  livre.Affiche = function(page)
  {
    //var img = new Image();
    //img.src = page.image;
    var div = getElement(this.nom_div);
    div.style.background = 'white url('+page.image+') repeat-y'
    div.style.width = page.img.width;
    div.style.height = page.img.height;

    // construction des liens
    var html = '';
    if (page.liens) {
      for (var i = 0;i < page.liens.length;i++) {
        var lien = page.liens[i];
        if (lien.nopage) {
          var pageenfant = this.getPage(lien.nopage);
          if (pageenfant.estbloque) {
            html += '<div class="livre_lien_bloque" id="lien_'+i+'">'+lien.texte+'</div>';
          }
          else {
            var onclick = 'javascript:livre.Page('+lien.nopage+')';
            style = (lien.style) ? lien.style : '';
            html += '<div class="livre_lien_'+style+'" id="lien_'+i+'" onclick="'+onclick+'"><table width="100%" height="100%"><tr><td><a href="'+onclick+'">'+lien.texte+'</td></tr></table></a></div>';
          }
        }
        else if (lien.reponse) {
          style = (lien.style) ? lien.style : '';
          if (style == 'menuinput') {
            var onclick = 'javascript:livre.Reponse('+page.nopage+','+lien.reponse+',1)';
            html += '<div class="livre_lien_'+style+'" id="lien_'+i+'"><table width="100%"><tr><td class="alignleft"><input id="reponse_'+lien.reponse+'"></td><td class="alignright"><a href="'+onclick+'">'+lien.texte+'</a></td></tr></table></div>';
          }
          else {
            var onclick = 'javascript:livre.Reponse('+page.nopage+','+lien.reponse+',0)';
            html += '<div class="livre_lien_'+style+'" id="lien_'+i+'" onclick="'+onclick+'"><a href="'+onclick+'">'+lien.texte+'</a></div>';
          }
        }
      }
    }
    // insertion dans la page html (div jeux)
    div.innerHTML = html;

    // positionnement des liens
    if (page.liens) {
      for (var i = 0;i < page.liens.length;i++) {
        var lien = getElement('lien_'+i);
        if (lien) {
          lien.style.position = 'absolute';
          setPosition(div,lien,page.liens[i].position);
        }
      }
    }

  }

/*******************************************************************************
Retourne l'objet page
*******************************************************************************/
  livre.getPage =  function(nopage)
  {

    var i = 0;
    while ((i < this.livre.pages.length) && (this.livre.pages[i].nopage != nopage))
      i++;
    if (i == this.livre.pages.length) {
      alert('Page ' + nopage + ' n\'existe pas');
      i = 0; // retourne la premère page
    }
    return this.livre.pages[i];
  }

  return livre;
}
