//var global_portes = 12.20;
var global_idzona_portes; // variable global que asigna la zona para calcular los gastos de envío
var global_carrito_vacio; // variable que verifica si disponemos de artículos en el carrito. La usamos para evitar mostrar el carrito cuando está vacío
var url_inicio = "http://www.latiendadeveronia.com/";

// Función que ejecutamos al pulsar sobre el botón "comprar". Registramos producto en base de datos y mostramos carrito

//var con_comprar = new XHConn();
//var fin_comprar = function (oXML) { document.getElementById('contenedor').innerHTML = oXML.responseText; };
function comprar(idproducto){
	if (idproducto > 0){
		global_carrito_vacio = 0;
		var fin_insert_carrito = function (oXML) {
		var responseXml = oXML.responseXML;
		var articulo = responseXml.documentElement.getElementsByTagName("articulo");	
		var importe_pedido = 0;
		var unidades_pedido = 0;
		for (var i = 0; i < articulo.length; i++) {
			importe_pedido += parseFloat(articulo[i].getAttribute("precio"));
			unidades_pedido += parseFloat(articulo[i].getAttribute("unidades"));
		}
		
		document.location.href = url_inicio+'Mi-Carrito.html';
		};
		new XHConn().connect(url_inicio+"carrito/unidades_carrito.php", "GET", "idproducto="+idproducto+"&accion=inc", fin_insert_carrito);
	} else {
	document.getElementById('contenedor').innerHTML = "<div id=\"cargando_busqueda\"><img src=\""+url_inicio+"img/cargando2.gif\" width=\"40\" height=\"40\" /></div>";
	var con_comprar2 = new XHConn();
	var fin_comprar2 = function (oXML) { document.getElementById('contenedor').innerHTML = oXML.responseText; inicializa();};
	con_comprar2.connect(url_inicio+"carrito.php", "GET", "", fin_comprar2);
	}
}

// Función para visualizar el contenedor del carrito. Se accede desde el enlace del mini-carrito ("ver contenedor del carrito").

function ver_carrito(){
	if (global_carrito_vacio == 1){
		alert ("El carrito de la compra está vacío");
	} else {
		//comprar(0);
		document.location.href = url_inicio+'Mi-Carrito.html';
	}
}

// Añade o descuenta unidades mediante botonera

function unidades_carrito(idproducto,idmedida,accion){
	if((document.getElementById('carrito_unid_'+idmedida).innerHTML.indexOf("SPAN>0<SPAN") == -1)||(accion == "inc")){
		// El filtro inicial evita que decrementemos las unidades a 0 (verifica si las unidades actuales son igual a 1)
		if((document.getElementById('carrito_unid_'+idmedida).innerHTML.indexOf("SPAN>1<SPAN") == -1)||(accion == "inc")){
			var fin_unidades_carrito = function (oXML) {
			var responseXml = oXML.responseXML;
			var articulo = responseXml.documentElement.getElementsByTagName("articulo");	
				var importe_pedido = 0;
				var unidades_pedido = 0;
				for (var i = 0; i < articulo.length; i++) {
					if (articulo[i].getAttribute("actualizado") == "1"){
						var idproducto = articulo[i].getAttribute("idproducto");
						var unidades = articulo[i].getAttribute("unidades");
						var idmedida = articulo[i].getAttribute("idmedida");
						var precio = articulo[i].getAttribute("precio");
						var precio_original = articulo[i].getAttribute("precio_original");
						document.getElementById('carrito_unid_'+idmedida).innerHTML = '<a href="javascript:set_campo_unidades('+idproducto+','+idmedida+','+unidades+');" class="txt12 color1 negrita ficha2"><span class="negro"> &lt; </span>' + unidades + '<span class="negro"> &gt;</span></a>';
					}
					importe_pedido += parseFloat(articulo[i].getAttribute("precio"));
					unidades_pedido += parseFloat(articulo[i].getAttribute("unidades"));
				}
				var precio_unidad = precio/unidades;
				if(precio_original != 0){
					var importe_antes = "<br> <span class='txt9 rojo_tachado'><strike>"+formatea_importe(precio_original)+"</strike></span>";
				} else {
					var importe_antes = "";
				}
				document.getElementById('carrito_imp_unid_'+idmedida).innerHTML = formatea_importe(precio_unidad)+importe_antes;
				document.getElementById('carrito_imp_'+idmedida).innerHTML = formatea_importe(precio);
				document.getElementById('carrito_imp_pedido').innerHTML = formatea_importe(importe_pedido);		
				document.getElementById('unidades_pedido').innerHTML = unidades_pedido;
				global_carrito_vacio = 0;
				
				document.getElementById('imp_total').innerHTML = "<img src=\""+url_inicio+"img/cargando3.gif\" width=\"18\" height=\"22\" />";
				totaliza_carrito();
				//totaliza_carrito_ficha(idproducto);
			};
		
			new XHConn().connect(url_inicio+"carrito/unidades_carrito.php", "GET", "idproducto="+idproducto+"&idmedida="+idmedida+"&accion="+accion, fin_unidades_carrito);
		} else {
			if(confirm('Si acepta, eliminará este producto de su carrito ¿Desea continuar?')){
				eliminar_articulo_ficha(idproducto,idmedida);
			}		
		}
	}
}

