/* VARIABLES GLOBALES */
var categoria = ""
var colecciones = false
var coleccionSeleccionada = false
var calibres = false
var calibreSeleccionada = false
var colores =  false
var colorSeleccionada = false
var superficies = false
var superficieSeleccionada = false
var piedras = false
var piedraSeleccionada = false
var joya = false
var current = 0
var imgs = new Array()
var pause = true
function iniciarAlianza()
{
  imgs = $('alianza').getElementsByTagName("img");
  imgs[0].xOpacity = .99;
  imgs[1].xOpacity = 0;
}
function categoriaCargar(categoriaXML)
{
  switch (categoriaXML){
    case 'basicas1.xml':
    case '../es/basicas1.xml':
      categoria = 'basicas1'
      $('basicas2').src = "../images/es/alianzas/basicas2.gif"
      $('princesas').src = "../images/es/alianzas/princesas.gif"
      $('bicolores').src = "../images/es/alianzas/bicolores.gif"
      $('basicas1').src = "../images/es/alianzas/basicas1_on.gif"
      break;
    case 'basicas2.xml':
    case '../es/basicas2.xml':
      categoria = 'basicas2'
      $('basicas1').src = "../images/es/alianzas/basicas1.gif"
      $('princesas').src = "../images/es/alianzas/princesas.gif"
      $('bicolores').src = "../images/es/alianzas/bicolores.gif"
      $('basicas2').src = "../images/es/alianzas/basicas2_on.gif"
      break;
    case 'princesas.xml':
    case '../es/princesas.xml':
      categoria = 'princesas'
      $('basicas2').src = "../images/es/alianzas/basicas2.gif"
      $('bicolores').src = "../images/es/alianzas/bicolores.gif"
      $('basicas1').src = "../images/es/alianzas/basicas1.gif"
      $('princesas').src = "../images/es/alianzas/princesas_on.gif"
      break;
    case 'bicolores.xml':
    case '../es/bicolores.xml':
      categoria = 'bicolores'
      $('basicas2').src = "../images/es/alianzas/basicas2.gif"
      $('basicas1').src = "../images/es/alianzas/basicas1.gif"
      $('princesas').src = "../images/es/alianzas/princesas.gif"
      $('bicolores').src = "../images/es/alianzas/bicolores_on.gif"
      break;
  }
  xmlDoc = loadXMLDoc('./'+categoriaXML);
  if (!xmlDoc) return false;
  //iniciamos la alianza
  iniciarAlianza();
  //Al cargar OK el xml:
  //1.- Reseteo todas las opciones.
  seleccionResetear(true,true,true,true,true,true);
  //2.- Cargo las colecciones
  coleccionesObtener(xmlDoc);
  return true;
}

function seleccionResetear(resColecciones, resCalibres, resColores, resSuperficies, resPiedras, resJoya)
{
  //Al hacer que se seleccione siempre la 1ª comento esta función.
  if ( resColecciones ){
    $('colecciones').innerHTML = "";
    //coleccionSeleccionada = false
  }
  if ( resCalibres ){
    $('calibres').innerHTML = '<li><img src="../images/es/alianzas/seleccioneModelo.gif" alt="seleccione antes un modelo" /></li>';
    //calibreSeleccionada = false
  }
  if ( resColores ){
    $('colores').innerHTML = '<li><img src="../images/es/alianzas/seleccioneCalibre.gif" alt="seleccione antes un calibre" /></li>';
    //colorSeleccionada = false
  }
  if ( resSuperficies ){
    $('superficies').innerHTML = "";
    //superficieSeleccionada = false
  }
  if ( resPiedras ){
    $('piedras').innerHTML = "";
    //piedraSeleccionada = false
  }
  /*
  if ( resJoya ){
    $('alianza2').src = "../images/es/alianzas/alianzaTemporal.gif";
    if (imgs[1] && $('alianza2').src != $('alianza1').src)
      so_xfade()
  }
  */

  return true;  
}

