/* Gestión de los atributos dinámicos */
function marcaOpcion(opcion,combo){
	var c = document.getElementById(combo);
	if ( (opcion != "null") && (c != null) ){
		opts = c.options;
		for ( var a = 0; a < opts.length; a++)
		  if ( opts[a].text == opcion )
			  opts[a].selected = true;  
	}
}

function seleccionaOpcion(){
	
	var precio = document.getElementById("precioBase");
	var ivaAplicado = document.getElementById("ivaAplicado");
	var nombreIva = document.getElementById("nombreIva");
  	var listaIntervalos = document.getElementById("listaIntervalos");	
  	var numUnidades = document.getElementById("num_unidades");
  	var textoOpciones = document.getElementById("textoOpciones");
  	textoOpciones.value = "";

	if (numUnidades != null && numUnidades.value != "")
	{	
		if (precio != null )
			precio = parseFloat(precio.value);
		else
			precio = 0;
			
		precio = damePrecioBase(precio, listaIntervalos.value, numUnidades.value);
		
		var atributosSeparador = document.getElementById("atributos");
		var listaAtributos = atributosSeparador.value.split('@');
		var valor = precio;
		for (var i = 0; i < listaAtributos.length; i++)
		{
			var idSel =  listaAtributos[i];
			if (idSel != null && idSel.length > 0)
			{
					var selector = document.getElementById(idSel);
					valor = valor + parseFloat(selector.options[selector.options.selectedIndex].value);
					textoOpciones.value = textoOpciones.value + selector.options[selector.options.selectedIndex].text + "@";
			}
		}
		var precioUnidad = document.getElementById("precioUnidad");
		precioUnidad.value = valor;
		
		var valorIva = roundNumber(valor + (valor*parseFloat(ivaAplicado.value)), 2);
		valor = valor+"";		
		
		var textoDiv = "";
		for (var j = 0; j < valor.length; j++)
		{
			if (valor.charAt(j) == '.')
				textoDiv =  textoDiv + "<img src=images/precios/dot.gif />";
			else
				textoDiv =  textoDiv + "<img src=images/precios/grandes/"+ valor.charAt(j) +".gif />";
		}
		textoDiv = textoDiv + "<img src='images/precios/euroPortada.gif' />"
		var textoDivIva = " Precio con IVA (" + nombreIva.value + "): "+valorIva+"€ &nbsp;";
		var divPrecioIva = document.getElementById("divPrecioIva");
		divPrecioIva.innerHTML = textoDivIva;
		
		var divPrecio = document.getElementById("divPrecio");
		divPrecio.innerHTML = textoDiv;
	} 
	
	/*
	alert(window.location.search);
	// Primero troceo la querystring para evitar la multiplidad de un mismo atributo
	var q = new String();
	q = window.location.href;
	var keyValuePairs = new Array();
	if(q.length > 1) 
		q = q.substring(1, q.length);
	else 
		q = null;
	
	if(q) 
		for(var i = 0; i < q.split("&").length; i++) {
			keyValuePairs[i] = q.split("&")[i];
		}
	
	// Ahora monto la query sin repetir el parámetro
	var query = new String();
	for (var j = 0; j < keyValuePairs.length; j++){
		claveValor = keyValuePairs[j].split("=");
		claveQuery = claveValor[0];
		valorQuery = claveValor[1];
		//alert("clave: " + claveQuery);
		//alert("valor: " + valorQuery);
		if (claveQuery == opcion)
			{a = 1;}
		else
			query += "&" + claveQuery + "=" + valorQuery;
	}
	// Ahora le añado el nuevo parámetro
	alert(query);
	location.href =  + "&" + opcion + "=" + valor; 		*/
}