function unidades_carrito_ficha(idproducto,idmedida,accion){
	if((document.getElementById('carrito_unid_'+idmedida).innerHTML.indexOf("SPAN>0<SPAN") == -1)||(accion == "inc")){
		// El filtro inicial evita que decrementemos las unidades a 0 (verifica si las unidades actuales son igual a 1)
		if((document.getElementById('carrito_unid_'+idmedida).innerHTML.indexOf("SPAN>1<SPAN") == -1)||(accion == "inc")){
			var fin_unidades_carrito = function (oXML) {
			var responseXml = oXML.responseXML;
			var articulo = responseXml.documentElement.getElementsByTagName("articulo");	
				var importe_pedido = 0;
				var unidades_pedido = 0;
				for (var i = 0; i < articulo.length; i++) {
					if (articulo[i].getAttribute("actualizado") == "1"){
						var idproducto = articulo[i].getAttribute("idproducto");
						var unidades = articulo[i].getAttribute("unidades");
						var idmedida = articulo[i].getAttribute("idmedida");
						var precio = articulo[i].getAttribute("precio");
						document.getElementById('carrito_unid_'+idmedida).innerHTML = '<a href="javascript:set_campo_unidades_ficha('+idproducto+','+idmedida+','+unidades+');" class="txt12 color1 negrita ficha2"><span class="negro"> &lt; </span>' + unidades + '<span class="negro"> &gt;</span></a>';
						var precio_unidad = precio;						
						document.getElementById('carrito_imp_unid_'+idmedida).innerHTML = formatea_importe(precio_unidad);						
					}
					importe_pedido += parseFloat(articulo[i].getAttribute("precio"));
					unidades_pedido += parseFloat(articulo[i].getAttribute("unidades"));
				}
				global_carrito_vacio = 0;
				totaliza_carrito_ficha(idproducto);
			};
		
			new XHConn().connect(url_inicio+"carrito/unidades_carrito_ficha.php", "GET", "idproducto="+idproducto+"&idmedida="+idmedida+"&accion="+accion, fin_unidades_carrito);
		} else {
			if(confirm('Si acepta, eliminará este producto de su carrito ¿Desea continuar?')){
				eliminar_articulo_ficha(idproducto,idmedida);
			}		
		}
	}
}

// Inserta input de edición de unidades al hacer clic

function set_campo_unidades(idproducto,idmedida,unidades){
	if(unidades != 0){
		document.getElementById('carrito_unid_'+idmedida).innerHTML = '<span class="negro">&lt; </span><input type="text" name="edit_unidades_'+idmedida+'" id="edit_unidades_'+idmedida+'" class="input_unidades_carrito" value="'+unidades+'" maxlength="4" onkeyup="edicion_manual_unidades('+idproducto+','+idmedida+',this.value);" onkeypress="return verifica_campo_unidades(event)"/><span class="negro"> &gt;</span>';
	} 
}

