/*
Se le pasa el ID del elemento que se quiere verificar.
Devuelve TRUE o FALSE
*/
function isMail(id){
 
	var s = document.getElementById(id);
	var filter=/^[A-Za-z0-9][A-Za-z0-9_.-]*@[A-Za-z0-9_.-]+\.[A-Za-z0-9]+[A-za-z]$/;
	if (s.length == 0 ) return true;
	
	if (filter.test(s.value)){
		return true;
	}else{
		return false;
	}
}

function html_decode(data)
{
	var span = document.createElement('span');
	span.innerHTML = data;
	return span.innerHTML;
}

/**
 *Funciones nuevas agrupa-publico.
 **/

function show_categories(idb)
{
	var uls        = $$('ul');
	var ul_visible = null;
	
	for (var i=0; i < uls.length;++i)
	{
		if (uls[i].className && uls[i].className.indexOf('sub_') != -1)
		{
			if (('sub_'+idb) == uls[i].className)
			{
				uls[i].style.display = 'block';
			}
			else
			{
				uls[i].style.display = 'none';
			}
		}
	}
}

function show_subcategories(idb,ids)
{
	location = 'categorias.php?idb='+idb+'&idc='+ids;
}

function filtrar_distintivas()
{
	$('form_filtros').submit();
}

function enviar_orden()
{
	$('form_orden').submit();
}

function refreshCarrito(este)
{
	var cant = parseInt(este.value);
	if(!isNaN(cant))
	{
		setTimeout("document.getElementById('carrito_main').submit()",2000);
	}
}

function comprar()
{
	var texto = '';
	
	if(texto)
	{
		alert(texto);
	}
	else
	{
		document.getElementById('compra').value = 'ok';
		document.getElementById('carrito_main').submit();
	}
}

function enviar_registracion_particular()
{
	var msg = '';
	
	if (!$('disclaimer').checked)
	{
		alert('Debe aceptar los terminos y condiciones de Agrupa.es');
	}
	else
	{
		if ('' == $('cif_nif').value)
		{
			msg += 'Debe completar el campo CIF/NIF.\n';
		}
		
		if ('' == $('apellido').value)
		{
			msg += 'Debe completar el campo apellido.\n';
		}
	
		if ('' == $('direccion').value)
		{
			msg += html_decode('Debe completar el campo direcci&oacute;n.')+'\n';
		}
		
		if ('' == $('poblacion').value)
		{
			msg += 'Debe completar el campo poblacion.\n';
		}
	
		if ('' == $('telefono').value)
		{
			msg += html_decode('Debe completar el campo tel&eacute;fono.') + '\n';
		}
		
		if ('' == $('nombre_contacto').value)
		{
			msg += 'Debe completar el campo nombre.\n';
		}
	
		if ('' == $('codigo_postal').value)
		{
			msg += html_decode('Debe completar el campo c&oacute;digo postal.') + '\n';
		}
		
		if ('0' == $('id_provincias').value)
		{
			msg += 'Debe seleccionar la provincia.\n';
		}
		
		if (!isMail('email') || '' == $('email').value)
		{
			msg += html_decode('Ingrese una direcci&oacute;n de email v&aacute;lida.') + '\n';
		}
	
		if ('' == $('rpassword').value)
		{
			msg += html_decode('Debe ingresar la contrase&ntilde;a.') + '\n';
		}
		
		if ($('rpassword').value != $('cpassword').value)
		{
			msg += html_decode('Las contrase&ntilde;as no coinciden.') + '\n';
		}
		
		if ('' != msg)
		{
			alert(msg);
		}
		else
		{
			$('form_registracion').submit();
		}
	}
}

