//Script de validaciones para Datos Mínimos Animales de Compañia - Perros


//Declaración de variables
var diaHoy, mesHoy, anoHoy;		
var elementoMarcado;



//Función para generar Errores
function GenerarError ( vntElemento, strMensaje ) {
	//Si es un Explorer llamamos a marcarElemento
	if ( IE4 || IE5 ) {
		marcarElemento( vntElemento );
		elementoMarcado = vntElemento;
	} else {
		alert(strMensaje);
	}
}




//Validar datos básicos del Perro
function ValidateBasicData() {
	
	//Declaración de variables
	var intDay, intMonth, intYear;
	var vntTemp;
	var blnYes, blnNo;



	intDay = window.document.forms['MainForm'].dia_nacperro.selectedIndex;
	intMonth = window.document.forms['MainForm'].mes_nacperro.selectedIndex;
	intYear = window.document.forms['MainForm'].ano_nacperro.selectedIndex;
		
	intDay = window.document.forms['MainForm'].dia_nacperro.options[intDay].value;
	intMonth = DameMesANumero(window.document.forms['MainForm'].mes_nacperro.options[intMonth].value);
	intYear = window.document.forms['MainForm'].ano_nacperro.options[intYear].value;
	
	//Valido que la Fecha de nacimiento sea correcta
	if (check_date(intDay,intMonth,intYear) == false){
		m_strMensaje = 'La fecha de nacimiento no es correcta.';
		GenerarError( window.document.forms['MainForm'].ano_nacperro.id, m_strMensaje); 
		return;
	}
	
	//Fecha de nacimiento posterior a hoy
	if ( DameDiasDiferencia(intDay, intMonth, intYear, diaHoy, mesHoy, anoHoy) > 0 ) {
		m_strMensaje = 'La fecha de nacimiento del perro no es válida.';
		GenerarError( window.document.forms['MainForm'].ano_nacperro.id, m_strMensaje); 
		return;
	}
	
	
	//Raza del perro
	vntTemp = window.document.forms['MainForm'].raza.selectedIndex;
	vntTemp = window.document.forms['MainForm'].raza.options[vntTemp].value;
	
	if ( vntTemp=="" ) {
		m_strMensaje = 'Debe indicar la raza del perro.';
		GenerarError( window.document.forms['MainForm'].raza.id, m_strMensaje); 
		return;		
	}
	
	//Seleccionar uso del perro
	vntTemp = window.document.forms['MainForm'].uso_perro.selectedIndex;
	vntTemp = window.document.forms['MainForm'].uso_perro.options[vntTemp].value;
	
	if ( vntTemp=="" ) {
		m_strMensaje = 'Debe indicar el uso del perro.';
		GenerarError( window.document.forms['MainForm'].uso_perro.id, m_strMensaje); 
		return;		
	}
	
	//Seleccionar Defecto físico
	blnYes = window.document.forms['MainForm'].defecto_fisico[0].checked;
	blnNo = window.document.forms['MainForm'].defecto_fisico[1].checked;
	
	if (blnYes == false && blnNo == false) {
		m_strMensaje = 'Especifique si el perro padece algún defecto físico';
		GenerarError( window.document.forms['MainForm'].defecto_fisico[1].id, m_strMensaje); 
		return;	
	}	
	
	//Seleccionar Traumatismos o Accidentes
	blnYes = window.document.forms['MainForm'].traumatismo[0].checked;
	blnNo = window.document.forms['MainForm'].traumatismo[1].checked;
	
	if (blnYes == false && blnNo == false) {
		m_strMensaje = 'Especifique si el perro ha sufrido o sufre algún traumatismo o accidente.';
		GenerarError( window.document.forms['MainForm'].traumatismo[1].id, m_strMensaje); 
		return;	
	}		
	
	
	//Seleccionar Enfermedad
	blnYes = window.document.forms['MainForm'].enfermedad[0].checked;
	blnNo = window.document.forms['MainForm'].enfermedad[1].checked;
	
	if (blnYes == false && blnNo == false) {
		m_strMensaje = 'Especifique si el perro ha sufrido o sufre alguna enfermedad.';
		GenerarError( window.document.forms['MainForm'].enfermedad[1].id, m_strMensaje); 
		return;	
	}	
	
	//Seleccionar Intervención Quirúrgica
	blnYes = window.document.forms['MainForm'].intervencion_quirurgica[0].checked;
	blnNo = window.document.forms['MainForm'].intervencion_quirurgica[1].checked;
	
	if (blnYes == false && blnNo == false) {
		m_strMensaje = 'Especifique si el perro ha sido objeto de alguna intervención quirúrgica.';
		GenerarError( window.document.forms['MainForm'].intervencion_quirurgica[1].id, m_strMensaje); 
		return;	
	}		


	//Seleccionar Vacunación
	blnYes = window.document.forms['MainForm'].vacunado[0].checked;
	blnNo = window.document.forms['MainForm'].vacunado[1].checked;
	
	if (blnYes == false && blnNo == false) {
		m_strMensaje = 'Especifique si el perro ha sido vacunado siguiendo el calendario oficial.';
		GenerarError( window.document.forms['MainForm'].vacunado[1].id, m_strMensaje); 
		return;	
	}
		
	
	//Todo bien
	return (true);
	
}	