function damePrecioBase(precio, listaIntervalos, unidades)
{	
	var intervalos = listaIntervalos.split(';');
	var encontrado = false;
	var contador = 0;
	unidades = parseInt(unidades);
	
	while (contador < intervalos.length && !encontrado)
	{
			var intervalo = intervalos[contador];
			if (intervalo.charAt(0) != '@')
			{
					intervalo = intervalo.split('@');
					if (intervalo != "" && intervalo.length>0)
					{
							var desde = parseInt(intervalo[0]);
							var hasta = parseInt(intervalo[1]);
							var precioIntervalo = intervalo[2];
							if (unidades >= desde && unidades <=hasta)
							{
									precio = parseFloat(precioIntervalo);
									encontrado = true;
							}
				  }
			}
			else
			{
					intervalo = intervalo.split('@');
					if (intervalo != "" && intervalo.length>0)
					{
							var desde = parseInt(intervalo[1]);
							var precioIntervalo = intervalo[2];
							if (unidades >= desde)
							{
									precio = parseFloat(precioIntervalo);
									encontrado = true;
							}							
				  }
			}
			contador++;
	}		
	
	return precio;
}

/* Fin Gestión de los atributos dinámicos */
// Expresion regular validación email
// (^[0-9a-zA-Z]+(?:[._][0-9a-zA-Z]+)*)@ ([0-9a-zA-Z]+(?:[._-][0-9a-zA-Z]+)*\.[0-9a-zA-Z]{2,3})$


function cambiaDatosFacturacion() {
	
	if (document.getElementById('datosEnvio').checked == false){
		if (document.getElementById('fnombre').disabled == false){
			document.getElementById('fac_empresa').disabled = !document.getElementById('fac_empresa').disabled;
			document.getElementById('fac_nombre').disabled = !document.getElementById('fac_nombre').disabled;
			document.getElementById('fac_apellidos').disabled = !document.getElementById('fac_apellidos').disabled;
			document.getElementById('fac_nif').disabled = !document.getElementById('fac_nif').disabled;
			document.getElementById('fac_direccion').disabled = !document.getElementById('fac_direccion').disabled;
			document.getElementById('fac_poblacion').disabled = !document.getElementById('fac_poblacion').disabled;
			document.getElementById('fac_provincia').disabled = !document.getElementById('fac_provincia').disabled;
			document.getElementById('fac_cp').disabled = !document.getElementById('fac_cp').disabled;
		}
	}
	else {
		document.getElementById('fac_empresa').disabled = !document.getElementById('fac_empresa').disabled;
		document.getElementById('fac_nombre').disabled = !document.getElementById('fac_nombre').disabled;
		document.getElementById('fac_apellidos').disabled = !document.getElementById('fac_apellidos').disabled;
		document.getElementById('fac_nif').disabled = !document.getElementById('fac_nif').disabled;
		document.getElementById('fac_direccion').disabled = !document.getElementById('fac_direccion').disabled;
		document.getElementById('fac_poblacion').disabled = !document.getElementById('fac_poblacion').disabled;
		document.getElementById('fac_provincia').disabled = !document.getElementById('fac_provincia').disabled;
		document.getElementById('fac_cp').disabled = !document.getElementById('fac_cp').disabled;
	}
}