function enviar_registracion_empresa()
{
	var msg = '';
	
	if (!$('disclaimer').checked)
	{
		alert('Debe aceptar los terminos y condiciones.');
	}
	else
	{
		if ('' == $('cif_nif').value)
		{
			msg += 'Debe completar el campo CIF/NIF.\n';
		}
		
		if ('' == $('nombre_contacto').value)
		{
			msg += 'Debe completar el campo contacto.\n';
		}
		
		if ('' == $('direccion').value)
		{
			msg += html_decode('Debe completar el campo direcci&oacute;n.') + '\n';
		}
		
		if ('' == $('poblacion').value)
		{
			msg += html_decode('Debe completar el campo poblaci&oacute;n.') + '\n';
		}
		
		if ('' == $('telefono').value)
		{
			msg += html_decode('Debe completar el campo tel&eacute;fono fijo.')+'\n';
		}
		
		if ('' == $('razon_social').value)
		{
			msg += html_decode('Debe completar el campo raz&oacute;n social.')+'\n';
		}
		
		if ('0' == $('id_provincias').value)
		{
			msg += 'Debe seleccionar la provincia.\n';
		}
		
		if ('' == $('email').value)
		{
			msg += html_decode('Debe ingresar una direcci&oacute;n de email.')+'\n';
		}
		else if (!isMail('email'))
		{
			msg += html_decode('Debe ingresar una direcci&oacute;n de email v&aacute;lida.') + '\n';
		}
		
		if ('' == $('rpassword').value)
		{
			msg += html_decode('Debe ingresar la contrase&ntilde;a.') + '\n';
		}
		else if ($('rpassword').value != $('cpassword').value)
		{
			msg += html_decode('Las contrase&ntilde;as no coinciden.') + '\n';
		}
		
		if ('' != msg)
		{
			alert(msg);
		}
		else
		{
			$('form_registracion').submit();
		}
	}
}

function show_formulario_registracion(empresa,from)
{
	if (''!=from)
	{
		from = '?f='+from;
	}
	
	if (empresa)
	{
		location = 'registrate.php' + from;
	}
	else
	{
		location = 'registrate-particular.php' + from;
	}
}

function enviar_contacto()
{
	var msg = '';
	
	if ('' == $('texto_contacto').value)
	{
		msg += 'Tiene que ingresar el texto del contacto.\n';
	}
	
	if ('' == $('email'))
	{
		msg += html_decode('Debe ingresar una direcci&oacute;n de email.\n');
	}
	else if (!isMail('email'))
	{
		msg += html_decode('Ingrese una direcci&oacute;n de email v&aacute;lida.\n');
	}
	
	if ('' != msg)
	{
		alert(msg);
	}
	else
	{
		$('form_contacto').submit();
	}
}

function popup(URL,w,h,vars) 
{	
	var left = (screen.width - w) / 2;
	var top  = (screen.height - h) / 2
	
	window.open(URL,"","left="+left+",top=" + top + ",width="+w+",height="+h+",scrollbars=yes,resizable=yes" );
}

function cantidad_subfamilias_maxima()
{
	var combo = $('subfamilias_home');
	if (combo.options.length >= 99999999999)
	{
		return true;
	}
	return false;
}

function mostrar_en_home(mostrar)
{
	var subhome        = $('subfamilias_home');
	var combo          = $('idsf'); 
	
	var id_subfamilias = combo.options[combo.selectedIndex].value;
	var nombre         = combo.options[combo.selectedIndex].text;
	
	if (mostrar)
	{
//		se muestra la familia en el home, lo primero q se hace es checkear si
//		la cantidad de familias ya no es la maxima.
		if (cantidad_subfamilias_maxima())
		{
			alert(html_decode('La categor&iacute;a ya tiene la cantidad m&aacute;xima de subcategorias permitidas'));
			$('mostrar_esta_home').checked = false;
		}
		else
		{
//			es posible cargar la categoria.
			subhome.options[subhome.options.length] = new Option(nombre,id_subfamilias);
		}
	}
	else
	{
//		tengo que eliminar la opcion de las subfamilias
		for (var i=0; i < subhome.options.length; ++i)
		{
			if (subhome.options[i].value == id_subfamilias)
			{
				subhome.options[i] = null;
				break;
			}
		}
	}
}