function coleccionesObtener(biblioteca)
{
  var html ="";
  colecciones = biblioteca.getElementsByTagName('coleccion');
  //Generamos la lista de colecciones
  for (i=0;i<colecciones.length;i++) {
    html += "<li id=\"coleccion_"+i+"\"><a href=\"#\" onclick=\"coleccionSeleccionar(colecciones["+i+"],"+i+")\"><img onmouseover=\"transparenciaIntercambiar(this)\" onmouseout=\"transparenciaIntercambiar(this)\" class=\"elementoNoseleccionado\" src=\"../images/es/alianzas/modelos/"+colecciones[i].getAttribute('nombre').toLowerCase()+".gif\" alt=\""+colecciones[i].getAttribute('nombre').toLowerCase()+"\" /></a></li>";
  }
  //Mostramos las colecciones
  $('colecciones').innerHTML = html;
  //Seleccionamos la primera opción
  if (colecciones.length>0){
    //Seleccionamos esta colección
    coleccionSeleccionar(colecciones[0],0);
  }
}

function coleccionSeleccionar(coleccion,numColeccion)
{
  coleccionSeleccionada = coleccion;
  //Quitamos la selección anterior
  for(i=0;i<colecciones.length;i++){
    $('coleccion_'+ i).childNodes[0].childNodes[0].className = "elementoNoseleccionado"
  }
  //Resaltamos la seleccion
  $('coleccion_'+ numColeccion).childNodes[0].childNodes[0].className = "elementoSeleccionado fijo"
  //Reseteamos todas las opciones menos esta.
  seleccionResetear(false,true,true,true,true,true);
  //motramos seleccion en texto
  eleccionActualizar();
  //Obtenemos los calibres
  calibresObtener();
}

function calibresObtener()
{
  if (!coleccionSeleccionada) return false;
  var html ="";
  var calibreAnterior = calibreSeleccionada
  calibres = coleccionSeleccionada.getElementsByTagName('calibre');
  //Generamos la lista de calibres
  for (i=0;i<calibres.length;i++) {
    html += "<li id=\"calibre_"+i+"\"><a href=\"#\" onclick=\"calibreSeleccionar(calibres["+i+"],"+i+")\"><img onmouseover=\"transparenciaIntercambiar(this)\" onmouseout=\"transparenciaIntercambiar(this)\" class=\"elementoNoseleccionado\" src=\"../images/es/alianzas/calibres/"+calibres[i].getAttribute('mm').toLowerCase()+".gif\" alt=\""+calibres[i].getAttribute('mm').toLowerCase()+"\" /></a></li>";
  }
  //Mostramos los calibres
  $('calibres').innerHTML = html;
  //Seleccionamos el valor por defecto
  if (calibres.length>0){
    //Si teníamos un valor seleccionado intetamos que permanezca
    //Si no, selecccionamos el primer calibre.
    if (!calibreAnterior) calibreSeleccionar(calibres[0],0);
    else {
      var nuevaPosicion = obtenerPosicion (calibres, "mm", calibreAnterior.getAttribute('mm'))
      if (nuevaPosicion != false ) calibreSeleccionar(calibres[nuevaPosicion],nuevaPosicion);
      else calibreSeleccionar(calibres[0],0);
    }
  }
}

function calibreSeleccionar(calibre,numCalibre)
{
  calibreSeleccionada = calibre;
  //Quitamos la selección anterior
  for(i=0;i<calibres.length;i++){
    $('calibre_'+ i).childNodes[0].childNodes[0].className = "elementoNoseleccionado"
  }
  //Resaltamos la seleccion
  $('calibre_'+ numCalibre).childNodes[0].childNodes[0].className = "elementoSeleccionado fijo"
  //Reseteamos todas las opciones menos esta.
  seleccionResetear(false,false,true,true,true,true);
  //motramos seleccion en texto
  eleccionActualizar();
  //Obtenemos los calibres
  coloresObtener();
}

