//var global_portes = 12.20;
var global_idprovincia; // 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

// 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('contenido').innerHTML = oXML.responseText; incrementa_contador_historico(); historico_guarda_estado();};
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"));
		}
		
		recarga_carrito();
		set_mini_carrito();
		};
		new XHConn().connect("http://www.tuvinoencasa.com/carrito/unidades_carrito.php", "GET", "idproducto="+idproducto+"&accion=inc", fin_insert_carrito);
	}
	else
	{
		recarga_carrito();	
	}
}

//Para solucionar el problema con Mozilla que tarda en cargar el resultado y nos deja el carrito en blanco aunque realmente hay producto, llamamos a esta función asi forzamos que espere
function recarga_carrito()
{
	document.getElementById('contenido').innerHTML = "<div id=\"cargando_busqueda\"><img src=\"http://www.tuvinoencasa.com/img/cargando2.gif\" width=\"40\" height=\"40\" /></div>";
	con_comprar.connect("http://www.tuvinoencasa.com/carrito.php", "GET", "", fin_comprar);	
}

// Función para visualizar el contenido del carrito. Se accede desde el enlace del mini-carrito ("ver contenido 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 = 'http://www.tuvinoencasa.com/Mi-Carrito.html';
	}
}

// Establece datos relevantes del pedido en el mini-carrito (en cabecera)

function set_mini_carrito(){
	var fin_mini_carrito = function (oXML) {
		var responseXml = oXML.responseXML;
		var articulo = responseXml.documentElement.getElementsByTagName("datos");	
		var importe = parseFloat(articulo[0].getAttribute("importe"));
		var unidades = parseFloat(articulo[0].getAttribute("unidades"));
		document.getElementById('minicarrito_imp_total').innerHTML = '<b>' + formatea_importe(importe) + '</b>';
		document.getElementById('minicarrito_total_unidades').innerHTML = '<p>' + unidades + ' artículos seleccionados</p>';
		if (importe > 0){ global_carrito_vacio = 0; } else { global_carrito_vacio = 1; }
	};
	new XHConn().connect("http://www.tuvinoencasa.com/carrito/set_mini_carrito.php", "GET", "", fin_mini_carrito);
}


// Añade o descuenta unidades mediante botonera

function unidades_carrito(idproducto,accion){
	// El filtro inicial evita que decrementemos las unidades a 0 (verifica si las unidades actuales son igual a 1)
	if((document.getElementById('carrito_unid_'+idproducto).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 precio = articulo[i].getAttribute("precio");
				}
				importe_pedido += parseFloat(articulo[i].getAttribute("precio"));
				unidades_pedido += parseFloat(articulo[i].getAttribute("unidades"));
			}
			document.getElementById('carrito_unid_'+idproducto).innerHTML = '<a href="javascript:set_campo_unidades('+idproducto+','+unidades+');" class="txt12 vino_tinto negrita"><span class="negro"> &lt; </span>' + unidades + '<span class="negro"> &gt;</span></a>';
			var precio_unidad = precio/unidades;
			document.getElementById('carrito_imp_unid_'+idproducto).innerHTML = formatea_importe(precio_unidad);
			document.getElementById('carrito_imp_'+idproducto).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=\"http://www.tuvinoencasa.com/img/cargando3.gif\" width=\"18\" height=\"22\" />";
			//document.getElementById('imp_descuento').innerHTML = "<img src=\"http://www.tuvinoencasa.com/img/cargando3.gif\" width=\"16\" height=\"20\" />";
			
			//recalculamos los portes segun el peso , unidades y zona para mas tarde sacar el valor y sumarlo
			set_portes(global_idprovincia);
		};
	
		new XHConn().connect("http://www.tuvinoencasa.com/carrito/unidades_carrito.php", "GET", "idproducto="+idproducto+"&accion="+accion, fin_unidades_carrito);
	}
}

// Inserta input de edición de unidades al hacer clic