function borrar_subfamilia_home()
{
	var subhome = $('subfamilias_home');
	
	if (-1 == subhome.selectedIndex)
	{
		alert('Debe seleccionar una subfamilia');
	}
	else
	{
		var id_eliminado = subhome.options[subhome.selectedIndex].value;
		subhome.options[subhome.selectedIndex] = null;
		
		var sub = $('idsf').options[$('idsf').selectedIndex].value;
		
		if (id_eliminado == sub)
		{
			$('mostrar_esta_home').checked = false;
		}
	}
}

function obtener_posicion_subfamilia(idsf)
{
	var subhome = $('subfamilias_home');
	
	var pos = -1;
	for (var i=0; i < subhome.options.length; ++i)
	{
		if (subhome.options[i].value == idsf)
		{
			pos = i;
			break;
		}
	}
	
	return pos;
}

function swap_options(id,i1,i2)
{
	var combo           = $(id);
	var opcion_i1 = [combo.options[i1].value,combo.options[i1].text];
	var opcion_i2 = [combo.options[i2].value,combo.options[i2].text];
	
	combo.options[i1]   = new Option(opcion_i2[1],opcion_i2[0]);
	combo.options[i2]   = new Option(opcion_i1[1],opcion_i1[0]);
}

function subir_subfamilia_home()
{
	var subhome = $('subfamilias_home');
	
	if (-1 == subhome.selectedIndex)
	{
		alert('Debe seleccionar una subfamilia');
	}
	else
	{
		if (subhome.selectedIndex > 0)
		{
			var indice_actual   = subhome.selectedIndex;
			var indice_anterior = indice_actual - 1;
			swap_options('subfamilias_home',indice_actual,indice_anterior);
		}
	}
}

function bajar_subfamilia_home()
{
	var subhome = $('subfamilias_home');
	
	if (-1 == subhome.selectedIndex)
	{
		alert('Debe seleccionar una subfamilia.');
	}
	else
	{
		var ultimo_indice = subhome.options.length -1;
		
		if (ultimo_indice != subhome.selectedIndex)
		{
			swap_options('subfamilias_home',subhome.selectedIndex,subhome.selectedIndex + 1);
		}
	}
}

function guardar_subfamilias_home()
{
	var subhome = $('subfamilias_home');
	var idsf    = $('idsf').options[$('idsf').selectedIndex].value;
	
	var url = 'top_ventas.php?act=usubfamilias_home&idsf='+ idsf + '&cantidad_productos='+$('cantidad_productos').value;
	
	for (var i=0; i < subhome.options.length;++i)
	{
		url += '&sfh[]=' + subhome.options[i].value;
	}
	
	location.href = url;
}

function borrar_carrito()
{
	location.href='cesta.php?act=borrar';
}

function focus_password(sin_clase)
{
	if (typeof sin_clase == 'undefined')
	{
		sin_clase = false;
	}
	
	var container = $('conpass');
	
	if (!sin_clase)
	{
		container.innerHTML = '<input class="login" type="password" name="password" onkeypress="keypress_password(event)" id="form_password"/>';
	}
	else
	{
		container.innerHTML = '<input type="password" name="password" onkeypress="keypress_password(event)" id="form_password"/>';
	}
	
	if (document.all)
	{
		setTimeout(function()
				{
					$('form_password').focus();
				},200);
	}
}

function keypress_password(event)
{
	event = new Event(event);
	if ('enter' == event.key)
	{
		$('form_login').submit();
	}
}

function onblur_email(event,iduserfield)
{
	event = new Event(event);
	var tar = event.target;
	$(iduserfield).value = tar.value;
}

function cambiar_direccion_envio(tipo)
{
	var add = '';
	if(tipo != '') {add = '?tipo='+tipo;}
	
	popup('popups/cambiar_direccion_envio.php'+add,530,230,'');
}

var direccion     = '';
var poblacion     = '';
var codigo_postal = '';
var provincia     = '';
var id_provincias = 0;

