// -------------------------------------------------------------------------- //
//
// Reineta. - Validacion de formularios.
// version:  d20-m02-a04
//
// -------------------------------------------------------------------------- //


// Formulario: "Contacto general".
// -------------------------------------------------------------------------- //

function validarContactoGeneral () 
	{   
	r = txtRequerido		('realname', 	mensajeNombre)				&&
		txtRequerido		('empresa', 	mensajeEmpresa)				&&
		txtRequerido		('localidad', 	mensajeLocalidad)			&&
		txtRequerido		('pais', 		mensajePais)				&&
		txtRequerido		('telefono', 	mensajeTelefonoVacio)		&&
		telefonoValido		('telefono', 	mensajeTelefonoValido, 9)	&&
		txtRequerido		('email', 		mensajeEmailVacio)			&&
		emailValido			('email', 		mensajeEmailValido)			&&
		seleccionarSelect	('subject', 	mensajeAsunto)				&&
		txtRequerido		('mensaje', 	mensajeMensaje)				;
	return r;
}

	
// Formulario: "Contacto general".
// -------------------------------------------------------------------------- //

function validarCorreoNovedades () 
	{   
	r = txtRequerido		('eMailSuscricpion', 	mensajeEmailVacio)	&&
		emailValido			('eMailSuscricpion', 	mensajeEmailValido);
	return r;
}


// Formulario: "Aceptación de la política de privacidad".
// -------------------------------------------------------------------------- //

function validarPrivacidad () 
	{   
	r = seleccionarSheck	('privacidad', 	mensajeAceptacionRequerida);
	return r;
}



// Formulario: "Caramelo publicitario".
// -------------------------------------------------------------------------- //
		
/*- Paso (2)-- */
function validarPaso_2 () 
	{ 
	r = seleccionarTipo			()															&&
		seleccionarRadio		('envoltorio', 					mensajeEnvoltorio)			&&
		especificarSabores		()															&&
		especificarKilogramos	()															&&
		datoNumerico			('kilogramos-personalizado', 	mensajeKilogramosValido	)	;		
	return r;
	
}	
/* -- Tipo de caramelo -- */
function seleccionarTipo () 
{
	if (MM_findObj('tipo').type=='hidden') return true;	// No hay que seleccionar "tipo" por que se ha seleccionado un producto estandar.
	r = seleccionarRadio	('tipo', mensajeTipo);			
	return r;
}
/* -- Kilogramos -- */
function especificarKilogramos () 
{ 
	r1 = seleccionarSelect	('kilogramos-estandar', 		'', true);
	r2 = txtRequerido		('kilogramos-personalizado',	'', true);
	r  = r1 || r2
	if(!r)
		{
		alert(mensajeKilogramosVacio); 
		if(!r1)
			{
			MM_findObj('kilogramos-estandar').focus();
			}
		else if(!r2)
			{
			MM_findObj('kilogramos-personalizado').focus();
			}		
		} 
	return r;
}	
	
/* -- Sabores -- */
function especificarSabores () 
{
	if(MM_findObj('sabor').type=='hidden')return true; // No hay que seleccionar "sabor" por que se ha seleccionado un producto estandar.
	
	r = seleccionarSheck	('sabor', 						'', true)	||
		txtRequerido		('sabores-adicionales',			'', true)	;	
	if(!r)
		{
		alert(mensajeSabores);
		MM_findObj('sabor')[0].focus();
		} 
	return r;	
}	

/*- Paso (3)-- */
function validarPaso_3 () 
{   
	r = txtRequerido		('nombre', 		mensajeNombre)				&&
		txtRequerido		('apellidos', 	mensajeApellidos)			&&
		txtRequerido		('empresa', 	mensajeEmpresa)				&&
		txtRequerido		('direccion', 	mensajeDireccion)			&&
		txtRequerido		('telefono', 	mensajeTelefonoVacio)		&&
		telefonoValido		('telefono', 	mensajeTelefonoValido, 9)	&&
		txtRequerido		('eMail', 		mensajeEmailVacio)			&&
		emailValido			('eMail', 		mensajeEmailValido)			;
	return r;
}


// Funciones generales.
// -------------------------------------------------------------------------- //

function txtRequerido (id, mensaje, silenciar)
{
	var o=MM_findObj(id), s=o.value, r=(s!='');
	if(!r&&!silenciar){ alert(mensaje); o.focus();} return r;
}

function sinEspacios (id, mensaje)
{
	var o=MM_findObj(id),s=o.value,r=(s.indexOf(' ')==-1);
	if(!r){alert(mensaje); o.focus();} return r;
}

function strMayorQue (id, mensaje, largo)
{
	var o=MM_findObj(id),s=o.value; if (s != ''){r=(s.length>=largo);
	if(!r){alert(mensaje); o.focus();}} return r;
}

function strLongitud (id, mensaje, largo)
{
	var o=MM_findObj(id),s=o.value; if (s != ''){r=(s.length==largo);
	if(!r){alert(mensaje); o.focus();}} return r;
}

function emailValido (id, mensaje)
{
	var o=MM_findObj(id), s=o.value; if(s=='')return true;
	r=((s.indexOf('@')!=-1)&&(s.indexOf('@')!=0)&&(s.indexOf('@')!=s.length-1)&&(s.indexOf('.') != -1)&&(s.indexOf('.')!=0)&&(s.indexOf('.')!= s.length -1))  
	if(!r){alert(mensaje); o.focus();} return r;
}

function telefonoValido (id, mensaje, largo)
{	
	var o=MM_findObj(id), s=o.value, r=(s=='');	
	if (!r) {r=(!s.match(/[^\d\s-]/)); if(r)r=(s.length>=largo);} 	
	if(!r){alert(mensaje); o.focus();} return r;
}

function compararCampos (id1, id2, mensaje)
{
	var o1=MM_findObj(id1),s1=o1.value,o2=MM_findObj(id2),s2=o2.value, r=(s1 == s2);
	if(!r){alert(mensaje); o2.focus();} return r;
}

function seleccionarSelect (id, mensaje, silenciar)
{
	var o=MM_findObj(id), x=o.selectedIndex, val=o.options[x].value; 
	r=((val!=null)&&(val!='')&&(val!=0));
	if(!r&&!silenciar){alert(mensaje); o.focus();} return r;
	}

function datoNumerico (id, mensaje)
{
	var o=MM_findObj(id), s=o.value, r=(!isNaN(s));
	if (!r) {alert(mensaje); o.focus(); }
	return r;
}

function seleccionarRadio (id, mensaje)
{
	var o=MM_findObj(id),r=false;
	for(i=0;((i<o.length)&&(!r));i++) r=(o[i].checked);
	if(!r){alert(mensaje); o[0].focus(); } return r;
}

function seleccionarSheck (id, mensaje, silenciar)
{
	var o=MM_findObj(id), c=o.length, r=false;
	if (o.length) {for(i=0;((i<c)&&(!r));i++)r=o[i].checked;} else{r=o.checked;}	
	if (!r&&!silenciar) {alert(mensaje); if(o.length)o=o[0]; o.focus(); } return r;	
}
