/**
 * Interactivité des cartes du ciel
 **/

var couleur      = '#ffffff';
var cacheBascule = 0;

// Traitement des couleurs
function recupererCouleur(objet) {
  // Couleurs de fond
  if (objet < 12) {
    couleur = '#e7f4fe';
  } else if ((objet >= 12 && objet < 22) || (objet >= 44 && objet < 54)) {
    couleur = '#fdfecf';
  } else if ((objet >= 22 && objet < 30) || (objet >= 54 && objet < 62)) {
    couleur = '#f0f0f0';
  } else if ((objet >= 30 && objet < 44) || (objet >= 62 && objet < 76)) {
    couleur = '#f9eecc';
  }
} 
 
// Affiche le détail d'un objet en fonction de son id
function detail(objet) {
  if (cadreDetails.style.overflow == 'hidden') {
    recupererCouleur(objet);
    cadreDetails.innerHTML        = document.getElementById('detail_' + objet).innerHTML + reduireBouton;
    cadreDetails.style.background = couleur;
  }
}

// Affiche les dessin JavaScript des aspects sur la carte
function isolerAspects(planete) {
  // Positionnement du cadre aspects
  var aspectsLeft = findPosX(document.getElementById('carte'));
  var aspectsTop  = findPosY(document.getElementById('carte'));

  // Cacher les aspects de la carte
  if (cadreAspects.style.visibility == 'visible' || cadreDetails.style.overflow == 'visible') {
    cadreAspects.style.visibility = 'hidden';
  } else {
    cadreAspects.style.top        = aspectsTop + 'px';
    cadreAspects.style.left       = aspectsLeft + 'px';
    cadreAspects.style.visibility = 'visible';
  }
  
  if (cadreDetails.style.overflow == 'hidden') {
      // Afficher les aspects de la planète
      var aspects = document.getElementById('aspects_' + planete);
      aspects.style.top        = aspectsTop + 'px';
      aspects.style.left       = aspectsLeft + 'px';
      aspects.style.visibility = 'visible';
  }
}

// Geler (afficher en bloquant l'interactivité) un objet
function geler(objet) {
  cacherAspects(objet);
  afficher('bascule_' + objet);
}

// Cache les aspects de l'objet concerné
function cacherAspects(objet) {
  if (document.getElementById('aspects_' + parseInt(objet - 12))) {
    document.getElementById('aspects_' + parseInt(objet - 12)).style.visibility = 'hidden';
  }
  cadreAspects.style.visibility = 'hidden';
}

// Initialise le cadre d'affichage
function initialiser() {
  if (typeof(cadreDetails) != "undefined") {
    cadreDetails.style.left = findPosX(document.getElementById('marqueur')) + 'px';
    cadreDetails.style.top  = findPosY(document.getElementById('marqueur')) - 18 + 'px';
  }
}

function basculer(id) {
  if (document.getElementById(id).src.indexOf('reduire.gif') != -1) {
    cacher(id);
  } else {
    afficher(id);
  }
}

// Affiche les textes
function afficher(id) {
  cacheBascule = id;
  cadreDetails.style.height   = 'auto';
  cadreDetails.style.overflow = 'visible';
  document.getElementById(id).src   = 'http://www.astrotheme.fr/images/reduire.gif';
  document.getElementById(id).title = reduireIcone;
}

// Cache les textes
function cacher(id) {
  if (id = 'cache') {
	id = cacheBascule;
  }
  cacheBascule = id;
  cadreDetails.style.height   = '10px';
  cadreDetails.style.overflow = 'hidden';
  document.getElementById(id).src   = 'http://www.astrotheme.fr/images/developper.gif';
  document.getElementById(id).title = developperIcone;
}

function findPosX(obj) {
  var curleft = 0;
  if (obj.offsetParent) {
    while (1) {
      curleft += obj.offsetLeft;
      if (!obj.offsetParent) {
        break;
      }
      obj = obj.offsetParent;
    }
  } else if (obj.x) {
    curleft += obj.x;
  }
  return curleft;
}

function findPosY(obj) {
    var curtop = 0;
    if (obj.offsetParent) {
        while (1) {
            curtop += obj.offsetTop;
            if (!obj.offsetParent) {
                break;
            }
            obj = obj.offsetParent;
        }
    } else if (obj.y) {
        curtop += obj.y;
    }
    return curtop;
}