// Javascript para ymasd.com

var xmlHttp;
var op;
// SEO
var timer;
var rutaEnlace;
var language;
var pagina = 'newswip';
// Array de secciones y sinónimos
var secciones = new Array(5); var titulos = new Array(5); var titles = new Array(5); var es_secciones = new Array(5);
secciones[0] = "bio"; 			es_secciones[0] = "biografia";		titulos[0] = "Biografía";				titles[0] = "Biography";
secciones[1] = "portfolio"; 	es_secciones[1] = "creaciones";		titulos[1] = "Imágenes estáticas";	titles[1] = "Still images";
secciones[2] = "contact"; 		es_secciones[2] = "contacto";			titulos[2] = "Contacto";				titles[2] = "Contact";
secciones[3] = "victoria"; 	es_secciones[3] = "victoria";			titulos[3] = "Victoria";				titles[3] = "Victoria";
secciones[4] = "anims"; 		es_secciones[4] = "animaciones";		titulos[4] = "Animaciones";			titles[4] = "Animations";
secciones[5] = "newswip"; 		es_secciones[5] = "inicio";			titulos[5] = "3D Infografía";		titles[5] = "3D";

function createXMLHttpRequest() {
  if (window.ActiveXObject) {
    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  }
  else if (window.XMLHttpRequest) {
    xmlHttp = new XMLHttpRequest();
  }
}

function request(destino, link) {
  rutaEnlace = link.href;
  // tal y como está montado esta línea es crucial para que funcione la petición AJAX, ya que evita que el navegador siga el enlace
  // para poder usar el Back en Firefox no evitamos que lo siga sino que lo cambiamos a un enlace tipo hash con el nombre del elemento pedido
  link.href = window.location.pathname + "#" + rutaEnlace.substring(rutaEnlace.lastIndexOf('/')+1, rutaEnlace.lastIndexOf('.'));
  doRequest(destino); 
}

// doRequest hace una petición de contenido sin utilizar el método de enlaces, es decir, para llamadas directas del exterior
function doRequest(destino) {
  pagina = destino;
  createXMLHttpRequest();
  xmlHttp.onreadystatechange = process; // process es la funcion que maneja los cambios en el objeto.   
  xmlHttp.open("GET", "ymasd.php?part="+destino+"&idioma="+language+"&ms="+new Date().getTime());
  xmlHttp.send(null); // en este punto se ejecuta process, si ponemos más sentencias después de esta llamada se ejecutarán DESPUÉS de process
}

function process() {
  switch (xmlHttp.readyState) {
    case 1:
      showLoading();
    break;
    case 4:
      hideLoading();      
      div = document.getElementById('variable');
      div.innerHTML = xmlHttp.responseText;
      document.title = "Y+D.com - Yeray Díaz Díaz - "+ getTitle();
		changeMenu();
      urchinTracker("/"+pagina );
      /* Resuelve un problema del uso de JavascriptFlashGateway usando AJAX. Al basarse en Javascript los elementos <script> del 
      contenido importado con XMLHttpRequest no se ejecutan normalmente, es neceario usar eval para ejecutarlo */
      if (pagina == 'anims') { eval(animScript); }
      if (pagina == 'contact') {showAddress();}
      canvasResize(600);
    break;   
  }
}

/** ---  Adicionales --- */

// Startup se llama en body onload, realiza las acciones básicas iniciales
function startup(){
  canvasResize(600);
  if (document.getElementById('direccion')) {
    showAddress();
  }
}

function checkIfChanged() {
  pagEnHash = detectarPagina('hash');
  if (pagEnHash != null && pagEnHash != pagina) {
	  doRequest(pagEnHash);  
  }
  timer = setTimeout("checkIfChanged()",200);
}

function canvasResize(minHeight) {
   div =document.getElementById('content');
   div.style.height="auto";
	sch=screen.availHeight-180;
	//alert("div.offsetHeight:"+div.offsetHeight+" - div.style.height:"+div.style.height+" - sch:"+sch);
	// redimensionamos el div content para evitar el solapamiento de las imágenes en BG.
   if (div.offsetHeight < minHeight && div.offsetHeight > sch) {
      div.style.height=minHeight+"px";
	}else{
		// maximizamos el espacio
      if (div.offsetHeight < sch) {
	      div.style.height=sch+"px";
	   }
	}
}

function detectarPagina(parte) {
  if (parte == 'path') {
  	 pag = window.location.pathname.substring(1,window.location.pathname.lastIndexOf('.'));
  }else{
    pag = window.location.hash.substr(1,window.location.hash.length);
  }
  if (pag != undefined) {
  	 for (i=0;i<secciones.length;i++) {
   	 if (secciones[i] == pag || es_secciones[i] == pag) { return secciones[i]; }  
  	 }
  }
}

function hideLoading() {
  document.getElementById('loading').style.visibility = "hidden";
}
function showLoading() {
  document.getElementById('loading').style.visibility = "visible";
}


function toggleVisibility(x) {
  div = x.parentNode;
  video = div.childNodes[3];
  if (video.style.visibility == 'hidden') {
    video.style.visibility = 'visible';
	div.style.height = '318px';
  }else{
	video.style.visibility = 'hidden';
	div.style.height = '18px'
  }
}

