/**
 * @author marc
 */



function MostrarOcultar(idObjecte) {
	if(idObjecte=='direccionEnvioRegalo') {
		var objecte = Obtenir('direccionEnvio');
	} else {
		var objecte = Obtenir(idObjecte);
	} 
	try {
		switch(idObjecte) {
			case 'articlesRelacionats':
				if (objecte.style.display == "block") {
					objecte.style.display = "none";
					Obtenir('textArticlesRelacionats').textContent = 'Mostrar relacionados';
				} else {
					objecte.style.display = "block";
					Obtenir('textArticlesRelacionats').textContent = 'Ocultar relacionados';
				} 
			break;
			case 'direccionEnvio':
				if(objecte.style.visibility=='hidden') {
					objecte.style.visibility = '';
					Obtenir('fila_nota_1').style.display = 'none';
					Obtenir('fila_personaRegalo_1').style.display = 'none';
				} else if(objecte.style.visibility=='' && Obtenir('fila_nota_1').style.display=='') {
					Obtenir('fila_nota_1').style.display = 'none';
					Obtenir('fila_personaRegalo_1').style.display = 'none';
				} else {
					objecte.style.visibility = 'hidden';
				}
			break;
			case 'direccionEnvioRegalo':
				if(objecte.style.visibility=='hidden') {
					objecte.style.visibility= '';
					Obtenir('fila_nota_1').style.display = '';
					Obtenir('fila_personaRegalo_1').style.display = '';
				} else if(objecte.style.visibility=='' && Obtenir('fila_nota_1').style.display=='none') {
					Obtenir('fila_nota_1').style.display = '';
					Obtenir('fila_personaRegalo_1').style.display = '';
				} else {
					objecte.style.visibility = 'hidden';
				}
			break;
			case 'divContenidorUsuariRegistrat':
				if (objecte.style.display == "block") {
					objecte.style.display = "none";
				} else {
					objecte.style.display = "block";
				}
				if(Obtenir('divContenidorUsuariRegistre').style.display == "block") {
					Obtenir('divContenidorUsuariRegistre').style.display = "none";
				}
			break;
			case 'divContenidorUsuariRegistre':
				if (objecte.style.display == "block") {
					objecte.style.display = "none";
				} else {
					objecte.style.display = "block";
				}
				if(Obtenir('divContenidorUsuariRegistrat').style.display == "block") {
					Obtenir('divContenidorUsuariRegistrat').style.display = "none";
				}
			break;
			default:
				if (objecte.style.display == "block") {
					objecte.style.display = "none";
				} else {
					objecte.style.display = "block";
				}
			break;
		}
					
	} catch (e) { }
} 

function MostrarOcultarMenu(idObjecte) {
	try {
		var objecte = Obtenir(idObjecte);
		if (objecte.className == "menu1" || objecte.className == "menu2" || objecte.className == "menu3") {
			//objecte.style.display = "none";
			objecte.className = "menu1Sel";
		} else { 
			//objecte.style.display = "block";
			objecte.className = "menu1";
		}
	} 
	catch (e) {
	}
} 

function MostrarOcultarMenuPrincipal(idObjecte) {
	try {
		var objecte = Obtenir(idObjecte);
		if (objecte.className == "menu1") {
			objecte.className = "menu1Sel";
			for (var i=1; i<=3; i++) {
				if(idObjecte!="menu"+i && Obtenir('menu'+i).className=="menu1Sel") {
					Obtenir('menu'+i).className = 'menu1';
				}
			}
		} 
	} 
	catch (e) {
	}
} 