function comprueba_campos_registro() {
	var ok = true;
	var mensaje = "";
	
	var nombre = document.getElementById('fnombre').value;
	var nif = document.getElementById('fnif').value;
	var apellidos = document.getElementById('fapellidos').value;
	var email = document.getElementById('femail').value;
	var direccion = document.getElementById('fdireccion').value;
	var poblacion = document.getElementById('fpoblacion').value;
	var provincia = document.getElementById('fprovincia').value;
	var cp = document.getElementById('fcp').value;
	var telefono = document.getElementById('ftelefono').value;
	
	if (nombre == null || nombre == ""){
		mensaje += "El campo nombre es obligatorio\n";
		ok = false;
	}
	
	if (nif == null || nif == ""){
		mensaje += "El campo NIF/CIF es obligatorio\n";
		ok = false;
	}
	
	if (apellidos == null || apellidos == ""){
		mensaje += "El campo apellidos es obligatorio\n";
		ok = false;
	}
	if (email == null || email == ""){
		mensaje += "El campo email es obligatorio\n";
		ok = false;
	}
	if (direccion == null || direccion == ""){
		mensaje += "El campo direccion es obligatorio\n";
		ok = false;
	}
	if (poblacion == null || poblacion == ""){
		mensaje += "El campo poblacion es obligatorio\n";
		ok = false;
	}
	if (provincia == null || provincia == ""){
		mensaje += "El campo provincia es obligatorio\n";
		ok = false;
	}
	if (cp == null || cp == ""){
		mensaje += "El campo codigo postal es obligatorio\n";
		ok = false;
	}
	if (telefono == null || telefono == ""){
		mensaje += "El campo telefono es obligatorio\n";
		ok = false;
	}	
	
	var nombre_env = document.getElementById('fac_nombre').value;
	var apellidos_env = document.getElementById('fac_apellidos').value;
	var email_env = document.getElementById('fac_email').value;
	var direccion_env = document.getElementById('fac_direccion').value;
	var poblacion_env = document.getElementById('fac_poblacion').value;
	var provincia_env = document.getElementById('fac_provincia').value;
	var cp_env = document.getElementById('fac_cp').value;
	var telefono_env = document.getElementById('fac_telefono').value;
	
	if (nombre_env == null || nombre_env == ""){
		mensaje += "El campo nombre de envío es obligatorio\n";
		ok = false;
	}
	
	if (apellidos_env == null || apellidos_env == ""){
		mensaje += "El campo apellidos de envío es obligatorio\n";
		ok = false;
	}
	if (email_env == null || email_env == ""){
		mensaje += "El campo email para el envío es obligatorio\n";
		ok = false;
	}
	if (direccion_env == null || direccion_env == ""){
		mensaje += "El campo direccion de envío es obligatorio\n";
		ok = false;
	}
	if (poblacion_env == null || poblacion_env == ""){
		mensaje += "El campo poblacion de envío es obligatorio\n";
		ok = false;
	}
	if (provincia_env == null || provincia_env == ""){
		mensaje += "El campo provincia de envío es obligatorio\n";
		ok = false;
	}
	if (cp_env == null || cp_env == ""){
		mensaje += "El campo codigo postal de envío es obligatorio\n";
		ok = false;
	}
	if (telefono_env == null || telefono_env == ""){
		mensaje += "El campo telefono de envío es obligatorio\n";
		ok = false;
	}
	
	if (mensaje != null && mensaje != "")
		alert(mensaje);
	
	return ok;
}


function finalizarPedido(){
	if (!comprueba_campos_registro()){
		alert("Es necesario que introduzca su información de usuario antes de continuar");
	}
	else {
		//location.href="finalizarPedido.php";		
		var formulario = document.getElementById('datosUsuario');
		formulario.submit();
	}
}

function checkFormularioRegistro(modificar){
		
		var formulario = document.getElementById('formRegistroUsuario');
	
		var nombre = document.getElementById('fnombre').value;
		var apellidos = document.getElementById('fapellidos').value;
		var email = document.getElementById('femail').value;
		var direccion = document.getElementById('fdireccion').value;
		var poblacion = document.getElementById('fpoblacion').value;
		var provincia = document.getElementById('fprovincia').value;
		var cp = document.getElementById('fcp').value;
		var telefono = document.getElementById('ftelefono').value;
		var pwd1 = document.getElementById('rpass').value;
		var pwd2 = document.getElementById('rrpass').value;
		
		var acepto = document.getElementById('facepto').checked;
		
		
		var mensaje = "";
		var ok = true;
		// Primero debo de comprobar que ninguno de los campos obligatorios son nulos o vacios

		if (nombre == null || nombre == ""){
			mensaje += "El campo NOMBRE es obligatorio\n";
			ok = false;
		}
		if (apellidos == null || apellidos == ""){
			mensaje += "El campo APELLIDOS es obligatorio\n";
			ok = false;
		}
		if (email == null || email == ""){
			mensaje += "El campo EMAIL es obligatorio\n";
			ok = false;
		}
		if (direccion == null || direccion == ""){
			mensaje += "El campo DIRECCION es obligatorio\n";
			ok = false;
		}
		if (poblacion == null || poblacion == ""){
			mensaje += "El campo POBLACION es obligatorio\n";
			ok = false;
		}
		if (provincia == null || provincia == ""){
			mensaje += "El campo PROVINCIA es obligatorio\n";
			ok = false;
		}
		if (cp == null || cp == ""){
			mensaje += "El campo CODIGO POSTAL es obligatorio\n";
			ok = false;
		}
		if (telefono == null || telefono == ""){
			mensaje += "El campo TELEFONO es obligatorio\n";
			ok = false;
		}
		if (modificar != 1)
		{
			if (pwd1 == null || pwd1 == "" || pwd2 == null || pwd2 == ""){
				mensaje += "Las contraseñas no pueden ser nulas\n";
				ok = false;
			}
		}
		// Ahora debo de comprobar que las contraseÃ±as son iguales
		if (pwd1 != pwd2){
			mensaje += "Las contraseñas no coinciden\n";
			ok = false;
		}
		if(acepto == false){
			mensaje += "Debe aceptar las condiciones\n";
			ok = false;
			}
		if (mensaje != null && mensaje != "")
			alert(mensaje);
		
		
		if (ok == true)
			formulario.submit();
		
	}
	