function set_campo_unidades(idproducto,unidades){
	document.getElementById('carrito_unid_'+idproducto).innerHTML = '<span class="negro">&lt; </span><input type="text" name="edit_unidades_'+idproducto+'" id="edit_unidades_'+idproducto+'" class="input_unidades_carrito" value="'+unidades+'" maxlength="3" onkeyup="edicion_manual_unidades('+idproducto+',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,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 unidades = articulo[i].getAttribute("unidades");
				var precio = articulo[i].getAttribute("precio");
				document.getElementById("edit_unidades_"+idproducto).value = unidades;
			}
			importe_pedido += parseFloat(articulo[i].getAttribute("precio"));
			unidades_pedido += parseFloat(articulo[i].getAttribute("unidades"));
		}
		var precio_unidad = precio/unidades;
		document.getElementById('carrito_imp_unid_'+idproducto).innerHTML = formatea_importe(precio_unidad);
		document.getElementById('carrito_imp_'+idproducto).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=\"http://www.tuvinoencasa.com/img/cargando3.gif\" width=\"18\" height=\"22\" />";
		//document.getElementById('imp_descuento').innerHTML = "<img src=\"http://www.tuvinoencasa.com/img/cargando3.gif\" width=\"16\" height=\"20\" />";
		
		//recalculamos los portes segun el peso , unidades y zona para mas tarde sacar el valor y sumarlo
		set_portes(global_idprovincia);
	};

	new XHConn().connect("http://www.tuvinoencasa.com/carrito/edit_unidades_carrito.php", "GET", "idproducto="+idproducto+"&unidades="+unidades_edicion, fin_edicion_unidades);
	
	}

}

// Elimina artículos del carrito. Borra td y registro de la base de datos.

function eliminar_articulo(idproducto){
	var articulo = document.getElementById('articulo_'+idproducto);
	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=\"http://www.tuvinoencasa.com/img/cargando3.gif\" width=\"18\" height=\"22\" />";
		//document.getElementById('imp_descuento').innerHTML = "<img src=\"http://www.tuvinoencasa.com/img/cargando3.gif\" width=\"16\" height=\"20\" />";
		//setTimeout('set_descuento()',1000);
		
		//recalculamos los portes segun el peso , unidades y zona para mas tarde sacar el valor y sumarlo
		set_portes(global_idprovincia);
		//set_mini_carrito();
		
		if (unidades_pedido == 0){ 
			global_carrito_vacio = 1;
			seguir_comprando();
		} 
	};
	
	new XHConn().connect("http://www.tuvinoencasa.com/carrito/borrar_articulo.php", "GET", "idproducto="+idproducto, fin_eliminar_articulo);
}


// 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;
}
*/
function ini_idprovincia(idprovincia){
	global_idprovincia = idprovincia;
}

// Función para establecer los gastos de envío en función del número de unidades y la zona de envío seleccionada

function set_portes(idprovincia)
{
	var fin_portes = function (oXML) {
		var responseXml = oXML.responseXML;
		var xml_portes = responseXml.documentElement.getElementsByTagName("portes");	
		var coste_portes = parseFloat(xml_portes[0].getAttribute("coste"));
		document.getElementById('imp_portes').innerHTML = formatea_importe(coste_portes);
		global_idprovincia = idprovincia;
		
		totaliza_carrito();
		set_mini_carrito();
	}
	
	new XHConn().connect("http://www.tuvinoencasa.com/carrito/portes.php", "GET", "idprovincia="+idprovincia, fin_portes);
}


// Función para establecer los gastos de envío en función del número de unidades y la zona de envío seleccionada en datos_envio_factura.php

function set_portes_datos(idprovincia)
{
	var fin_portes = function (oXML) {
		var responseXml = oXML.responseXML;
		var xml_portes = responseXml.documentElement.getElementsByTagName("portes");	
		var coste_portes = parseFloat(xml_portes[0].getAttribute("coste"));

		global_idprovincia = idprovincia;

		set_mini_carrito();
	}
	
	new XHConn().connect("http://www.tuvinoencasa.com/carrito/portes.php", "GET", "idprovincia="+idprovincia, fin_portes);
}


// 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 + descuento;
	var portes = document.getElementById('imp_portes').innerHTML;
	portes = elimina_formato_importe(portes);
	var total_carrito = importe_pedido+portes;
	document.getElementById('imp_total').innerHTML = formatea_importe(total_carrito);
	historico_guarda_estado(); // Guarda histórico virtual
}

// 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(){
	if ((global_buscar_nombre == "") && (global_buscar_por_tipo == "") && (global_buscar_momento == "")){
		document.location.href = 'http://www.tuvinoencasa.com/';
	} else {
		func_buscar();
	}
}