function show(imagen) {
  imagenGrande = imagen.src.substring(imagen.src.lastIndexOf('/')+1, imagen.src.length);
  div = document.getElementById('showcase');
  div.innerHTML = '<img src="images/portfolio/'+imagenGrande+'" alt="" />';
  xmlHttp.onreadystatechange = showcaseProcess;   
  xmlHttp.open("GET", "parts/comments.php?element="+imagenGrande+"&idioma="+language+"&ms="+new Date().getTime());
  xmlHttp.send(null);
}

function showAnim(animacion) {
  idAnimacion = animacion.substring(animacion.lastIndexOf('/')+1, animacion.lastIndexOf('.'));
  xmlHttp.onreadystatechange = showcaseProcess;
  xmlHttp.open("GET", "parts/comments.php?element="+idAnimacion+"&idioma="+language+"&ms="+new Date().getTime());
  xmlHttp.send(null);
  flashProxy.call('chooseVideo', animacion);
}

function showcaseProcess() {
  switch (xmlHttp.readyState) {
    case 1:
      showLoading();
    break;
    case 4:
      hideLoading();
      div = document.getElementById('description');
      div.innerHTML = xmlHttp.responseText;
    break;   
  }
}

function changeMenu() {
  div = document.getElementById('menu-contents');
  if (language=='en') {
    ristra = '<ul>';
    if (pagina!='newswip') {ristra+='<li><a href="/newswip.php" onclick="request(\'newswip\', this)">HOME</a></li>';}else{ristra+='<li class="link_activo">HOME</a></li>';}
    //if (pagina!='bio') {ristra+='<li><a href="/bio.html" onclick="request(\'bio\', this)">BIO</a></li>';}else{ristra+='<li class="link_activo">BIO</a></li>';}    
    if (pagina!='portfolio') {ristra+='<li><a href="/portfolio.html" onclick="request(\'portfolio\', this)">STILLS</a></li>';}else{ristra+='<li class="link_activo">STILLS</a></li>';}
    if (pagina!='anims') {ristra+='<li><a href="/anims.html" onclick="request(\'anims\', this)">ANIMATION</a></li>';}else{ristra+='<li class="link_activo">ANIMATION</a></li>';}
    if (pagina!='victoria') {ristra+='<li><a href="/victoria.html" onclick="request(\'victoria\', this)">VICTORIA</a></li>';}else{ristra+='<li class="link_activo">VICTORIA</a></li>';}
    if (pagina!='contact') {ristra+='<li><a href="/contact.html" onclick="request(\'contact\', this)">CONTACT</a></li>';}else{ristra+='<li class="link_activo">CONTACT</a></li>';}
    ristra += '</ul>';
    div.innerHTML = ristra;
  }else{
    ristra = '<ul>';
    if (pagina!='newswip') {ristra+='<li><a href="/newswip.html" onclick="request(\'newswip\', this)">INICIO</a></li>';}else{ristra+='<li class="link_activo">INICIO</a></li>';}
    //if (pagina!='bio') {ristra+='<li><a href="/bio.html" onclick="request(\'bio\', this)">BIOGRAFÍA</a></li>';}else{ristra+='<li class="link_activo">BIOGRAFÍA</a></li>';}    
    if (pagina!='portfolio') {ristra+='<li><a href="/portfolio.html" onclick="request(\'portfolio\', this)">ESTÁTICAS</a></li>';}else{ristra+='<li class="link_activo">ESTÁTICAS</a></li>';}
    if (pagina!='anims') {ristra+='<li><a href="/anims.html" onclick="request(\'anims\', this)">ANIMACIÓN</a></li>';}else{ristra+='<li class="link_activo">ANIMACIÓN</a></li>';}
    if (pagina!='victoria') {ristra+='<li><a href="/victoria.html" onclick="request(\'victoria\', this)">VICTORIA</a></li>';}else{ristra+='<li class="link_activo">VICTORIA</a></li>';}
    if (pagina!='contact') {ristra+='<li><a href="/contact.html" onclick="request(\'contact\', this)">CONTACTO</a></li>';}else{ristra+='<li class="link_activo">CONTACTO</a></li>';}
    ristra += '</ul>';
    div.innerHTML = ristra;

  }
}

function switchLanguage(link) {
  enlace = link;
  rutaEnlace = link.href;
  link.href = "javascript:;";
  if (language=='es') {
    language='en';
    texto='Español';
  }else{
    language='es';
    texto="English";
  }
  doRequest(pagina);
  div = document.getElementById('language');
  div.innerHTML = '<a href="#" onclick="switchLanguage(this);">'+texto+'</a>';
  changeMenu();
}

function getTitle() {
  for (var i=0; i<secciones.length; i++) {
    if (secciones[i] == pagina) {
       return titulos[i];    
    }  
  }
}

function victoriaOnline() {
  eval(victoriaScript);
}

function showAddress() {
  domain = 'ymasd.com';
  user = 'yeray';
  elemento=document.getElementById("direccion");
  elemento.innerHTML = '<a href="mailto:'+user+'@'+domain+'">'+user+'@'+domain+'</a>'; 
}