function set_campo_unidades_ficha(idproducto,idmedida,unidades){
	if(unidades != 0){
		document.getElementById('carrito_unid_'+idmedida).innerHTML = '<span class="negro">&lt; </span><input type="text" name="edit_unidades_'+idmedida+'" id="edit_unidades_'+idmedida+'" class="input_unidades_carrito" value="'+unidades+'" maxlength="4" onkeyup="edicion_manual_unidades_ficha('+idproducto+','+idmedida+',this.value);" onkeypress="return verifica_campo_unidades(event)"/><span class="negro"> &gt;</span>';
	} 
}

// Filtro de verificación que obliga a insertra valores numéricos 0-9 en input de edición de unidades

function verifica_campo_unidades(evt){
    var charCode = (evt.which) ? evt.which : event.keyCode
    if (charCode > 31 && (charCode < 48 || charCode > 57)){
    	return false;
	} else {
    	return true;
	}
}

// Registra en base de datos el valor de unidades en input de edición (se ejecuta en el evento onkeyup del input)

function edicion_manual_unidades(idproducto,idmedida,unidades_edicion){
	if ((unidades_edicion != "") && (unidades_edicion != "0")){		
	var fin_edicion_unidades = function (oXML) {
	var responseXml = oXML.responseXML;
	var articulo = responseXml.documentElement.getElementsByTagName("articulo");	
		var importe_pedido = 0;
		var unidades_pedido = 0;
		for (var i = 0; i < articulo.length; i++) {
			if (articulo[i].getAttribute("actualizado") == "1"){
				var idproducto = articulo[i].getAttribute("idproducto");
				var idmedida = articulo[i].getAttribute("idmedida");				
				var unidades = articulo[i].getAttribute("unidades");
				var precio = articulo[i].getAttribute("precio");
				var precio_original = articulo[i].getAttribute("precio_original");				
			}
			importe_pedido += parseFloat(articulo[i].getAttribute("precio"));
			unidades_pedido += parseFloat(articulo[i].getAttribute("unidades"));
		}
		var precio_unidad = precio/unidades;
		if(precio_original != 0){
			var importe_antes = "<br> <span class='txt9 rojo_tachado'><strike>"+formatea_importe(precio_original)+"</strike></span>";
		} else {
			var importe_antes = "";
		}		
		document.getElementById('carrito_imp_unid_'+idmedida).innerHTML = formatea_importe(precio_unidad)+importe_antes;
		document.getElementById('carrito_imp_'+idmedida).innerHTML = formatea_importe(precio);
		document.getElementById('carrito_imp_pedido').innerHTML = formatea_importe(importe_pedido);
		document.getElementById('unidades_pedido').innerHTML = unidades_pedido;
		global_carrito_vacio = 0;
		
		document.getElementById('imp_total').innerHTML = "<img src=\""+url_inicio+"img/cargando3.gif\" width=\"18\" height=\"22\" />";
		totaliza_carrito();
		//totaliza_carrito_ficha(idproducto);		
	};

	new XHConn().connect(url_inicio+"carrito/edit_unidades_carrito.php", "GET", "idproducto="+idproducto+"&idmedida="+idmedida+"&unidades="+unidades_edicion, fin_edicion_unidades);
	
	}

}

