//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.memotoner.es/";

// 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"));
		}
		
		//set_mini_carrito();
		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';
	}
}

// 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(url_inicio+"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 color1 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=\""+url_inicio+"img/cargando3.gif\" width=\"18\" height=\"22\" />";
			totaliza_carrito();
		};
	
		new XHConn().connect(url_inicio+"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="4" 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");
			}
			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=\""+url_inicio+"img/cargando3.gif\" width=\"18\" height=\"22\" />";
		totaliza_carrito();
	};

	new XHConn().connect(url_inicio+"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=\""+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", "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;
}


// 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
}

// 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(contenedor){
	if(document.getElementById('mini_carrito')){
		cargar_mini_carrito(contenedor);
	} else {
		obtener_alto(contenedor); 
	}
}

function cargar_mini_carrito(contenedor){
	var con_cargar_mini_carrito = new XHConn();
	var fin_cargar_mini_carrito = function (oXML) { document.getElementById('mini_carrito').innerHTML = oXML.responseText; obtener_alto(contenedor); };
	con_cargar_mini_carrito.connect(url_inicio+"mini_carrito.php", "GET", "", fin_cargar_mini_carrito);			
}

function func_ficha(idproducto,categoria){
	document.location.href = url_inicio+"ficha.php?idproducto="+idproducto+"&idsubcategoria="+categoria;
}