function guardar_direccion_envio(tipo)
{
	var msg = '';
	
	direccion     = $('direccion').value;
	poblacion     = $('poblacion').value;
	codigo_postal = $('codigo_postal').value;
	provincia     = $('id_provincias').options[$('id_provincias').selectedIndex].text;
	id_provincias = $('id_provincias').value;
	
	if ('' == direccion)
	{
		msg += html_decode('Debe completar el campo direcci&oacute;n.\n');
	}
	
	if ('' == poblacion)
	{
		msg += html_decode('Debe completar el campo poblaci&oacute;n.\n');
	}
	
	if ('' == codigo_postal)
	{
		msg += html_decode('Debe completar el campo c&oacute;digo postal.\n');
	}
	
	if ('0' == id_provincias)
	{
		msg += 'Debe seleccionar la provincia.\n';
	}
	
	if ('' != msg)
	{
		alert(msg);
	}
	else
	{
//		si esta todo ok, entonces guardo la nueva direccion de envio.
		if(tipo == 'javascript')
		{
			new Request({url:'../inc/carrito_ajax.php',method:'post',
						onComplete: function(response)
						{
							if ('RESPONSE_OK' == response)
							{
								var html = '<div style="margin:0 0 20px 0px;">	'
													+'<input type="radio" name="direccion_envio" value="'+id_provincias+'" class="radio"  />'
													+'<div class="mailingAddress2 fl" id="direccion_envio">'
														+'Direcci&oacute;n: <span id="direccion">'+direccion+'</span><br />'
														+'Poblaci&oacute;n: <span id="poblacion">'+poblacion+'</span><br />'
														+'C&oacute;digo postal: <span id="codigo_postal">'+codigo_postal+'</span><br />'
														+'Provincia: <span id="provincia">'+provincia+'</span>'
													+'</div>'
												+'</div>	<div class="clearfix"></div>';
												
								opener.document.getElementById('direcciones_de_envio').innerHTML += html;		
								window.close();	
							}
							else
							{
								alert('Error, no se pudo cambiar la direccion de envio.');
							}
						}}).send('act=guardar_direccion_envio&id_provincias=' + id_provincias +
								 '&codigo_postal='+codigo_postal+'&direccion='+direccion +
								 '&poblacion='+poblacion);	
		}
		else		
		{
			new Request({url:'../inc/carrito_ajax.php',method:'post',
						onComplete: function(response)
						{
							if ('RESPONSE_OK' == response)
							{
	//							refresco la pantalla principal para que sea mostrada
	//							la nueva direccion.
								opener.location.reload(true);
								window.close();
							}
							else
							{
								alert('Error, no se pudo cambiar la direccion de envio.');
							}
						}}).send('act=guardar_direccion_envio&id_provincias=' + id_provincias +
								 '&codigo_postal='+codigo_postal+'&direccion='+direccion +
								 '&poblacion='+poblacion);
		}
	}
}