function edicion_manual_unidades_ficha(idproducto,idmedida,unidades_edicion){
//	if (unidades_edicion != 0){	
	if (unidades_edicion == 0){		
		eliminar_articulo_ficha(idproducto,idmedida);
	} else {
	var fin_edicion_unidades = function (oXML) {		
		var responseXml = oXML.responseXML;
		var articulo = responseXml.documentElement.getElementsByTagName("articulo");	
			var importe_pedido = 0;
			var unidades_pedido = 0;
			for (var i = 0; i < articulo.length; i++) {		
				if (articulo[i].getAttribute("actualizado") == "1"){
					var idproducto = articulo[i].getAttribute("idproducto");
					var idmedida = articulo[i].getAttribute("idmedida");				
					var unidades = articulo[i].getAttribute("unidades");
					var precio = articulo[i].getAttribute("precio");
					var precio_unidad = precio/unidades;
					document.getElementById('carrito_imp_unid_'+idmedida).innerHTML = formatea_importe(precio_unidad);
				}
				importe_pedido += parseFloat(articulo[i].getAttribute("precio"));
				unidades_pedido += parseFloat(articulo[i].getAttribute("unidades"));
			}	
			document.getElementById('carrito_imp_'+idmedida).innerHTML = formatea_importe(precio);
			document.getElementById('carrito_imp_pedido').innerHTML = formatea_importe(importe_pedido);
			document.getElementById('unidades_pedido').innerHTML = unidades_pedido;
			global_carrito_vacio = 0;
			
			document.getElementById('imp_total').innerHTML = "<img src=\""+url_inicio+"img/cargando3.gif\" width=\"18\" height=\"22\" />";
			totaliza_carrito();		
			totaliza_carrito_ficha(idproducto);		
	};

	new XHConn().connect(url_inicio+"carrito/edit_unidades_carrito.php", "GET", "idproducto="+idproducto+"&idmedida="+idmedida+"&unidades="+unidades_edicion, fin_edicion_unidades);	
	}
}


function edicion_manual_unidades_ficha2(idproducto,idmedida,unidades_edicion){
	if (unidades_edicion == 0){		
		eliminar_articulo_ficha2(idproducto,idmedida);
	} else {
	var fin_edicion_unidades = function (oXML) {				
		var responseXml = oXML.responseXML;
		var articulo = responseXml.documentElement.getElementsByTagName("articulo");	
			var importe_pedido = 0;
			var unidades_pedido = 0;
			for (var i = 0; i < articulo.length; i++) {		
				if (articulo[i].getAttribute("actualizado") == "1"){
					var idproducto = articulo[i].getAttribute("idproducto");
					var idmedida = articulo[i].getAttribute("idmedida");				
					var unidades = articulo[i].getAttribute("unidades");
					var precio = articulo[i].getAttribute("precio");
					var precio_unidad = precio/unidades;
					document.getElementById('carrito_unid_'+idmedida).value = unidades;
				}
				importe_pedido += parseFloat(articulo[i].getAttribute("precio"));
				unidades_pedido += parseFloat(articulo[i].getAttribute("unidades"));
			}	
			document.getElementById('carrito_imp_'+idmedida).innerHTML = formatea_importe(precio);
			document.getElementById('carrito_imp_pedido').innerHTML = formatea_importe(importe_pedido);
			document.getElementById('unidades_pedido').innerHTML = unidades_pedido;
			global_carrito_vacio = 0;
			
			document.getElementById('imp_total').innerHTML = "<img src=\""+url_inicio+"img/cargando3.gif\" width=\"18\" height=\"22\" />";
			totaliza_carrito();		
			totaliza_carrito_ficha(idproducto);	
	};

	new XHConn().connect(url_inicio+"carrito/edit_unidades_carrito.php", "GET", "idproducto="+idproducto+"&idmedida="+idmedida+"&unidades="+unidades_edicion, fin_edicion_unidades);	
	}
}


function func_ficha(idproducto){
	document.location.href = url_inicio+"ficha.php?idproducto="+idproducto;
}



// Elimina artículos del carrito. Borra td y registro de la base de datos.

function eliminar_articulo(idmedida){
	var articulo = document.getElementById('articulo_'+idmedida);
	var padre_articulo = articulo.parentNode;
	padre_articulo.removeChild(articulo);
	
	var fin_eliminar_articulo = function (oXML) {
	var responseXml = oXML.responseXML;
	var articulo = responseXml.documentElement.getElementsByTagName("articulo");	
		var importe_pedido = 0;
		var unidades_pedido = 0;
		for (var i = 0; i < articulo.length; i++) {
			importe_pedido += parseFloat(articulo[i].getAttribute("precio"));
			unidades_pedido += parseFloat(articulo[i].getAttribute("unidades"));
		}
		document.getElementById('carrito_imp_pedido').innerHTML = formatea_importe(importe_pedido);
		document.getElementById('unidades_pedido').innerHTML = unidades_pedido;

		document.getElementById('imp_total').innerHTML = "<img src=\""+url_inicio+"img/cargando3.gif\" width=\"18\" height=\"22\" />";
		totaliza_carrito();
		if (unidades_pedido == 0){ 
			global_carrito_vacio = 1;
			seguir_comprando();
		} 
	};
	
	new XHConn().connect(url_inicio+"carrito/borrar_articulo.php", "GET", "idmedida="+idmedida, fin_eliminar_articulo);
}

