
function ActivarDireccionEnvio (oFormulario)
{
	var Desactivado = ! oFormulario.DireccionDeEnvio.checked;

	oFormulario.EnvioNombre.disabled       = Desactivado;
	oFormulario.EnvioDireccion.disabled    = Desactivado;
	oFormulario.EnvioPais.disabled         = Desactivado;
	oFormulario.EnvioCodigoPostal.disabled = Desactivado;
	oFormulario.EnvioMunicipio.disabled    = Desactivado;
	oFormulario.EnvioProvincia.disabled    = Desactivado;
	oFormulario.EnvioTelefono.disabled     = Desactivado;
}


function AvisoLegal ()
{
	var Ventana = new TVentana ();

	Ventana.Ancho       = 550;
	Ventana.Alto        = 400;
	Ventana.Nombre      = 'AvisoLegal';
	Ventana.URL         = '/fuentes/avisolegal.php';
	Ventana.Open (true);
}


function CantidadArticulo (oControl, Incrementar)
{
	var Cantidad = oControl.value.asInteger ();

	if (Incrementar) oControl.value = Cantidad + 1;
	else if (Cantidad > 0) oControl.value = Cantidad - 1;
}


function CantidadCesta (sItem, iCantidad)
{
	var	Ajax = new TAjax ();

	$ ('idCantidad-' + sItem, 'style.display', 'none');
	$ ('idCargando-' + sItem, 'style.display', '');
	Ajax.onCargar      = function (oPeticion)
	                     { var Result = oPeticion.asText ();
												 if (Result == 'NOSTOCK') alert ('No quedan más unidades disponibles de este producto.');
												 $ ('idDIVSinDerecha', 'innerHTML', Result);
											 }
	Ajax.Vars.Item     = sItem;
	Ajax.Vars.Cantidad = iCantidad;
	Ajax.Cargar ('/fuentes/actualizarpedido.php');
}


function CargarFormasDeEnvio ()
{
	var Ajax  = new TAjax ();

	Ajax.onCargar = function (oPeticion)
									{	
										var Formas = $('idFormasDeEnvio');
										FormasDeEnvio = DataSet (oPeticion.asText (), 'FORMASDEENVIO');
										OptionSelect (Formas, 0, '');

										while (! FormasDeEnvio.Eof ())
										{	OptionSelect (Formas, FormasDeEnvio.asInteger ('Id'), FormasDeEnvio.ByName ('Descripcion'));
											FormasDeEnvio.Next ();
										}

									}
	Ajax.Cargando = 'idCargEnvio|visible';
	Ajax.Cargar ('/fuentes/formasdeenvio.php');
}


function CargarFormasDePago ()
{
	var Ajax         = new TAjax ();
	var FormaDeEnvio = document.FormasDePago.FormaDeEnvio.value.asInteger ();
	var Pagos        = document.getElementById ('idFormasDePago');

	EliminarHijos (Pagos);
	$ ('idAnotacion', 'innerHTML', '');

	GastosDeEnvio (TotalCesta, 0, 0);

	if (FormaDeEnvio)
	{	FormasDeEnvio.Locate ('Id', FormaDeEnvio);
		if (FormasDeEnvio.asBoolean ('Limite'))
		{	alert ('Está forma de envío excede el límite de peso.\nPor favor elija otra forma de envío o divida el pedido.');
			document.FormasDePago.FormaDeEnvio.value = 0;
		} else
		{	GastosDeEnvio (FormasDeEnvio.asFloat ('Total'), FormasDeEnvio.asFloat ('Gastos'),
			               FormasDeEnvio.asFloat ('Descuento'));
			Ajax.onCargar = function (oPeticion)
											{	
												var Pagos = document.getElementById ('idFormasDePago');
												FormasDePago = DataSet (oPeticion.asText (), 'FORMASDEPAGO');

												OptionSelect (Pagos, 0, '');
												while (! FormasDePago.Eof ())
												{	OptionSelect (Pagos, FormasDePago.asInteger ('Id'), FormasDePago.ByName ('Descripcion'));
													FormasDePago.Next ();
												}
											}
			Ajax.Vars.FormaDeEnvio = FormaDeEnvio;
			Ajax.Cargando = 'idCargPago|visible';
			Ajax.Cargar ('/fuentes/formasdepago.php');
		}
	}
}