function enviarRecordatorioPwd(){	
	var formulario = document.getElementById('formRegistroUsuario');
	formulario.submit();
}
	
// Recuperación de los datos de usuario
function recuperarDatos(){
	var formulario = document.getElementById('formRecuperarDatos');
	var email = document.getElementById('email').value;
	var password = document.getElementById('password').value;
	var mensaje = "";
	if (email == "" || email == null)
		mensaje += "Debe rellenar el campo email\n";
	if (password == "" || password == null)
		mensaje += "Debe rellenar el campo contraseÃ±a\n";
		
	if (mensaje == "")
		formulario.submit();
	else
		alert(mensaje);
}

// Cada vez que se seleccion un método de envío
function cambioMetodoEnvio(){
	var formulario = document.getElementById('gastosEnvio');
	formulario.submit();
}

function realizarCompra(){
	var fZona = document.getElementById('fZona');
	var formaPago = document.getElementById('formaPago');
	var okZona = false;
	var okFormaPago = false;
	var okModoEnvio = false;
	var opcionZona;
	var opcionFormaPago;
	var opcionModoEnvio;
	var mensaje = "";
	var numTarjeta;
	var tipoTarjeta;
	var mesCaducidad;
	var agnoCaducidad;
	
	// Primero compruebo que hay una opción de pago seleccionada;
	/*for( i = 0; i < fZona.zona.length ; i++) {
        if(fZona.zona[i].checked) {
			opcionZona = fZona.zona[i].value;
			okZona = true;
		}
	}

	if (!okZona)
		mensaje += "Debe seleccionar el destino\n";
	*/	
	// Ahora compruebo si hay un método de envio seleccionado
	// Primero compruebo que hay una opción de pago seleccionada;
	for( i = 0; i < formaPago.rFormaPago.length ; i++) {
        if(formaPago.rFormaPago[i].checked) {
			opcionFormaPago = formaPago.rFormaPago[i].value;
			okFormaPago = true;
		}
	}		
	
	// En los casos de envío a Europa o el resto del mundo sólo hay pago con tarjeta siempre seleccionado
	if (opcionZona == "EUR" || opcionZona == "MUN") {
		okFormaPago = true;
		opcionFormaPago = "TAR";
	}
	
	if (!okFormaPago)
		mensaje += "Debe seleccionar una forma de pago\n";
		
	if (opcionFormaPago == "ADE")
	{
			var ccc = document.getElementById("cccADE");
			
			if (ccc == null || ccc.value == ""){
				mensaje += "Debe indicar un número de cuenta bancaria para el adeudo en cuenta\n";
			}
			else
			{
				var formCompra = document.getElementById('formCompra');
				formCompra.cccCompra.value = ccc.value;
			}
	}
	else if (opcionFormaPago == "TRF")
	{
			var ccc = document.getElementById("cccTRF");
			var formCompra = document.getElementById('formCompra');
			formCompra.cccDismosur.value = ccc.value;
	}	
		
		
	// Por Ãºltimo compruebo que se haya seleccionado el modo de envío
	// en el caso que el envío sea a Europa o Resto del mundo
	if (okFormaPago == true && (opcionZona == "EUR" || opcionZona == "MUN")){
		if (document.getElementById("modoEnvio") != null){
			var modo_envio = document.getElementById("modoEnvio");	
			for( i = 0; i < modo_envio.rModoEnvio.length ; i++) {
				if(modo_envio.rModoEnvio[i].checked) {
					opcionModoEnvio = modo_envio.rModoEnvio[i].value;
					okModoEnvio = true;
				}
			}
		}
	}
	
	// Si no es Europa o el resto del mundo no se tiene en cuenta el modo de envio
	if (opcionZona != "EUR" && opcionZona != "MUN")
		okModoEnvio = true;
		
		
	if (!okModoEnvio)
		mensaje += "Debe seleccionar un modo de envío\n";
	
	
	if (mensaje != "") {
		alert(mensaje);
	}
	
	else {
		var formCompra = document.getElementById('formCompra');
		formCompra.opcionPago.value = opcionFormaPago;
		formCompra.submit();
	}
}