function MostrarOcultarSubMenu(idObjecte) {
	try {
		var objecte = Obtenir(idObjecte);
		if (objecte.className != "selAbierta") {
			//Si tenim altres submenús desplegats els tanquem abans de desplegar el que correspon
			var tagsUL = document.getElementsByTagName('ul');
			for(var i=0; i<tagsUL.length; i++) {
				if(tagsUL[i].id!=idObjecte && tagsUL[i].className=="selAbierta") {
					if(tagsUL[i].id!='')Obtenir(tagsUL[i].id).className="";
				}
			}
			objecte.className = "selAbierta";
			//Si tenim altres menús desplegats els tanquem
			menuActual = Obtenir(idObjecte).parentNode.parentNode.id
			for(i=1;i<=3;i++) {
				if(menuActual!='menu'+i && Obtenir('menu'+i).className=='menu1Sel') {
					Obtenir('menu'+i).className = 'menu1';
				}	
			}
		}
	} 
	catch (e) {
	}
} 

 /* ***********************************************************************************
 * Obtenir: Consigue el objeto del id que se pase
 * 
 * ***********************************************************************************/


Obtenir = function (id) { // Retorna un elemento en base al id
   return document.getElementById(id);
}

 
 /* ***********************************************************************************
 * Ocultar: Posa la propietat visibility d'un objecte a "hidden"
 * 
 * ***********************************************************************************/

function Ocultar(idObjecte){
	try{
		var objecte = Obtenir(idObjecte);
		objecte.style.visibility="hidden";
	}catch(e){
	//Per culpa d'això aquesta funció no donarà error
	//necessari perquè ocultem l'icona de persona només en algunes pantalles	
	}
}



/* ***********************************************************************************
 * Desocultar: Posa la propietat visibility d'un objecte a "visible"
 * 
 * ***********************************************************************************/

function Desocultar(idObjecte){
	try{
		var objecte = Obtenir(idObjecte);
		objecte.style.visibility="visible";
	}catch(e){
	//Per culpa d'això aquesta funció no donarà error
	//necessari perquè ocultem l'icona de persona només en algunes pantalles	
	}
}



 
 
 /****************************************************************
  * Menu desplegable de la izquierda.
  * Controla la ocultacion/desocultacion de los submenus
  ****************************************************************/
 
 /****************************************************************
Menú en arbol accesible. 28-Jul-07
Autor tunait http://javascript.tunait.com/
Script de libre uso mientras se mantengan intactos los créditos de autor.
****************************************************************/
var abrirenVentanaNueva = 0;



var tagApartado = 'a';
var docActual = location.href;
function iniciaMenu(menu){
	idMenu = menu
	menu = document.getElementById(menu);
	for(var m = 0; m < menu.getElementsByTagName('ul').length; m++){
		el = menu.getElementsByTagName('ul')[m]
		el.style.display = 'none';
		el.className = 'menuDoc';
		el.parentNode.className = 'cCerrada'
		textoNodo = el.parentNode.firstChild.nodeValue;
		nuevoNodo = document.createElement(tagApartado);
		if(tagApartado == 'a') nuevoNodo.href = '#' + textoNodo;
		nuevoNodo.className = 'tagApartado';
		nuevoNodo.appendChild(document.createTextNode(textoNodo));
		el.parentNode.replaceChild(nuevoNodo,el.parentNode.firstChild);
		nuevoNodo.onclick = function(){
			hijo = sacaPrimerHijo(this.parentNode, 'ul')
			hijo.style.display = hijo.style.display == 'none' ? 'block' : 'none';
			if(this.parentNode.className == 'cCerrada' || this.parentNode.className == 'cAbierta'){
				this.parentNode.className = this.parentNode.className == 'cCerrada' ? 'cAbierta' : 'cCerrada'
			}
			else{
				this.parentNode.className = this.parentNode.className == 'cAbiertaSeleccionada' ? 'cCerradaSeleccionada' : 'cAbiertaSeleccionada' 
			}
			return false;
		}
	}
	documentoActual(idMenu)
}
function sacaPrimerHijo(obj, tag){
	for(var m = 0; m < obj.childNodes.length; m++){
		if(obj.childNodes[m].tagName && obj.childNodes[m].tagName.toLowerCase() == tag){
			return obj.childNodes[m];
			break;
		}
	}
}
function documentoActual(menu){
	idMenu = menu
	menu = document.getElementById(menu);
	for(var s = 0; s < menu.getElementsByTagName('a').length; s++){
		if(abrirenVentanaNueva) menu.getElementsByTagName('a')[s].target = 'blank';
		enlace = menu.getElementsByTagName('a')[s].href
		if(enlace == docActual){
			menu.getElementsByTagName('a')[s].parentNode.className = 'documentoActual'
		}
		if(enlace == docActual && menu.getElementsByTagName('a')[s].parentNode.parentNode.id != idMenu){
			menu.getElementsByTagName('a')[s].parentNode.parentNode.parentNode.className = 'cAbiertaSeleccionada'
			var enlaceCatPadre = sacaPrimerHijo(menu.getElementsByTagName('a')[s].parentNode.parentNode.parentNode, 'a')
			enlaceCatPadre.onclick = function(){
				hijo = sacaPrimerHijo(this.parentNode, 'ul')
				hijo.style.display = hijo.style.display == 'none' ? 'block' : 'none';
				this.parentNode.className = this.parentNode.className == 'cAbiertaSeleccionada' ? 'cCerradaSeleccionada' : 'cAbiertaSeleccionada' 
				return false;

			} 
			nodoSig = sacaPrimerHijo(menu.getElementsByTagName('a')[s].parentNode.parentNode.parentNode, 'ul')
			nodoSig.style.display = 'block';/**/
			abrePadre(idMenu, enlaceCatPadre.parentNode)
		}
	}
}
function abrePadre(idmenu, obj){
	obj.parentNode.parentNode.className = 'cAbiertaSeleccionada'
	var nodoSig = sacaPrimerHijo(obj, 'ul')
	nodoSig.style.display = 'block';
	if(obj.parentNode.id != idmenu){
		abrePadre(idmenu, obj.parentNode.parentNode)
	}
}