function Comprar (iArticulo, iCantidad, iOpcion)
{
	var	Ajax = new TAjax ();

	if (iCantidad == 0) iCantidad = document.Comprar.Cantidad.value.asInteger ();
	if (iCantidad <= 0)
	{	alert ('Tiene que indicar una cantidad.');
		document.Comprar.Cantidad.focus ();
	} else
	{	Ajax.onCargar       = ComprarOn;
		Ajax.Opcion         = iOpcion;
		Ajax.Vars.Id        = iArticulo;
		Ajax.Vars.Cantidad  = iCantidad;
		Ajax.Vars.URL       = location.href;
		Ajax.Cargar ('/fuentes/comprar.php');
	}
}


function Comprar2 (iOpcion)
{
	var	Ajax       = new TAjax ();
	var Cantidades = new Array ();
	var i          = 1;
	var Cantidad   = document.Comprar ['Cantidad' + i];
		
	while (Cantidad)
	{	if (Cantidad.value.asInteger ())
			Cantidades.push (new Array (Cantidad.value.asInteger (), Cantidad.getAttribute ('Ident')));
		i++;
		Cantidad = document.Comprar ['Cantidad' + i];
	}
	if (! Cantidades.length)
	{	alert ('Tiene que indicar una cantidad.');
		document.Comprar.Cantidad1.focus ();
	} else
	{	Ajax.onCargar        = ComprarOn;
		Ajax.Opcion          = iOpcion;
		Ajax.Vars.Cantidades = Serialize (Cantidades);
		Ajax.Vars.URL        = location.href;
		Ajax.Cargar ('/fuentes/comprar2.php');
	}
}


function ComprarOn (oPeticion)
{
	var Result = oPeticion.asText ();

	if (Result.substr (0, 5) == 'STOCK')
	{	Result = Result.substr (5).asInteger ();
		if (Result > 0) alert ('Solo quedan disponibles ' + Result + ' unidades.');
		else alert ('No quedan unidades disponibles de este producto.');
	} else Main (oPeticion.Opcion);
}


function ConfirmarClave (oFormulario)
{
	var Clave   = oFormulario.Clave.value.Trim ();
	var Repetir = oFormulario.Repetir.value.Trim ();

	if (Clave != Repetir)
	{	alert ('La clave de acceso y su confirmación son distintas.');
		oFormulario.Clave.focus ();
		return false;
	}
	return true;
}


function FinalizarPedido (iFin, iPago)
{
	var	Ajax         = new TAjax ();
	var FormaDeEnvio = document.FormasDePago.FormaDeEnvio.value.asInteger ();
	var FormaDePago  = document.FormasDePago.FormaDePago.value.asInteger ();
	
	if (FormaDeEnvio)
	{	if (FormaDePago)
		{	$ ('idBotones', 'style.visibility', 'hidden');
			Ajax.Vars.FormaDeEnvio = FormaDeEnvio;
			Ajax.Vars.FormaDePago  = FormaDePago;
			Ajax.Vars.Gastos       = document.FormasDePago.Gastos.value.asFloat ();
			Ajax.Vars.Descuento    = document.FormasDePago.Descuento.value.asFloat ();
			Ajax.Vars.Total        = document.FormasDePago.Total.value.asFloat ();
			Ajax.onCargar          = function (oPeticion)
																{
																	var Result = oPeticion.asText ();

																	if (Result == 'OK') Opc = iFin;
																	else if (Result == 'PAGOELECTRONICO') Opc = iPago;
																	else alert ('No se ha podido registrar su pedido.\nPor favor vuelva a intentarlo.');
																	CargarPagina ();
																}
			Ajax.Cargando          = 'idCargando|visible';
			Ajax.Cargar ('/fuentes/finalizarpedido.php');
		} else alert ('Tiene que indicar una forma de pago.');
	} else alert ('Tiene que indicar una forma de envío.');
}


function FormasDePago (oFormulario, iOpcion)
{
	var	Ajax     = new TAjax ();

	if (ValidarFormulario (oFormulario))
	{	Ajax.onCargar = function (oPeticion)
		                {	switch (oPeticion.asText ())
		                	{	case 'NOPAGO': alert ('Actualmente no suministramos en ese país.\nPor favor pongasé en contacto con nosotros.'); break;
		                		case 'OK': Main (iOpcion); break;
		                		default: alert ('Se ha producido un error al intentar registrar la dirección de envío.\nPor favor vuelva a intentarlo.');
											}
		                }
		Ajax.Formulario (oFormulario);
		Ajax.Cargar ('/fuentes/hayformasdepago.php');
	}
}