//Validar apartado garantías
function ValidateGuarantees() {
	
	//Declaracion de variables
	var vntTemp;
	var intDay, intMonth, intYear;
	
	
	//Valor del perro
	vntTemp = window.document.forms['MainForm'].valor_perro.selectedIndex;
	vntTemp = window.document.forms['MainForm'].valor_perro.options[vntTemp].value;
	
	if (vntTemp == "") {
		m_strMensaje = 'Especifique el valor del perro.';
		GenerarError( window.document.forms['MainForm'].valor_perro.id, m_strMensaje); 
		return;	
	}
	
	
	//Si contrata Garantia en Residencia debe seleccionar un capital
	vntTemp = window.document.forms['MainForm'].capital_residencia.selectedIndex;
	vntTemp = window.document.forms['MainForm'].capital_residencia.options[vntTemp].value;
	
	if (vntTemp == "") {
		m_strMensaje = 'Indique el capital que desea contratar para la garantía de Estancia en Residencia.';
		GenerarError( window.document.forms['MainForm'].capital_residencia.id, m_strMensaje); 
		return;	
	}


	//Garantia de sacrificio
	vntTemp = window.document.forms['MainForm'].garantia_sacrificio.selectedIndex;
	vntTemp = window.document.forms['MainForm'].garantia_sacrificio.options[vntTemp].value;
	
	if (vntTemp == "") {
		m_strMensaje = 'Especifique si desea contratar la garantía de sacrificio.';
		GenerarError( window.document.forms['MainForm'].garantia_sacrificio.id, m_strMensaje); 
		return;	
	}
	
	
	//Si el perro tiene más de 6 años no se admite la garantía de sacrificio
	intDay = window.document.forms['MainForm'].dia_nacperro.selectedIndex;
	intMonth = window.document.forms['MainForm'].mes_nacperro.selectedIndex;
	intYear = window.document.forms['MainForm'].ano_nacperro.selectedIndex;
		
	intDay = window.document.forms['MainForm'].dia_nacperro.options[intDay].value;
	intMonth = DameMesANumero(window.document.forms['MainForm'].mes_nacperro.options[intMonth].value);
	intYear = window.document.forms['MainForm'].ano_nacperro.options[intYear].value;
	
	//Garantia de sacrificio
	vntTemp = window.document.forms['MainForm'].garantia_sacrificio.selectedIndex;
	vntTemp = window.document.forms['MainForm'].garantia_sacrificio.options[vntTemp].value;
	
	//Comprobamos la edad
	if ( DimeAnosDiferencia(intDay, intMonth, intYear, diaHoy, mesHoy, anoHoy) > 6 && vntTemp.toUpperCase() == "S") {
		m_strMensaje = 'No se admite la garantía de sacrificio.';
		GenerarError( window.document.forms['MainForm'].garantia_sacrificio.id, m_strMensaje); 
		return;
	}
	
	
	
	//Todo bien
	return (true);
	
}