function guardarEntregaFormaPago()
{
	var msg           = '';
	var noesta        = '';
	var nombre_vecino = '';
	var tipo_pago     = 0;
	var observaciones = $('observaciones').value;
	var horario       = '';
	
	if ($('noesta_vecino').checked)
	{
		noesta = 'vecino';
		if ('' == $('nombre_vecino').value)
		{
			msg += 'Debe ingresar el nombre del vecino.\n';
		}
		else
		{
			nombre_vecino = $('nombre_vecino').value;
		}
	}
	else if ($('noesta_portero').checked)
	{
		noesta = 'portero';
	}
	else
	{
		noesta = 'sin_especificar';
	}
	
//	Obtengo el tipo de pago seleccionado.
	var inputs = $$('input');
	
	for (var i=0; i < inputs.length;++i)
	{
		if (inputs[i].name && 'tipos_pagos[]' == inputs[i].name )
		{
			if (inputs[i].checked)
			{
				tipo_pago = inputs[i].value;
				break;
			}
		}
	}
	
	if (0 == tipo_pago)
	{
		msg += 'Debe seleccionar el tipo de pago.\n';
	}
	
//	checkeo si se encuentra seleccionada alguna direccion de envio.
	var radios = $$('input[type=radio]');
	
	var id_direcciones_envio   = 0;
	var direccion_seleccionada = false;
	
	for (i=0;i < radios.length;++i)
	{
		if (radios[i].name && 'direccion_envio' == radios[i].name)
		{
			if (radios[i].checked)
			{
				id_direcciones_envio   = radios[i].value;
				direccion_seleccionada = true;
				break;
			}
		}
	}
	
	if (!direccion_seleccionada)
	{
		msg += html_decode('Debe seleccionar la direcci&oacute;n de envio.\n');
	}
	
	if ('' != msg)
	{
		alert(msg);
	}
	else
	{
//		envio los datos al carrito para ser avaluados.
		var params = 'act=guardar_entrega_pago';
		horario = $('horario').value;
		
		params += '&noesta='+noesta+'&horario='+horario+'&nombre_vecino='+nombre_vecino
				+ '&tipo_pago=' + tipo_pago +'&observaciones='+observaciones + '&id_direcciones_envio='+
				id_direcciones_envio;
		
		new Request({url:'inc/carrito_ajax.php',method:'post',
					onComplete:function(response)
					{
						if ('RESPONSE_OK' == response)
						{
							location = 'cesta-paso-tres.php';
						}
						
					}}).send(params);
	}
}

function finalizarCompra()
{
	location = 'cesta-paso-cuatro.php?compra=ok';
}

function guardar_mis_datos()
{
	if ($('password').value != $('cpassword').value)
	{
		alert(html_decode('Las contrase&ntilde;as no coinciden.\n'));
	}
	else
	{
		$('form_registracion').submit();
	}
}

function deseleccionar_checkbox(id)
{
	$(id).checked = false;
}

function mostrar_marca(nombre)
{
	location.href = '#' + nombre;
}

function buscar_productos(host)
{
	if (typeof host == 'undefined')
	{
		host = '';
	}
	
	location.href = host + 'resultados.php?buscar='+$('texto_busqueda').value;
}

function keypress_buscar_producto(event,host)
{
	if (typeof host == 'undefined')
	{
		host = '';
	}
	
	event = new Event(event);
	if ('enter' == event.key)
	{
		buscar_productos(host);
	}
}

function sin_stock()
{
	alert('Producto sin stock');
}

function enviar_reset_password()
{
	var msg = '';
	if ('' == $('password').value)
	{
		msg += html_decode('Debe ingresar la contrase&ntilde;a\n');
	}
	else
	{
		if ($('password').value != $('cpassword').value)
		{
			msg += html_decode('Las contrase&ntilde;as no coinciden.\n');
		}
	}
	
	if ('' != msg)
	{
		alert(msg);
	}
	else
	{
		$('form_reset_password').submit();
	}
}

function keypress_cpreset(event)
{
	event = new Event(event);
	if ('enter' == event.key)
	{
		enviar_reset_password();
	}
}

function bfuturas_compras(host,idp)
{
	if (confirm('esta seguro que desea eliminar el producto?'))
	{
		location = host + 'futuras-compras.php?act=del&idp='+idp;
	}
}

function show_info_portes(host)
{
	popup(host + 'popup.php',430,250,'resizable=yes');	
}

function paycaixa()
{
	var data = post('cesta-paso-tres.php','paycaixa=pagar');

	document.getElementById('html_caixa').innerHTML = data;
	document.getElementById('frmp').submit();
}

function post(url, vars){
	var xml = null;
	try {
		xml = new ActiveXObject('Microsoft.XMLHTTP');
	}catch(exception){
		xml = new XMLHttpRequest();
	}
	xml.open('POST',url,false);
	xml.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	xml.send (vars);
	if(xml.status == 404) alert('Url no valida');
	return xml.responseText;
}