function GastosDeEnvio (fTotal, fGastos, fDescuento)
{
	$ ('idTotalAPagar', 'innerHTML', FlotanteACadena (fTotal, 2));
	$ ('idGastosDeEnvio', 'innerHTML', FlotanteACadena (fGastos, 2));
	$ ('idDtoGastos', 'innerHTML', '-' + FlotanteACadena (fDescuento, 2));
	$ ('idTRDescuento', 'style.visibility', fDescuento > 0.01 ? '' : 'hidden');
	document.FormasDePago.Total.value     = fTotal;
	document.FormasDePago.Gastos.value    = fGastos;
	document.FormasDePago.Descuento.value = fDescuento;
}


function GastosFormaDePago ()
{
	$ ('idAnotacion', 'innerHTML', '&nbsp;');
	GastosDeEnvio (TotalCesta, 0, 0);

	if (FormasDePago.Locate ('Id', document.FormasDePago.FormaDePago.value))
	{	$ ('idAnotacion', 'innerHTML', FormasDePago.ByName ('Texto') + '&nbsp;');
		GastosDeEnvio (FormasDePago.asFloat ('Total'), FormasDePago.asFloat ('Gastos'),
		               FormasDePago.asFloat ('Descuento'));
	}	else if (FormasDeEnvio.Locate ('Id', document.FormasDePago.FormaDeEnvio.value))
		GastosDeEnvio (FormasDeEnvio.asFloat ('Total'), FormasDeEnvio.asFloat ('Gastos'),
		               FormasDePago.asFloat ('Descuento'));
}


function IdentificarCliente (oFormulario)
{
	var	Ajax = new TAjax ();

	if (ValidarFormulario (oFormulario))
	{	Ajax.onCargar    = function (oPeticion)
		                   {	if (oPeticion.asText () == 'OK') CargarPagina ();
		                   	 	else alert ("Código de cliente o clave incorrectos.\nRecuerde que la clave es sensible\na mayúsculas y minúsculas");
		                   }
		Ajax.Vars.Codigo = oFormulario.Codigo.value.Trim ();
		Ajax.Vars.Clave  = oFormulario.Clave.value.Trim ();
		Ajax.Cargando    = 'idCargando|block';
		Ajax.Cargar ('/fuentes/identificarcliente.php');
	}
}


function InitMenus (Opc, Cat)
{
	var Aux = '';
	Aux = String (Opc).substr(0,2);

	$ ('idMen-' + Aux, 'className', 'Seleccionado');
	$ ('idCat-' + Cat, 'className', 'Seleccionado');
}


function onRollOutFila (Fila)
{
	Fila.style.backgroundColor = '';
}


function onRollOverFila (Fila)
{
	Fila.style.backgroundColor = '#efefef';
}


function RegistrarCliente (oFormulario, iOpc)
{
	var Ajax = new TAjax ();


	if (ValidarFormulario (oFormulario) && ConfirmarClave (oFormulario))
	{	if (! oFormulario.Id.value.asInteger () && ! oFormulario.Lopd.checked)
			alert ('Tiene que aceptar la Ley de Protección de Datos');
		else
		{	Ajax.onCargar = function (oPeticion)
											{	var Result = oPeticion.asText ();

												if (Result == 'OK') Main (iOpc);
												else if (Result == 'NOLOGIN') alert ('El código no es correcto.');
												else if (Result == 'NOCLAVE') alert ('La clave no es correcta.');
												else if (Result == 'NOEMAIL') alert ('El email no es correcto.');
												else if (Result == 'LOGINDUPLICADO') alert ('Ya existe un cliente con ese código.');
												else if (Result == 'EMAILDUPLICADO') alert ('Ya existe un cliente con ese email.');
												else alert ('No se ha podido actualizar o registrar los datos del cliente.');
											}
			Ajax.Formulario (oFormulario);
			Ajax.Cargar ('/fuentes/datoscliente.php');
		}
	}
}



////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////




function Buscar (iOpc)
{
	var Buscar = document.Buscador.Buscar.value.Trim ();
	
	if (Buscar)
	{	LimpiarParametros ();
		Opc  = iOpc;
		Par4 = Buscar;
		CargarPagina ();
	}
}



function CargarPagina ()
{
	var Pars = '?Opc=' + Opc;

	if (Par4) Pars += '&Par4=' + Par4;

	window.location = '/index.php' + Pars;
}



function DatosDeEnvioInit (oFormulario, iPais)
{
	oFormulario.EnvioPais.value = iPais;
}


function DesconectarCliente ()
{
	var	Ajax = new TAjax ();

	Ajax.onCargar = CargarPagina;
	Ajax.Cargar ('/fuentes/desconectar.php');
}




function LimpiarParametros ()
{
	Par1 = 0;
	Par2 = 0;
	Par4 = '';
}