function desactivarDatos(){
		// Deshabilito los campos de envío
		//document.getElementById('fempresa').disabled = true;
		//document.getElementById('fnombre').disabled = true;
		//document.getElementById('fapellidos').disabled = true;
		//document.getElementById('fnif').disabled = true;
		//document.getElementById('femail').disabled = true;		
		//document.getElementById('fdireccion').disabled = true;
		//document.getElementById('fpoblacion').disabled = true;
		//document.getElementById('fprovincia').disabled = true;
		//document.getElementById('fcp').disabled = true;
		//document.getElementById('ftelefono').disabled = true;
		
		// Deshabilito los campos de facturación	
		//document.getElementById('fac_empresa').disabled = true;
		//document.getElementById('fac_nombre').disabled = true;
		//document.getElementById('fac_apellidos').disabled = true;
		//document.getElementById('fac_nif').disabled = true;
		//document.getElementById('fac_direccion').disabled = true;
		//document.getElementById('fac_poblacion').disabled = true;
		//document.getElementById('fac_provincia').disabled = true;
		//document.getElementById('fac_cp').disabled = true;
	}
	
	function activarDatos(){
		// Deshabilito los campos de envío
		//document.getElementById('fempresa').disabled = false;
		//document.getElementById('fnombre').disabled = false;
		//document.getElementById('fapellidos').disabled = false;
		//document.getElementById('fnif').disabled = false;
		//document.getElementById('femail').disabled = false;		
		//document.getElementById('fdireccion').disabled = false;
		//document.getElementById('fpoblacion').disabled = false;
		//document.getElementById('fprovincia').disabled = false;
		//document.getElementById('fcp').disabled = false;
		//document.getElementById('ftelefono').disabled = false;
		// Deshabilito los campos de facturación	
		//document.getElementById('fac_empresa').disabled = false;
		//document.getElementById('fac_nombre').disabled = false;
		//document.getElementById('fac_apellidos').disabled = false;
		//document.getElementById('fac_nif').disabled = false;
		//document.getElementById('fac_direccion').disabled = false;
		//document.getElementById('fac_poblacion').disabled = false;
		//document.getElementById('fac_provincia').disabled = false;
		//document.getElementById('fac_cp').disabled = false;
	}
	
	
	function actualizar_gastos_envio(){
		
		var zona_elegida = "";
		var forma_pago_elegida = "";
		var modo_envio_elegido = "";
		
	/*	var zona = document.getElementById('fZona').zona;	
		for( i = 0; i < zona.length; i++)
	        if(zona[i].checked) 
				zona_elegida = zona[i].value;
		*/
		var forma_pago = document.getElementById('formaPago').rFormaPago;
		
		for( i = 0; i < forma_pago.length; i++)
	        if(forma_pago[i].checked) 
				forma_pago_elegida = forma_pago[i].value;
		
		
		if (document.getElementById('modoEnvio') != null)
			var modo_envio = document.getElementById('modoEnvio').rModoEnvio;
		
		if (modo_envio != null){		
			for( i = 0; i < modo_envio.length; i++)
				if(modo_envio[i].checked) 
					modo_envio_elegido = modo_envio[i].value;
		}
		//alert("Zona: " + zona_elegida);
		//alert("Forma Pago: " + forma_pago_elegida);
		location.href="finalizarPedido.php?zona=" + zona_elegida + "&fp=" + forma_pago_elegida + "&me=" + modo_envio_elegido;
	}

	function anadirCarrito(){
		var formulario = document.getElementById("anadirCesta");
		formulario.submit();
	}
	
function roundNumber(num, dec) {
	var result = Math.round(num*Math.pow(10,dec))/Math.pow(10,dec);
	return result;
}