/**********************************************************/

//*************************************************************************************************
//*************************************************************************************************
//************* Ajax per carregar el contingut desde el menu **************************************
//*************************************************************************************************


//	Vamos a presuponer que el usuario es una persona inteligente...
var isIE = false;

//	Creamos una variable para el objeto XMLHttpRequest
var req;

//	Creamos una funcion para cargar los datos en nuestro objeto.
//	Logicamente, antes tenemos que crear el objeto.
//	Vease que la sintaxis varia dependiendo de si usamos un navegador decente
//	o Internet Explorer
function cargaXML(url) {
	//	Primero vamos a ver si la URL es una URL :)
	if(url==''){
		return;// sortida de la funcio.
	}
	
	ActualizarHistorial(url);
	
	//	Usuario inteligente... FireFox
	if (window.XMLHttpRequest) {
		req = new XMLHttpRequest();
		req.onreadystatechange = processReqChange; // ASIGNEM UNA FUNCiO AL METODE! xD
		req.open("GET", url, true);
		req.send(null);
	//	...y usuario de Internet Explorer Windows
	} else if (window.ActiveXObject) {
		isIE = true;
		req = new ActiveXObject("Microsoft.XMLHTTP");
		if (req) {
			req.onreadystatechange = processReqChange;
			req.open("GET", url, true);
			req.send();
		}
	}
}

//	Funcion que se llama cada vez que se dispara el evento onreadystatechange
//	del objeto XMLHttpRequest
function processReqChange(){
	var caixaContingut = document.getElementById("fichaPrincipal");
	if(req.readyState == 4){
		caixaContingut.innerHTML = req.responseText;
		addLoadEvent(initLightbox);
		initLightbox();
		
		//ahora llamamos a la funcion que cambiará el historial.
						
	} else {
		caixaContingut.innerHTML = '<span class="carregant"><img src="http://www.bisuarts.com/imatges/loading.gif" /> Cargando... </span>';
		
	}
}




			
			