function coloresObtener()
{
  if (!calibreSeleccionada) return false;
  var html ="";
  var colorAnterior = colorSeleccionada
  colores = calibreSeleccionada.getElementsByTagName('color');
  //Generamos la lista de colores
  for (i=0;i<colores.length;i++) {
    html += "<li id=\"color_"+i+"\"><a href=\"#\" onclick=\"colorSeleccionar(colores["+i+"],"+i+")\"><img onmouseover=\"transparenciaIntercambiar(this)\" onmouseout=\"transparenciaIntercambiar(this)\" class=\"elementoNoseleccionado\" src=\"../images/es/alianzas/colores/"+colores[i].getAttribute('abreviatura').toLowerCase()+".gif\" alt=\""+colores[i].getAttribute('nombre').toLowerCase()+"\" /></a></li>";
  }
  //Mostramos los colores
  $('colores').innerHTML = html;
  //Seleccionamos la primera opción
  if (colores.length>0){
    //Si teníamos un valor seleccionado intetamos que permanezca
    //Si no, selecccionamos el primero
    if (!colorAnterior) colorSeleccionar(colores[0],0);
    else {
      var nuevaPosicion = obtenerPosicion (colores, "abreviatura", colorAnterior.getAttribute('abreviatura'))
      if (nuevaPosicion != false ) colorSeleccionar(colores[nuevaPosicion],nuevaPosicion);
      else colorSeleccionar(colores[0],0);;
    }
  }
}

function colorSeleccionar(color,numColor)
{
  colorSeleccionada = color;
  //Quitamos la selección anterior
  for(i=0;i<colores.length;i++){
    $('color_'+ i).childNodes[0].childNodes[0].className = "elementoNoseleccionado"
  }
  //Resaltamos la seleccion
  $('color_'+ numColor).childNodes[0].childNodes[0].className = "elementoSeleccionado fijo"
  //Reseteamos todas las opciones menos esta.
  seleccionResetear(false,false,false,true,true,true);
  //motramos seleccion en texto
  eleccionActualizar();
  //Obtenemos los calibres
  superficiesObtener();
}

function superficiesObtener()
{
  if (!colorSeleccionada) return false;
  var html ="";
  var superficieAnterior = superficieSeleccionada
  superficies = colorSeleccionada.getElementsByTagName('superficie');
  //Generamos la lista de colores
  for (i=0;i<superficies.length;i++) {
    if (superficies[i].getAttribute('abreviatura')!="")
      html += "<li id=\"superficie_"+i+"\"><a href=\"#\" onclick=\"superficieSeleccionar(superficies["+i+"],"+i+")\"><img onmouseover=\"transparenciaIntercambiar(this)\" onmouseout=\"transparenciaIntercambiar(this)\" class=\"elementoNoseleccionado\" src=\"../images/es/alianzas/acabados/"+superficies[i].getAttribute('abreviatura').toLowerCase()+".gif\" alt=\""+superficies[i].getAttribute('nombre').toLowerCase()+"\" /></a></li>";
  }
  if (superficies.length>0) html += "<li> <img src=\"../images/es/alianzas/superficies.gif\" alt=\"superficies\" /></li>";
  //Mostramos las superficies
  if (superficies.length>1)
    $('superficies').innerHTML = html;
  //Seleccionamos la primera opción
  if (superficies.length>0){
    //Si teníamos un valor seleccionado intetamos que permanezca
    //Si no, selecccionamos el primero
    if (!superficieAnterior) superficieSeleccionar(superficies[0],0);
    else {
      var nuevaPosicion = obtenerPosicion (superficies, "abreviatura", superficieAnterior.getAttribute('abreviatura'))
      if (nuevaPosicion != false ) superficieSeleccionar(superficies[nuevaPosicion],nuevaPosicion);
      else superficieSeleccionar(superficies[0],0);
    }
  }
}

function superficieSeleccionar(superficie,numSuperficie)
{
  superficieSeleccionada = superficie;
  if (superficies.length>1){
    //Quitamos la selección anterior
    for(i=0;i<superficies.length;i++){
      if (superficies[i].getAttribute('abreviatura')!="")
        $('superficie_'+ i).childNodes[0].childNodes[0].className = "elementoNoseleccionado"
    }
    //Resaltamos la seleccion
    if (superficies[(i-1)].getAttribute('abreviatura')!="")
    $('superficie_'+ numSuperficie).childNodes[0].childNodes[0].className = "elementoSeleccionado fijo"
  }
  //Reseteamos todas las opciones menos esta.
  seleccionResetear(false,false,false,false,true,false);
  //motramos seleccion en texto
  eleccionActualizar();
  //Obtenemos las piedras
  piedrasObtener();
}