function Lopd ()
{
	var Ventana = new TVentana ();

	Ventana.Ancho       = 550;
	Ventana.Alto        = 300;
	Ventana.Nombre      = 'AvisoLegal';
	Ventana.URL         = '/fuentes/avisolegal.php?Lopd=1';
	Ventana.Open (true);
}



function Main (iOpcion)
{
	Opc = iOpcion;
	CargarPagina ();
}


function RecordarClave ()
{
	var Ventana = new TVentana ();

	Ventana.Ancho       = 440;
	Ventana.Alto        = 400;
	Ventana.Nombre      = 'RecordarClave';
	Ventana.URL         = '/fuentes/recordarclave.php';
	Ventana.Open (true);
}


function Ticket ()
{
	var Ajax = new TAjax ();

	Ajax.onCargar = TicketOn;
	Ajax.Cargar ('/fuentes/ticket.php');
}


function TicketAvanzar (Avanzar)
{
	if (Avanzar)
	{	if (LineaTicket < LineasTicket.RecordCount () - 3)
		{	LineaTicket++;
			TicketLineas ();
		}
	} else
	{	if (LineaTicket > 1)
		{	LineaTicket--;
			TicketLineas ();
		}
	}

	if ((LineaTicket < LineasTicket.RecordCount () - 3))
		ImageSrc ('RtTicket', '/imagenes/bajar.gif');
	else ImageSrc ('RtTicket', '/imagenes/bajar_off.gif');
	if (LineaTicket > 1) ImageSrc ('AvTicket', '/imagenes/subir.gif');
	else ImageSrc ('AvTicket', '/imagenes/subir_off.gif');
}


function TicketLineas ()
{
	var f         = 0;
	var Div       = null;
	var Aux       = null;
	var Etiqueta  = $ ('idLineasTicket');

	if (Etiqueta)
	{	Etiqueta.innerHTML = '';
		LineasTicket.RecNo (LineaTicket);
		while (! LineasTicket.Eof () && f++ < 4)
		{	Div = document.createElement ('div');
			Div.className = 'Linea';
			Aux = document.createElement ('div');
			Aux.className = 'Descripcion';
			Aux.innerHTML = LineasTicket.ByName ('Cantidad') + ' x ' + LineasTicket.ByName ('Descripcion');
			Div.appendChild (Aux);
			Aux = document.createElement ('div');
			Aux.className = 'Importe';
			Aux.innerHTML = LineasTicket.ByName ('Importe') + ' &euro;';
			Div.appendChild (Aux);
			Etiqueta.appendChild (Div);
			LineasTicket.Next ();
		}
	}
}


function TicketOn (Peticion)
{
	var MAXLINEAS = 4;

	LineasTicket = DataSet (Peticion.asText (), 'TICKET');
	var Etiqueta = $ ('idLineasTicket');
	var Lineas   = LineasTicket.RecordCount ();

	if (Etiqueta && Lineas)
	{	LineaTicket = 0;
		if (Lineas > 4) LineaTicket = Lineas - 3;
		TicketLineas ();
	}
}


function EnviarAsesor (Formulario)
{
	var Ajax = new TAjax ();

	if (ValidarFormulario (Formulario))
	{	if (! Formulario.Lopd.checked) alert ('Tiene que aceptar la Ley de Protección de Datos');
		else
		{	Ajax.onCargar = onEnviar;
			Ajax.Formulario (Formulario);
			Ajax.Cargar ('/fuentes/enviar_asesor.php');
		}
	}
}

function EnviarContacto (Formulario)
{
	var Ajax = new TAjax ();

	if (ValidarFormulario (Formulario))
	{	if (! Formulario.Lopd.checked) alert ('Tiene que aceptar la Ley de Protección de Datos');
		else
		{	Ajax.onCargar = onEnviar;
			Ajax.Formulario (Formulario);
			Ajax.Cargar ('/fuentes/enviar_contacto.php');
		}
	}
}


function onEnviar (Peticion)
{
	window.location = '/tpvglobal-18.html';
}


function PedirClave (oFormulario)
{
	var Ajax = new TAjax ();

	if (ValidarFormulario (oFormulario))
	{	Ajax.onCargar = function (oPeticion)
		                {	if (oPeticion.asText () == 'OK')
											{	$ ('idRecordarClave', 'style.display', 'none');
												$ ('idEnvioOK', 'style.display', 'block');
											} else alert ('No hay ningún usuario con esa dirección de correo electrónico.');
										}
		Ajax.Vars.Email = oFormulario.Email.value.Trim ();
		Ajax.Cargar ('/fuentes/recordarclave.php');
	}
}