//Validar apartado otros datos
function ValidateOtherData() {
	
	//Declaración de variables
	var intDay, intMonth, intYear;
	
	intDay = window.document.forms['MainForm'].dia_fechaefecto.selectedIndex;
	intMonth = window.document.forms['MainForm'].mes_fechaefecto.selectedIndex;
	intYear = window.document.forms['MainForm'].ano_fechaefecto.selectedIndex;
		
	intDay = window.document.forms['MainForm'].dia_fechaefecto.options[intDay].value;
	intMonth = DameMesANumero(window.document.forms['MainForm'].mes_fechaefecto.options[intMonth].value);
	intYear = window.document.forms['MainForm'].ano_fechaefecto.options[intYear].value;
	
	//Valido que la Fecha de efecto sea correcta
	if (check_date(intDay,intMonth,intYear) == false){
		m_strMensaje = 'La fecha de efecto no es correcta.';
		GenerarError( window.document.forms['MainForm'].ano_fechaefecto.id, m_strMensaje); 
		return;
	}
	
	//Fecha de efecto tiene que ser posterior a la del día de grabación
	if ( DameDiasDiferencia(intDay, intMonth, intYear, diaHoy, mesHoy, anoHoy) < 0 ) {
		m_strMensaje = 'La fecha de efecto no es válida.';
		GenerarError( window.document.forms['MainForm'].ano_fechaefecto.id, m_strMensaje); 
		return;
	}
	
	//Fecha de efecto tiene que ser posterior a la del día de grabación
	if ( DameDiasDiferencia(intDay, intMonth, intYear, diaHoy, mesHoy, anoHoy) == 0 ) {
		m_strMensaje = 'La fecha de efecto debe ser posterior a la del día de grabación de la solicitud.';
		GenerarError( window.document.forms['MainForm'].ano_fechaefecto.id, m_strMensaje); 
		return;
	}
	
	//Fecha de efecto no puede ser mayor a 30 días
	if ( DameDiasDiferencia(intDay, intMonth, intYear, diaHoy, mesHoy, anoHoy) > 30 ) {
		m_strMensaje = 'La fecha de efecto de la póliza no puede ser superior a 30 días.';
		GenerarError( window.document.forms['MainForm'].ano_fechaefecto.id, m_strMensaje); 
		return;
	}
	
	
	//Todo bien
	return (true);
}	



//
function AceptarClick (blnUnoe,blnUnoeSB) {
	
	//Desmarcamos el elementoMarcado
	if ( elementoMarcado != '' ) {
		marcarElemento(elementoMarcado);
		elementoMarcado = '';
	}
	
	
	//Validar datos básicos del perro
	if ( !ValidateBasicData() ) {
		return;
	}	
	
	
	//Validar sección de garantías
	if ( !ValidateGuarantees() ) {
		return;	
	}	
	
	
	//Validar otros datos de la póliza
	if ( !ValidateOtherData() ) {
		return;	
	}	
	
	
	//Validamos el resto de datos
	if( NS4 || NS6) {	
		if (blnUnoe=='Falso'||blnUnoe=='False'){
			document.MainForm.target="_top";
		}
		else{
			if (blnUnoeSB=='Falso'||blnUnoeSB=='False'){
				document.MainForm.target="content2";
			}
			else{
				document.MainForm.target="_top";
			};
		};
		
		//Hacemos Submit
		LocalSubmitirForm();
	
		return;
	}

	//Versión del Navegador
	if( IE5 || NS6 || IE4 ) {
		var ret = validarDatos( document.MainForm.elements );
	} else {
		ret = true;
	}
	
	if( ret != true ) {
		if( elementoMarcado != ret ) {
			if( elementoMarcado != '' ) marcarElemento( elementoMarcado );
			elementoMarcado = '';
			marcarElemento( ret );
			elementoMarcado = ret;
		}
	} else {   
		
		if( elementoMarcado != '' ) marcarElemento( elementoMarcado ); 		
		elementoMarcado = '';		

	
		if (blnUnoe=='Falso'||blnUnoe=='False'){
			document.MainForm.target="_top";
		}
		else{
			if (blnUnoeSB=='Falso'||blnUnoeSB=='False'){
				document.MainForm.target="content2";
			}
			else{
				document.MainForm.target="_top";
			};
		};
	
		//Hacemos Submit
		LocalSubmitirForm();
	
	}	
	
}