function eliminar_articulo_ficha(idproducto,idmedida){
	var unidades_reset = 0;	
	document.getElementById('carrito_unid_'+idmedida).innerHTML = '<a href="javascript:set_campo_unidades('+idproducto+','+idmedida+',0);" class="txt12 color1 negrita ficha2"><span class="negro"> &lt; </span>' + unidades_reset + '<span class="negro"> &gt;</span></a>';			
	var fin_eliminar_articulo_ficha = function (oXML) {
		var responseXml = oXML.responseXML;
		var articulo = responseXml.documentElement.getElementsByTagName("articulo");	
		var importe_pedido = 0;
		var unidades_pedido = 0;
		var idmedida_pedido = 0;
		for (var i = 0; i < articulo.length; i++) {
			importe_pedido = parseFloat(articulo[i].getAttribute("precio"));
			unidades_pedido = parseFloat(articulo[i].getAttribute("unidades"));
			idmedida_pedido = articulo[i].getAttribute("idmedida");		
			if(document.getElementById('carrito_unid_'+idmedida_pedido)){ //filtro para si hay mas articulos en el carrito
			document.getElementById('carrito_unid_'+idmedida_pedido).innerHTML = '<a href="javascript:set_campo_unidades('+idproducto+','+idmedida_pedido+','+unidades_pedido+');" class="txt12 color1 negrita ficha2"><span class="negro"> &lt; </span>' + unidades_pedido + '<span class="negro"> &gt;</span></a>';			
			}
		}

		totaliza_carrito();
		totaliza_carrito_ficha(idproducto);
		if (unidades_pedido == 0){ 
			global_carrito_vacio = 1;
		} 
	};
	
	new XHConn().connect(url_inicio+"carrito/borrar_articulo.php", "GET", "idmedida="+idmedida, fin_eliminar_articulo_ficha);
}

function eliminar_articulo_ficha2(idproducto,idmedida){
	var unidades_reset = 0;	
	document.getElementById('carrito_unid_'+idmedida).value = 0;	
	var fin_eliminar_articulo_ficha = function (oXML) {
		var responseXml = oXML.responseXML;
		var articulo = responseXml.documentElement.getElementsByTagName("articulo");	
		var importe_pedido = 0;
		var unidades_pedido = 0;
		var idmedida_pedido = 0;
		for (var i = 0; i < articulo.length; i++) {
			importe_pedido = parseFloat(articulo[i].getAttribute("precio"));
			unidades_pedido = parseFloat(articulo[i].getAttribute("unidades"));
			idmedida_pedido = articulo[i].getAttribute("idmedida");		
			if(document.getElementById('carrito_unid_'+idmedida_pedido)){  //filtro para si hay mas articulos en el carrito
				document.getElementById('carrito_unid_'+idmedida_pedido).value = unidades_pedido;		
			}
		}

		totaliza_carrito();
		totaliza_carrito_ficha(idproducto);
		if (unidades_pedido == 0){ 
			global_carrito_vacio = 1;
		} 
	};
	
	new XHConn().connect(url_inicio+"carrito/borrar_articulo.php", "GET", "idmedida="+idmedida, fin_eliminar_articulo_ficha);
}


// Función para formatear los importes (redondeo a dos decimales, separador de miles con comas y añade símbolo de euro).

function formatea_importe(num) { 
	num = num.toString().replace(/$|,/g,''); 
	if(isNaN(num)) 
	num = "0"; 
	sign = (num == (num = Math.abs(num))); 
	num = Math.floor(num*100+0.50000000001); 
	cents = num%100; 
	num = Math.floor(num/100).toString(); 
	if(cents<10) 
	cents = "0" + cents; 
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++) 
	num = num.substring(0,num.length-(4*i+3))+'.'+ 
	num.substring(num.length-(4*i+3)); 
	return (((sign)?'':'-') + num + ',' + cents + ' &euro;'); 
}

