// Mostrar los hijos del menú de navegación seleccionado
function mostrarHijos(navMenu) {
	// Ocultar todos los menús secundarios
	$("#a_navcategorias div").css("display","none");
	// Mostrar hijos del menú seleccionado
	$("#nav" + navMenu).css("display","block");
	
	if ($("#nav" + navMenu).html()) return false;
	else return true;
}

// Borrar elemento del carrito
function borrarElem(idElem) {
	ajaxCarrito("/inc/aplicacionesPerso/tienda/carrito/ajax-carrito.asp",location.search.replace("?","") + "&borrarElem=" + idElem,"capaCarrito",true);
	
	return false;
}

// Borrar todos los artículos del carrito
function borrarCarrito(idElem) {
	ajaxCarrito("/inc/aplicacionesPerso/tienda/carrito/ajax-carrito.asp",location.search.replace("?","") + "&borrarCarrito=si","capaCarrito",true);
	
	return false;
}

// Validación del carrito
function validarCarrito(oFormulario) {
	var sParametros, sTipo, sNombre, sValor, bOk, nombrefichero, sCapa;

	bOk = true;
	sParametros = "";
	sCapa = "a_alerta";

	for(var i=0;i<oFormulario.elements.length;i++){

	 	sTipo = oFormulario.elements[i].type;

	 	if(sTipo=="text") {

			sNombre = oFormulario.elements[i].name;
			sValor  = escape(oFormulario.elements[i].value);
			
			if( sValor != "" ) {
				sParametros +=sNombre+"="+sValor;
				sParametros +="&";
			}

		}

		// Si existe el campo oculto IdForm , mostramos los mensajes en una capa específica
		if(sTipo=="hidden" && oFormulario.elements[i].name=="IdForm") {
			sCapa = "a_alerta_" + oFormulario.elements[i].value;
		}

		// La talla es guardada en un elemento hidden, la tenemos que pasar tambien en los parametros
		if(sTipo=="hidden" && oFormulario.elements[i].name.indexOf("talla_") >= 0) {
			sNombre = oFormulario.elements[i].name;
			sValor  = escape(oFormulario.elements[i].value);
			
			if( sValor != "" ) {
				sParametros +=sNombre+"="+sValor;
				sParametros +="&";
			}
		}
	}
	
	ajaxCarrito("/inc/aplicacionesPerso/tienda/carrito/validar.asp",sParametros,sCapa,true,oFormulario);

	return false;
}

//---------------------------------------------------------------------
// Carga una página web mediante AJAX.
// Parámetros:
// - Url a cargar
// - Parámetros para la url
// - Capa para cargar el resultado (NO OBLIGATORIO)
// - Petición asincrona (true/false) (NO OBLIGATORIO, ASINCRONO POR DEFECTO) 
//		ATENCIÓN -- EN EL FIREFOX FUNCIONA DE FORMA ASINCRONA --
// - Objeto representando al formulario a validar (NO OBLIGATORIO)
//---------------------------------------------------------------------
function ajaxCarrito(){
	
	var sFichero	= arguments[0];
	var sParametros	= arguments[1];
	var sDiv		= arguments[2];
	var bAsincrono	= (arguments[3]!=null) ? arguments[3] : true;
	var oForm		= arguments[4];
	
	var peticion = false;
	if (window.XMLHttpRequest){
		peticion = new XMLHttpRequest();
	}else if (window.ActiveXObject) {
		peticion = new ActiveXObject("Microsoft.XMLHTTP");
	}

	if(peticion) {
  		peticion.open("POST", sFichero);
  		peticion.setRequestHeader('Content-Type','application/x-www-form-urlencoded');

	  	if (sDiv!=""){devolverResultadoCarrito(peticion, sDiv, oForm);}
		peticion.send(sParametros); 
	}
}

//---------------------------------------------------------------------
// Devuelve el resultado de la petición AJAX.
// Parámetros:
// - Objeto httpRequest
// - Nombre de la capa para escribir los resultados
// - Objeto representado al formulario a validar (NO OBLIGATORIO)
//		Submita el formulario si no hay errores de validación
//---------------------------------------------------------------------
function devolverResultadoCarrito(){

	var peticion	= arguments[0];
	var sDiv		= arguments[1];
	var oFormulario	= arguments[2];
	
	var obj = document.getElementById(sDiv);
	if(obj){
		peticion.onreadystatechange = function(){

			if (peticion.readyState == 4){

				// Submitar el formulario
				if (!peticion.responseText && oFormulario){
					// Ocultar la capa de los errores de ASP
					if(document.getElementById("errorvalidacion")) document.getElementById("errorvalidacion").style.display = "none";
					
					// Actualizar la capa del carrito
					ajaxCarrito("/inc/aplicacionesPerso/tienda/carrito/ajax-carrito.asp",location.search.replace("?",""),"capaCarrito",true);
				}
				else {
					obj.innerHTML = peticion.responseText;
					
					if(oFormulario!="") {
						// Ocultar la capa de los errores de ASP
						if(document.getElementById("errorvalidacion") && obj.innerHTML=="") document.getElementById("errorvalidacion").style.display = "none";
		
						// Mostrar alertas 
						obj.style.display='block';
						if(sDiv!="capaCarrito") location.hash = sDiv;
						else eventosCarrito();
					}
				}
			}
		}
	}
}

// Añadir unidad a un artículo del carrito
function addUnidad(idArticulo, iInc) {
	var iValor = $("#unidades_" + idArticulo).val();
	if((parseInt(iValor,10) + iInc) > 0) {
		$("#unidades_" + idArticulo).val(parseInt(iValor,10) + iInc);
		
		validarCarrito(document.getElementById("carritoForm"));
	}
}

// Cargar los eventos del carrito
function eventosCarrito() {
	// Poner las unidades de sólo lectura
	$("input [name^=unidades_]").attr("readonly","readonly");
	
	// Ocultar botón de actualizar
	$("#actualizar").css("display","none");
	
	// Mostrar botones de incremento
	$("ul.oculto").css("display","block");
}

// Cargar los eventos del pedido
function eventosPedido() {
	// Mostrar texto de modificación
	$("p.oculto").css("display","block");
	
	// Ocultar formulario modificación
	$("div.form_tipo1").css("display","none");
}

function modificarDatosEnvio() {
	$("div.form_tipo1").css("display","block");
	
	return false;
}