function piedrasObtener()
{
  if (!superficieSeleccionada) return false;
  var html ="";
  var piedraAnterior = piedraSeleccionada
  piedras = superficieSeleccionada.getElementsByTagName('piedra');
  //Generamos la lista de piedras sólo si hay al menos una que tenga nombre
  if (piedras.length>0 || (piedras.length==1 && activarCartelBrillantes()) ){
    html += "<li> <img style=\"padding-top:6px;\" src=\"../images/es/alianzas/brillantes.gif\" alt=\"brillantes\" /></li>";
  }
  for (i=0;i<piedras.length;i++) {
    if (piedras[i].getAttribute('abreviatura')!="")
      html += "<li id=\"piedra_"+i+"\"><a href=\"#\" onclick=\"piedraSeleccionar(piedras["+i+"],"+i+")\"><img onmouseover=\"transparenciaIntercambiar(this)\" onmouseout=\"transparenciaIntercambiar(this)\" class=\"elementoNoseleccionado\" src=\"../images/es/alianzas/brillantes/"+piedras[i].getAttribute('abreviatura').toLowerCase()+".gif\" alt=\""+piedras[i].getAttribute('abreviatura').toLowerCase()+"\" /></a></li>";
  }
  if (activarCartelBrillantes()){
    $('brillantes').style.display="block"
  }else{
    $('brillantes').style.display="none"
  }
  //Mostramos las piedras. Sólo si hay + de 1, es decir si tiene opciones.
  //Dado que siempre hay 1 que es "sin piedras";
  if (piedras.length>1 || (piedras.length==1 && activarCartelBrillantes()) )
    $('piedras').innerHTML = html;
    
  //Si teníamos un valor seleccionado intetamos que permanezca
  //Si no, selecccionamos el primero
  if (!piedraAnterior) piedraSeleccionar(piedras[0],0);
  else {
    var nuevaPosicion = obtenerPosicion (piedras, "abreviatura", piedraAnterior.getAttribute('abreviatura'))
    if (nuevaPosicion != false ) piedraSeleccionar(piedras[nuevaPosicion],nuevaPosicion);
    else piedraSeleccionar(piedras[0],0);
  }
}

function piedraSeleccionar(piedra,numPiedra)
{
  piedraSeleccionada = piedra;
  //Quitamos la selección anterior
  for(i=1;i<piedras.length;i++){
    $('piedra_'+ i).childNodes[0].childNodes[0].className = "elementoNoseleccionado"
  }
  //Resaltamos la seleccion
  if (numPiedra > 0 )
    $('piedra_'+ numPiedra).childNodes[0].childNodes[0].className = "elementoSeleccionado fijo"
  //motramos seleccion en texto
  eleccionActualizar();
  //Este es el último paso. Mostramos la joya.
  //alert('../images/es/alianzas/'+ categoria +'/'+ coleccionSeleccionada.getAttribute('nombre').toLowerCase() +'/'+ getNodeAtributeValue(piedraSeleccionada,"joya","nombre")+'.jpg')
  $('alianza2').src = '../images/es/alianzas/'+ categoria +'/'+ coleccionSeleccionada.getAttribute('nombre').toLowerCase() +'/'+ getNodeAtributeValue(piedraSeleccionada,"joya","nombre")+'.jpg';
  //Hacemos fade
  //alert("current = " + current + " ; la 1 es -> " + $('alianza1').src + " y la 2 es " + $('alianza2').src )
  so_xfade()
  //Mostramos el botón de imprimir
  $('imprimir').style.display="block";
}