// Inicializa variable global de idzona_portes según valor de sesión

function ini_idzona_portes(idzona){
	global_idzona_portes = idzona;
}

// Función para establecer los gastos de envío en función del número de unidades y la zona de envío seleccionada


// Función para aplicar descuento en función del importe de la compra

function set_descuento(){
	var importe_pedido = document.getElementById('carrito_imp_pedido').innerHTML;
	importe_pedido = elimina_formato_importe(importe_pedido);
	
	if (importe_pedido >= 50){
	var descuento = importe_pedido + ((importe_pedido*4)/100);
	}
	if (importe_pedido >= 100){
	var descuento = importe_pedido + ((importe_pedido*6)/100);
	}

	var total_carrito = importe_pedido - descuento;
	document.getElementById('imp_descuento').innerHTML = formatea_importe(total_carrito);
	totaliza_carrito();
}

// Función para totalizar el coste total de la compra (importe + portes)

function totaliza_carrito(){
	var importe_pedido = document.getElementById('carrito_imp_pedido').innerHTML;
	importe_pedido = elimina_formato_importe(importe_pedido);
	//var descuento = document.getElementById('imp_descuento').innerHTML;
	//descuento = elimina_formato_importe(descuento);
	var total_carrito = importe_pedido;
	document.getElementById('imp_total').innerHTML = formatea_importe(total_carrito);
	historico_guarda_estado(); // Guarda histórico virtual
}

function totaliza_carrito_ficha(idproducto){
	if(document.getElementById('unidades_pedido_ficha')){
		var fin_unidades_carrito_ficha = function (oXML) {
		var responseXml = oXML.responseXML;
		var articulo = responseXml.documentElement.getElementsByTagName("articulo");	
			var importe_total = 0;
			var importe_pedido = 0;
			var unidades_pedido = 0;
			for (var i = 0; i < articulo.length; i++) {
				if (articulo[i].getAttribute("actualizado") == "1"){
					var idproducto = articulo[i].getAttribute("idproducto");
					var unidades = articulo[i].getAttribute("unidades");
					var idmedida = articulo[i].getAttribute("idmedida");
					var precio = articulo[i].getAttribute("precio");
				}
				importe_pedido += parseFloat(articulo[i].getAttribute("precio"));
				unidades_pedido += parseFloat(articulo[i].getAttribute("unidades"));
				importe_total += parseFloat(articulo[i].getAttribute("precio"))*parseFloat(articulo[i].getAttribute("unidades"));
			}
			document.getElementById('imp_total_ficha').innerHTML = formatea_importe(importe_total);	
			document.getElementById('unidades_pedido_ficha').innerHTML = unidades_pedido;
			verifica_mini_carrito();
		};
	
		new XHConn().connect(url_inicio+"carrito/actualiza_carrito_ficha.php", "GET", "idproducto="+idproducto, fin_unidades_carrito_ficha);
	}		
}

// Función para eliminar formato a los importes y convertir los strings en floats

function elimina_formato_importe(importe){
	importe = importe.replace(/ €/,"");
	importe = importe.replace(/\./g,"");
	importe = importe.replace(/,/,".");
	importe = parseFloat(importe);
	return importe;
}

// Función que verifica la búsqueda anterior cuando pulsamos "seguir comprando" desde el carrito. Si no accedimos desde una búsqueda, recarga la página.

function seguir_comprando(){
		document.location.href = url_inicio;
}

function verifica_mini_carrito(){
	if(document.getElementById('mini_carrito')){
		cargar_mini_carrito();
	}
}

function cargar_mini_carrito(){
	var con_cargar_mini_carrito = new XHConn();
	var fin_cargar_mini_carrito = function (oXML) { document.getElementById('mini_carrito').innerHTML = oXML.responseText; };
	con_cargar_mini_carrito.connect(url_inicio+"mini_carrito.php", "GET", "", fin_cargar_mini_carrito);			
}