// JavaScript Document

function fechaJs(fecha){
	var array_fecha = fecha.split("/");	
	var dia = (array_fecha[0])-1;
	var mes = (array_fecha[1])-1;
	var anio = (array_fecha[2]);
	
	var nuevaFecha= new Date (anio, mes, dia);
	return nuevaFecha;
}

function valida(){
	var  fecha_inicio=document.formOnLine.fecha_inicio.value;
	var  fecha_fin=document.formOnLine.fecha_fin.value;
	var tipo = document.formOnLine.tipo.options[document.formOnLine.tipo.selectedIndex].value;
	
	var array_fechaInicio = fecha_inicio.split("/")
	var array_fechaFin = fecha_fin.split("/")
		
	// descompongo la fecha de inicio, y a todas las variables porque JavaScript inicializa todo (meses, dias y aos?) en 0
	diaInicio = (array_fechaInicio[0])
	mesInicio = (array_fechaInicio[1])
	yearInicio = (array_fechaInicio[2])
	
	// ahora hago lo mismo con la fecha de llegada
	diaFin = (array_fechaFin[0])
	mesFin = (array_fechaFin[1])
	yearFin = (array_fechaFin[2])

	//idioma
	var idioma=document.formOnLine.idioma.value; 
	
	//destino
	if(document.formOnLine.destino.options[document.formOnLine.destino.selectedIndex].value=="")
	{
	  document.formOnLine.destino.focus();
	  mensaje(idioma);
	  return false;
	}	


	//fechas inicio y fin
	if (fecha_inicio=="")
	{ 
	   cargaCalendario(document.getElementById("fecha_inicio"))
	    mensaje(idioma);
	   return false;
	}
	
	
	if (fecha_fin=="")
	{ 
	   cargaCalendario(document.getElementById("fecha_fin"))
	    mensaje(idioma);
	   return false;
	}	

	//Fechas mayor y menor
	 	if(fechaJs(fecha_fin) <= fechaJs(fecha_inicio)){		
			if(idioma=="french"){	
			alert("la date de d\u00E9but doit \u00EAtre ant\u00E9rieure \u00E0 la fin")	;
			}else{
			alert("La fecha DESDE ha ser ANTERIOR a la fecha de HASTA");
			}
	
		cargaCalendario(document.getElementById("fecha_fin"))
		return false;	
		}
		
	//Periodo:
		 if(tipo== "Fam"){
			 var dateDiff=(fechaJs(fecha_fin)-fechaJs(fecha_inicio))/(24*60*60*1000);
			 if(dateDiff < 28){
			 alert("Mínimo 30 días"); 
			 cargaCalendario(document.getElementById("fecha_fin"))
			 return false;
			 }
			} 

		if(mesInicio >= 4 && mesInicio <=8 && tipo!= "Fam"){
			 var dateDiff=(fechaJs(fecha_fin)-fechaJs(fecha_inicio))/(24*60*60*1000);
			 if(dateDiff < 28){
			 alert("Entre 1 de abril y 1 de septiembre, Mínimo 30 días"); 
			 cargaCalendario(document.getElementById("fecha_fin"))
			 return false;
			 }
			} 
			
			if (mesInicio >=9 || mesInicio <=3){
			 var dateDiff=(fechaJs(fecha_fin)-fechaJs(fecha_inicio))/(24*60*60*1000);
			 if(dateDiff < 85 && tipo!= "Fam"){
			 alert("Entre 1 de septiembre y 1 de abri, mínimo 85 días.\nSalvo alojamiento en familia"); 
			 cargaCalendario(document.getElementById("fecha_fin"))
			 return false;
			 }			 
			}

	//Sexo:
		if(document.formOnLine.sexo.options[document.formOnLine.sexo.selectedIndex].value==""){
	 	document.formOnLine.sexo.focus();
	  	mensaje(idioma);
	  	return false;	
		}
		
 
	formOnLine.submit();

}



function mensaje(idioma)
{
  switch(idioma)
  {
	  case 'spanish':
	  	alert('Por favor, este campo es obligatorio');
		break;
	  case 'english':
	   alert('please, this information is required');
	   break;
	  case 'french':
	    alert('s\u2019il vous pla\u00EEt, cet champ est obligatoire');
	    break;
	  case 'german':
	    alert('wenden Sie sich bitte in diesem Bereich erforderlich ist');
		break;
	  default:
	   alert('please, this information is required');
      break;
  }
	
}


function cargaCalendario(calendario){
calendario= new dhtmlxCalendarObject(calendario);	
calendario.setDateFormat("%d/%m/%Y");
calendario.show();
}