function eleccionActualizar()
{
  if (!coleccionSeleccionada)
    $('eleccion').innerHTML = "";
  else
    $('eleccion').innerHTML = "Alianza modelo <strong>" + coleccionSeleccionada.getAttribute('nombre').toLowerCase() + "</strong>";

  if (!calibreSeleccionada)
    $('eleccion').innerHTML += "";
  else
    $('eleccion').innerHTML += "<br /><strong>" + (calibreSeleccionada.getAttribute('mm')/10) + "</strong> mm de ancho";

  if (!colorSeleccionada)
    $('eleccion').innerHTML += "";
  else {
      $('eleccion').innerHTML += "<br />oro de 18K color <strong>" + colorSeleccionada.getAttribute('nombre') + "</strong>";
  }
    
  if (!superficieSeleccionada ){
    $('eleccion').innerHTML += "";
  }else{
    if (superficieSeleccionada.getAttribute('abreviatura') != "" && superficieSeleccionada.getAttribute('abreviatura') != "F" )
      $('eleccion').innerHTML += "<br />superficie <strong>" + superficieSeleccionada.getAttribute('nombre') + "</strong>";
    else
      $('eleccion').innerHTML += "<br />superficie <strong> fija</strong>";
  }
    
  if (!piedraSeleccionada || piedraSeleccionada.getAttribute('abreviatura') == "" ){
    $('eleccion').innerHTML += "";
  }else{
    switch (piedraSeleccionada.getAttribute('abreviatura')){
      case "BTE002":
        $('eleccion').innerHTML += "<br />brillante de <strong>0,02.</strong>";
        break;
      case "BTE004":
        $('eleccion').innerHTML += "<br />brillante de <strong>0,04.</strong>";
        break;
      case "BTE006":
        $('eleccion').innerHTML += "<br />brillante de <strong>0,06.</strong>";
        break;
    }
  }
    
  return true
}

function obtenerPosicion (contenedor, atributo, valor)
{
  posicion = false
  for (i=0;i<contenedor.length;i++) {
    if (contenedor[i].getAttribute(atributo)==valor){
      posicion = i
      break;
    }
  }
  return posicion
}

function transparenciaIntercambiar(objeto)
{
  switch(objeto.className){
    case "elementoNoseleccionado":
      objeto.className = "elementoSeleccionado"
      break;
    case "elementoSeleccionado":
      objeto.className = "elementoNoseleccionado"
      break;
  }
  return true
}

function loadXMLDoc(dname) 
{
  var xmlDoc;
  // code for IE
  if (window.ActiveXObject){
    xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  }else if (document.implementation && document.implementation.createDocument)
    {//// code for Mozilla, Firefox, Opera, etc.
    xmlDoc=document.implementation.createDocument("","",null);
    }
  else{
    alert('Tu navegador no permite ejecutar esta aplicación ( XML ).');
    return false;
  }
  xmlDoc.async=false;
  xmlDoc.load(dname);
  return(xmlDoc);
}

function getNodeValue(obj,tag)
{
	return obj.getElementsByTagName(tag)[0].firstChild.nodeValue;
}

function getNodeAtributeValue(obj,tag,attribute)
{
	return obj.getElementsByTagName(tag)[0].getAttribute(attribute);
}

function so_xfade() {
	cOpacity = imgs[current].xOpacity;
	nIndex = imgs[current+1]?current+1:0;

	nOpacity = imgs[nIndex].xOpacity;
	
	cOpacity-=.05; 
	nOpacity+=.05;
	
	imgs[nIndex].style.display = "block";
	imgs[current].xOpacity = cOpacity;
	imgs[nIndex].xOpacity = nOpacity;
	
	setOpacity(imgs[current]); 
	setOpacity(imgs[nIndex]);

	if(cOpacity<=0) {
		imgs[current].src = imgs[nIndex].src;
		imgs[current].xOpacity = .99
		imgs[nIndex].xOpacity = 0
	} else {
		setTimeout(so_xfade,5);
	}
	function setOpacity(obj) {
		if(obj.xOpacity>.99) {
			obj.xOpacity = .99;
			return;
		}
		obj.style.opacity = obj.xOpacity;
		obj.style.MozOpacity = obj.xOpacity;
		obj.style.filter = "alpha(opacity=" + (obj.xOpacity*100) + ")";
	}
}

function activarCartelBrillantes()
{
  //Sólo se activa para las siguientes colecciones:
  //SMREC, REC, MC, CRISTINA, SOFIA, GIRATBI, GIRPLA.
  var coleccion = coleccionSeleccionada.getAttribute('nombre').toLowerCase()
  if (coleccion == "smrec" || coleccion == "rec" || coleccion == "cristina" ||
      coleccion == "sofia" || coleccion == "giratbi" || coleccion == "girpla" || 
      coleccion == "mc" ){
        return true;
      }
  return false;
}