function OcultarArticulo(idArticulo) {
	Obtenir('taulaArticulo'+idArticulo).style.display="none";
	
	//Comprovem si tenim tots els relacionats ocults i en cas afirmatiu ocultem el link de Mostrar/Ocultar
	var totsOcults = true;	
	for(i=0;i<Obtenir('articlesRelacionats').childNodes.length;i++) {
		if(Obtenir('articlesRelacionats').childNodes[i].nodeName=='TABLE') {
			if(Obtenir('articlesRelacionats').childNodes[i].style.display=="") {
				totsOcults=false;
			}
		}
	}
	if (totsOcults) {
		Obtenir('linkMostrarRelacionats').style.display = 'none';
		Obtenir('articlesRelacionats').style.display = 'none';
	}
}

/**
 * Manda información de la url recien cargada para que sea guardada en sesion. esto es necesario para que cuando ie7,
 * carga una pagina nueva, elimina del historial los clikcs realizados al iframe.
 * @param {Object} url, url a añadir a la sesion  "historySesion"
 */

function GuardarUrlHistorialSesion (url){
	ajax=ObjecteAjax();
	 
	var dominio=ObtenerRutaExterna();// obtengo el protocolo + dominio a utilizar
	
	ajax.open("POST", dominio+'/Model/Historial/guardarHistorialSesion.php',true); //Envio de los datos del formulario a la url
	// No necesito hacer nada con la contestación, por eso no defino ajax.onreadystatechange
	
		
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); // metod envio POST
	ajax.send('url='+url);

}



/**
 *  ActualizarHistorial: 
 *  		Funcion encargada de cargar una web distinta en el iframe para ser controlada posteriormente, para saber si ha pulsado sobre 
 *  		el historial. Una forma de controlarlo manualmente, compatible para todos los navegadores.
 * 
 **/	

var NumeroPaginasVistasHistorial=0;
var NumeroPaginasVistadas=0;
var paginaActual=0;
var historial=[];
var PaginaCargadaPorCargaXML=false;
var recargandoHistorial=false;
var contadorRecargasHistorial=0;

function ActualizarHistorial(url){
	
	switch(true){
		case (NumeroPaginasVistadas==paginaActual && PaginaCargadaPorCargaXML==false):
			// NumeroPaginasVistasHistorial=0
			 
			 PaginaCargadaPorCargaXML=true
			
			 NumeroPaginasVistadas++;
			 paginaActual=NumeroPaginasVistadas;
			// var hashUnico= new Date().getTime();
			
			 //para solucionarlo recogemos como estan accediendo a la pagina principal para poder llamar a sus funciones.
			
			 historial[NumeroPaginasVistadas]=url;	
			 var dominio=ObtenerRutaExterna();	 
			 Obtenir("historial").src=dominio+"/Model/Historial/historial.php?paginaActual="+ NumeroPaginasVistadas; //+"#"+hashUnico;
			//alert(dominio+"/Model/Historial/historial.php?paginaActual="+ NumeroPaginasVistadas);
		break;
		
		case NumeroPaginasVistadas<paginaActual:
			
		break;
		
		default:
			PaginaCargadaPorCargaXML=false;
		break;
		
	}	

}	

/**
 * Existe un problema de denegacion de servicio por cross domain,
 * para ello es necesrio que lso javascrips esten todos llamados desde ficheros bajo el mismo protocolo y dominio,
 * distingue entre bisuarts.com y www.bisuarts.com
 * Esta funcion recoge los parametros de la url cargada para saber como hemos de cargar los escripts
 */
function ObtenerRutaExterna(){
	
 		//existe el problema de across domain denegation Script
		 var protocoloUrlPrincipal=document.location.protocol;
		 var dominioUrlPrincipal=document.location.host;
		 
		 return protocoloUrlPrincipal+"//"+dominioUrlPrincipal;
}



/**
 * // implementacion en javascrit del metodo isset de php.
 * @param {Object} variable a ver si esa seteada
 */

function isset(nombreVariable) {
    try {
         if (typeof(eval(nombreVariable)) != 'undefined')
         if (eval(nombreVariable) != null)
         return true;
     } catch(e) { }
    return false;
   }
